@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-cyrillic-ext-wght-normal.0f_n1lzbmjsth.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-cyrillic-wght-normal.0h3nfhvv2m3d8.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-greek-wght-normal.0-b7k8a8.-y0b.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-vietnamese-wght-normal.15hnttuouuckd.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-latin-ext-wght-normal.0bko.tvg3g1d9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/manrope-latin-wght-normal.0jqazm8k6u60w.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-wght-normal.0rtet0lerup3-.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-wght-normal.0996wsctrdiqh.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-wght-normal.08fsi9_aw6on5.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-wght-italic.10p3-r_szpjag.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-wght-italic.0hoeluh5ebzv9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-wght-italic.0jj_9y.cnwplc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--sage-50:#eef3ea;--sage-100:#dfe9d9;--sage-200:#c5d2be;--sage-300:#a7bba2;--sage-600:#576f60;--forest:#26372f;--forest-soft:#405448;--ivory:#fff4d8;--ivory-bright:#fffaf0;--walnut:#8a5b3d;--walnut-dark:#603c29;--gold:#f2bc45;--gold-bright:#ffd66f;--coral:#d9685d;--sky:#68aeb8;--shadow:#26372f2e;--play-void:#111813;--play-surface:#18231c;--felt:#214b34;--felt-highlight:#35694a;--walnut-light:#795034;--walnut-mid:#4a2e20;--walnut-deep:#281810;--bone:#f0dfba;--bone-edge:#c6a36d;--brass:#c7a25c;--brass-highlight:#e0c47e;--ink:#1c3429;--play-text:#eee4d1;--play-muted:#aea48f;--danger-muted:#be6259;--premium-ease:cubic-bezier(.16, 1, .3, 1);--serif:"Newsreader Variable", "Iowan Old Style", "Baskerville", serif;--sans:"Manrope Variable", "Avenir Next", "Helvetica Neue", system-ui, sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--sage-200);width:100%;min-height:100%;color:var(--forest);font-family:var(--sans);margin:0}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh;overflow:hidden}button,input,select{color:inherit;font:inherit}button,a{-webkit-touch-callout:none}button{border:0}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.game-icon{flex:none;display:block}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #68aeb8d1}.app-shell{isolation:isolate;background:radial-gradient(circle at 86% -8%, #fffae0eb, transparent 32%), linear-gradient(145deg, var(--sage-50), var(--sage-200) 48%, #b8cdb1);width:100%;height:100dvh;min-height:620px;position:relative;overflow:hidden}.sun-wash{z-index:-1;pointer-events:none;opacity:.24;filter:blur(9px);background:repeating-linear-gradient(90deg,#0000 0 84px,#fffde86b 84px 154px,#0000 154px 250px);position:absolute;inset:-12%;transform:rotate(-9deg)}.wordmark{color:var(--forest);font-family:var(--serif);letter-spacing:-.035em;font-size:clamp(1.55rem,4.6vw,2.1rem);font-weight:500;text-decoration:none}.wordmark.compact{white-space:nowrap;font-size:1.35rem}@media (max-width:560px){.wordmark-long{display:none}}.welcome-screen,.lobby-screen,.game-screen,.finish-screen,.reconnect-screen{z-index:1;width:100%;height:100%;position:relative}.app-shell:not(.is-playing){min-height:0}.welcome-screen,.lobby-screen,.finish-screen,.reconnect-screen{overscroll-behavior-y:contain;min-height:0;scroll-padding-block:max(18px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-bottom));scrollbar-width:none;touch-action:pan-y;-webkit-overflow-scrolling:touch;overflow:hidden auto}.welcome-screen::-webkit-scrollbar{display:none}.lobby-screen::-webkit-scrollbar{display:none}.finish-screen::-webkit-scrollbar{display:none}.reconnect-screen::-webkit-scrollbar{display:none}.welcome-screen input{scroll-margin-block:86px}.round-button,.sound-button{cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffaf094;border:1px solid #26372f21;border-radius:999px;place-items:center;width:44px;height:44px;font-size:1rem;font-weight:700;display:grid;box-shadow:0 8px 24px #35463c14,inset 0 1px #ffffffad}.eyebrow{color:var(--sage-600);letter-spacing:.19em;text-transform:uppercase;margin:0 0 14px;font-size:.72rem;font-weight:760}.lobby-card,.rules-modal{-webkit-backdrop-filter:blur(24px)saturate(1.15);backdrop-filter:blur(24px)saturate(1.15);background:#fffaf0ba;border:1px solid #ffffff8c;box-shadow:0 30px 80px #3247392b,inset 0 1px #ffffffbf}.primary-button,.secondary-button,.dump-button,.peel-button{cursor:pointer;border-radius:14px;min-height:52px;font-weight:760;transition:transform .16s,box-shadow .16s,filter .16s}.primary-button{width:100%;color:var(--forest);background:linear-gradient(160deg, var(--gold-bright), var(--gold));box-shadow:0 12px 25px #9f6f103b,inset 0 1px #ffffffad}.primary-button:active,.secondary-button:active,.dump-button:active,.peel-button:active{transform:translateY(2px)scale(.99)}button:disabled{cursor:default;filter:saturate(.4);opacity:.5}.secondary-button{background:#fff6;border:1px solid #26372f26}.game-topbar{z-index:10;min-height:70px;padding:max(10px, env(safe-area-inset-top)) 15px 8px;background:linear-gradient(#f2f7efb3,#f2f7ef00);justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.lobby-topbar{flex:none;padding-inline:max(18px,5vw)}.text-button{color:var(--forest-soft);cursor:pointer;background:0 0;padding:8px 4px;font-size:.84rem;font-weight:700}.lobby-screen{flex-direction:column;display:flex}.lobby-card{text-align:center;border-radius:34px;flex:none;width:min(92vw,580px);margin:auto;padding:clamp(30px,6vw,54px)}.lobby-screen .text-button,.finish-screen>.text-button,.reconnect-screen .text-button{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.lobby-card h2,.rules-modal h2,.finish-screen h2{font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(2.1rem,6vw,3.7rem);font-weight:400;line-height:1}.lobby-card>p:not(.eyebrow){max-width:400px;color:var(--forest-soft);margin:18px auto 22px;line-height:1.55}.room-code{justify-content:center;gap:7px;margin:27px 0;display:flex}.room-code span{aspect-ratio:.82;background:linear-gradient(155deg, var(--ivory-bright), #ecd8b5);width:clamp(42px,10vw,58px);font-family:var(--serif);border-radius:11px;place-items:center;font-size:clamp(1.35rem,5vw,2rem);display:grid;box-shadow:0 9px 12px #583b2a2b,inset 0 1px #fff}.waiting-players{grid-template-columns:1fr 70px 1fr;align-items:center;gap:10px;margin-top:30px;display:grid}.player-seat{justify-items:center;gap:4px;display:grid}.player-seat>span,.avatar{border-radius:50%;place-items:center;font-weight:800;display:grid}.player-seat>span{background:var(--sky);color:#fff;width:52px;height:52px;margin-bottom:5px;box-shadow:0 8px 18px #3c7e8833}.player-seat.is-waiting>span{box-shadow:none;color:var(--sage-600);background:#ffffff47;border:1px dashed #26372f47}.player-seat strong{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:.86rem;overflow:hidden}.player-seat small{color:var(--sage-600);font-size:.67rem}.table-line{justify-content:center;gap:5px;display:flex}.table-line i,.loading-orbit i{background:var(--gold);border-radius:50%;width:6px;height:6px;animation:1.25s ease-in-out infinite waiting-dot}.table-line i:nth-child(2),.loading-orbit i:nth-child(2){animation-delay:.13s}.table-line i:nth-child(3),.loading-orbit i:nth-child(3){animation-delay:.26s}.game-screen{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid}.game-topbar,.board-stage,.tile-dock{min-width:0}.opponent-chip{align-items:center;gap:9px;min-width:0;display:flex}.opponent-avatar{color:#fff;background:linear-gradient(145deg,#82c1c9,#4c929c);flex:none;width:38px;height:38px;box-shadow:0 7px 16px #36717a3b}.opponent-chip>span:nth-child(2){flex-direction:column;min-width:0;line-height:1.12;display:flex}.opponent-chip small,.pile-counter small{color:var(--sage-600);letter-spacing:.09em;text-transform:uppercase;font-size:.59rem;font-weight:760}.opponent-chip strong{text-overflow:ellipsis;white-space:nowrap;max-width:105px;font-size:.8rem;overflow:hidden}.opponent-chip b{background:#fffaf085;border-radius:9px;place-items:center;min-width:28px;height:28px;margin-left:2px;font-size:.74rem;display:grid;box-shadow:inset 0 1px #ffffffb3}.pile-counter{flex-direction:column;align-items:center;min-width:52px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.pile-counter strong{font-family:var(--serif);font-size:1.3rem;font-weight:500;line-height:1}.sound-button{width:44px;height:44px}.board-stage{isolation:isolate;background:linear-gradient(108deg,#ffffff1f,#0000 32%),#738974;border:2px solid #795a43;border-radius:24px;min-height:0;margin:0 9px;position:relative;overflow:hidden;box-shadow:0 18px 44px #2b372b38,0 3px #543d30,0 0 0 1px #fff7de2e,inset 0 1px #fff8da61,inset 0 -18px 38px #1c2f221f}.board-stage:after{z-index:2;content:"";pointer-events:none;border:1px solid #fff4cf57;border-radius:21px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #3e291e24,inset 0 0 34px #1c2f221f}.board-stage canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.board-tools{z-index:3;gap:6px;display:flex;position:absolute;top:11px;right:11px}.board-tools button{color:#fffcf1f0;cursor:pointer;-webkit-backdrop-filter:blur(12px)saturate(1.1);backdrop-filter:blur(12px)saturate(1.1);background:#25362eb8;border:1px solid #ffffff52;border-radius:999px;min-width:44px;min-height:44px;padding:0 12px;font-size:.64rem;font-weight:760;transition:background .14s,transform .14s;box-shadow:0 5px 14px #18271e33,inset 0 1px #ffffff24}.board-tools button:active{background:#1b2b23db;transform:translateY(1px)}.board-loading{justify-content:center;align-items:center;gap:8px;width:100%;height:100%;display:flex}.board-loading span{background:var(--ivory);width:21px;height:21px;box-shadow:0 6px 10px var(--shadow);border-radius:5px;animation:1.1s ease-in-out infinite waiting-dot}.board-loading span:nth-child(2){animation-delay:.11s}.board-loading span:nth-child(3){animation-delay:.22s}.invalid-callout{z-index:4;background:#fff4d8e0;border:1px solid #d9685d47;border-radius:13px;flex-direction:column;max-width:calc(100% - 175px);padding:8px 12px;animation:.24s both callout-in;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 9px 22px #6234301f}.invalid-callout strong{color:#9b433d;font-size:.73rem}.invalid-callout span{color:var(--coral);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.tile-dock{z-index:8;padding:8px 10px max(10px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px)saturate(1.08);backdrop-filter:blur(20px)saturate(1.08);background:linear-gradient(#e7eee4cc,#eef3eafb);border-top:1px solid #ffffff70;position:relative;box-shadow:0 -12px 32px #2a392e14}.dock-heading{color:var(--sage-600);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 2px 5px;font-size:.62rem;font-weight:760;display:flex}.dock-heading span{align-items:baseline;gap:8px;display:flex}.dock-heading span small{letter-spacing:.02em;opacity:.72;text-transform:none;font-size:.56rem;font-weight:650}.dock-heading strong{background:#ffffff70;border-radius:7px;place-items:center;min-width:21px;height:19px;display:grid}.tile-rack{overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;align-items:center;gap:6px;min-height:53px;padding:3px 2px 8px;display:flex;overflow-x:auto}.tile-rack::-webkit-scrollbar{display:none}.rack-tile{cursor:pointer;width:43px;min-width:43px;height:47px;font-family:"Avenir Next Rounded", "Arial Rounded MT Bold", var(--sans);touch-action:pan-x;background:linear-gradient(145deg,#ffffffad,#0000 34%),linear-gradient(155deg,#fff1ca 8%,#ead0a0 100%);border:1px solid #6a4b2d33;border-radius:9px;place-items:center;transition:transform .15s cubic-bezier(.22,.9,.32,1.2),box-shadow .15s;display:grid;position:relative;box-shadow:0 7px 10px #41302229,0 2px 1px #543a2626,inset 0 1px #ffffffd6,inset 0 -2px #6f4c2f1a}.rack-tile>span{color:#173f31;text-shadow:0 1px #ffffee80;margin-top:-1px;font-size:1.2rem;font-weight:820;line-height:1}.rack-tile.is-selected{border-color:#f2bc45e6;transform:translateY(-5px)rotate(-1deg);box-shadow:0 12px 16px #76511738,0 0 0 3px #f2bc456b,inset 0 1px #fff}.rack-tile.is-dragging{opacity:.28;transform:translateY(-2px)scale(.92)}.solo-game-screen{width:min(100%,760px);margin:0 auto}.solo-mode-chip{gap:9px}.solo-avatar{background:linear-gradient(145deg,#769a7c,#416b51);box-shadow:0 7px 16px #2d593a3d}.solo-dock-header{justify-content:space-between;align-items:center;gap:10px;min-width:0;margin-bottom:2px;display:flex}.solo-dock-header .dock-heading{flex:auto;min-width:92px;margin-bottom:0}.solo-round-controls{flex:none;align-items:center;gap:2px;display:flex}.solo-round-controls .text-button{min-height:34px;color:var(--sage-600);border-radius:9px;padding:5px 7px;font-size:.65rem}.solo-round-controls .text-button:active{background:#26372f12}.solo-finish-screen .solo-exit-link{text-decoration:none}.empty-rack{width:100%;color:var(--sage-600);font-family:var(--serif);text-align:center;margin:0;font-size:.9rem;font-style:italic}.action-row{grid-template-columns:minmax(102px,.7fr) minmax(160px,1.3fr);gap:8px;display:grid}.dump-button,.peel-button{flex-direction:column;justify-content:center;min-height:52px;line-height:1.05;display:flex}.dump-button{background:#fffaf0a3;border:1px solid #26372f21;box-shadow:inset 0 1px #ffffffb3}.peel-button{background:linear-gradient(160deg, var(--gold-bright), var(--gold));box-shadow:0 9px 18px #9f6f1036,inset 0 1px #ffffffad}.peel-button.is-bananas{color:#fff;background:linear-gradient(150deg,#5f9e73,#34704c);box-shadow:0 9px 20px #245c373d,inset 0 1px #ffffff4d}.dump-button span,.peel-button span{font-family:var(--serif);font-size:1.05rem;font-weight:700}.dump-button small,.peel-button small{letter-spacing:.05em;opacity:.68;text-transform:uppercase;margin-top:4px;font-size:.58rem;font-weight:700}.app-shell.is-playing{color:var(--play-text);background:radial-gradient(ellipse at 50% -12%, #6784687a, transparent 48%), radial-gradient(circle at 8% 38%, #875b351f, transparent 30%), linear-gradient(165deg, #25362b 0%, #19251e 48%, var(--play-void) 100%);overflow:clip}.app-shell.is-finished{color:var(--play-text);background:radial-gradient(circle at 50% 20%,#62806352,#0000 32%),radial-gradient(at 50% 118%,#7e492633,#0000 48%),linear-gradient(155deg,#1e2f25 0%,#101a14 56%,#080d0a 100%);overflow:clip auto}.is-finished .sun-wash{opacity:.045;filter:blur(18px)}.app-shell.is-playing .sun-wash{opacity:.07;filter:blur(13px)}.is-playing button:focus-visible,.is-playing a:focus-visible{outline-color:#e0c47ee0}.is-playing .game-topbar{min-height:64px;padding:max(8px, env(safe-area-inset-top)) 10px 7px;background:linear-gradient(#0f1712f0,#0f1712a1 72%,#0000);grid-template-columns:minmax(0,1fr) auto 44px;gap:10px;display:grid}.is-playing .opponent-chip{-webkit-backdrop-filter:blur(14px)saturate(.92);backdrop-filter:blur(14px)saturate(.92);background:#0a120d75;border:1px solid #e0c47e24;border-radius:999px;gap:8px;width:100%;max-width:174px;padding:4px 9px 4px 4px;overflow:hidden;box-shadow:0 7px 20px #00000024,inset 0 1px #ffffff0b}.is-playing .opponent-avatar{color:#f8f0dd;background:linear-gradient(145deg,#688d83,#385d54);border:1px solid #e0c47e57;width:36px;height:36px;box-shadow:0 6px 15px #00000047,inset 0 1px #ffffff3d}.is-playing .solo-avatar{background:linear-gradient(145deg,#6f8d70,#38553e)}.is-playing .opponent-chip small,.is-playing .pile-counter small{color:var(--play-muted);letter-spacing:.1em;font-size:.65rem}.is-playing .opponent-chip strong{color:var(--play-text);font-size:.79rem;font-weight:720}.is-playing .opponent-chip small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.is-playing .opponent-chip b{color:#e5d5b6;background:#e6d8b814;border:1px solid #e0c47e24;border-radius:9px;min-width:27px;height:27px;box-shadow:inset 0 1px #ffffff0d}.is-playing .pile-counter{-webkit-backdrop-filter:blur(14px)saturate(.92);backdrop-filter:blur(14px)saturate(.92);background:#0a120d85;border:1px solid #e0c47e26;border-radius:14px;justify-self:center;min-width:58px;padding:5px 10px;position:static;transform:none;box-shadow:0 7px 20px #00000024,inset 0 1px #ffffff0d}.is-playing .pile-counter strong{color:#f1e3c7;font-size:1.2rem}.is-playing .sound-button{width:44px;height:44px;color:var(--brass-highlight);-webkit-backdrop-filter:blur(14px)saturate(.92);backdrop-filter:blur(14px)saturate(.92);background:#0a120d94;border-color:#e0c47e33;justify-self:end;transition:transform .12s,background .16s,border-color .16s;box-shadow:0 7px 20px #0003,inset 0 1px #ffffff0f}.is-playing .sound-button:active{background:#070d09bd;border-color:#e0c47e57;transform:translateY(1px)scale(.98)}.is-playing .board-stage{background:#0a110c;border:1px solid #e0c47e2e;border-radius:23px;margin:0 6px;box-shadow:0 28px 52px #00000070,0 3px #030704db,0 0 0 1px #e0c47e1f,inset 0 1px #fff4d314}.is-playing .board-stage:before,.is-playing .board-stage:after{z-index:2;content:"";pointer-events:none;position:absolute}.is-playing .board-stage:before{border:1px solid #f6e1b40f;border-radius:21px;inset:1px;box-shadow:inset 0 0 0 1px #02060380}.is-playing .board-stage:after{background:radial-gradient(circle at 34% 4%,#ffe0a613,#0000 44%),radial-gradient(circle at 92% 78%,#74a4910b,#0000 38%);border:0;border-radius:20px;inset:2px;box-shadow:inset 0 0 46px #070d0957,inset 0 1px #fff4d30f}.is-playing .board-tools{-webkit-backdrop-filter:blur(14px)saturate(.88);backdrop-filter:blur(14px)saturate(.88);background:#070e0ab8;border:1px solid #e0c47e33;border-radius:16px;gap:2px;padding:3px;top:9px;right:9px;box-shadow:0 10px 22px #0000004d,inset 0 1px #ffffff0e}.is-playing .board-tools button{min-width:42px;min-height:40px;box-shadow:none;color:#eee4d1;letter-spacing:.015em;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;padding:0 11px;font-size:.68rem;transition:transform .12s,background .16s,border-color .16s}.is-playing .board-tools button:active{background:#e0c47e1a;border-color:#e0c47e29;transform:translateY(1px)scale(.985)}.is-playing .invalid-callout{-webkit-backdrop-filter:blur(14px)saturate(.9);backdrop-filter:blur(14px)saturate(.9);background:#331714e0;border-color:#d0695e6b;box-shadow:0 12px 28px #00000047,inset 0 1px #ffffff0b}.is-playing .invalid-callout strong{color:#f1d9d2;font-size:.73rem}.is-playing .invalid-callout span{color:#df8c82;font-size:.69rem}.is-playing .tile-dock{padding:8px 10px max(10px, env(safe-area-inset-bottom));background:linear-gradient(180deg, #ffffff0e, transparent 10px), linear-gradient(150deg, #4a3020, var(--walnut-deep));-webkit-backdrop-filter:none;backdrop-filter:none;border-top:1px solid #e0c47e38;box-shadow:0 -18px 42px #0000004d,inset 0 1px #ffefcd14}.is-playing .dock-heading{color:var(--play-muted);letter-spacing:.09em;margin:0 2px 6px;font-size:.66rem}.is-playing .dock-heading span small{color:#c8bda8;opacity:.7;font-size:.64rem}.is-playing .dock-heading strong{color:#e2d5bc;background:#0b110d42;border:1px solid #e0c47e24;border-radius:7px;min-width:23px;height:21px;box-shadow:inset 0 1px #ffffff09}.rack-heading{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.is-playing .rack-heading{color:var(--play-muted);letter-spacing:.09em;text-transform:uppercase;margin:0 2px 6px;font-size:.66rem;font-weight:760}.is-playing .solo-dock-header .rack-heading{flex:auto;margin:0}.rack-heading>span{white-space:nowrap;flex:auto;align-items:baseline;gap:8px;min-width:0;display:flex}.is-playing .rack-heading>span small{color:#c8bda8;letter-spacing:.02em;opacity:.7;text-overflow:ellipsis;text-transform:none;white-space:nowrap;min-width:0;font-size:.64rem;font-weight:650;overflow:hidden}.rack-heading>strong{color:#e2d5bc;background:#0b110d42;border:1px solid #e0c47e24;border-radius:7px;place-items:center;min-width:23px;height:21px;display:grid;box-shadow:inset 0 1px #ffffff09}.rack-heading>.dock-heading,.rack-heading .dock-heading{flex:auto;min-width:0;margin-bottom:0}.rack-heading .dock-heading>span{min-width:0}.shuffle-button{color:#d0c3aa;cursor:pointer;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;background:#0a100c3d;border:1px solid #e0c47e26;border-radius:11px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:0 10px;font-size:.66rem;font-weight:730;line-height:1;transition:color .14s,background .14s,border-color .14s,transform .12s;display:inline-flex;box-shadow:inset 0 1px #ffffff0b}.shuffle-button:active:not(:disabled){color:#f2e6ce;background:#e0c47e14;border-color:#e0c47e4d;transform:translateY(1px)scale(.985)}.shuffle-button:disabled{opacity:.42}.is-playing .tile-rack{overscroll-behavior:auto;touch-action:none;background:linear-gradient(#ffeccb06,#0000 45%),linear-gradient(#21140e,#3b2519);border:1px solid #0d08057a;border-radius:14px;flex-wrap:wrap;flex:none;place-content:flex-start center;align-items:center;gap:4px;min-height:59px;padding:6px 7px 10px;scroll-padding:0;overflow:visible;box-shadow:inset 0 6px 13px #00000080,inset 0 -1px #ffe0b41a,0 1px #fff5da09}.is-playing .rack-tile{isolation:isolate;width:44px;min-width:44px;height:46px;font-family:var(--serif);touch-action:none;transition:transform .17s var(--premium-ease), box-shadow .17s ease, border-color .17s ease, opacity .1s ease;background:radial-gradient(circle at 28% 18%,#fffce8ad,#0000 38%),linear-gradient(155deg,#f2e2bd 0%,#e2c99a 62%,#d1b27d 100%);border:1px solid #815d367a;border-radius:10px;overflow:hidden;box-shadow:inset 0 1px #fffcebcc,inset 0 -1px 1px #6f4d2a33,0 1px 1px #140c074d,0 4px 9px #00000047}.is-playing .rack-tile:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(145deg,#ffffff26,#0000 42%);border:1px solid #fffae347;border-radius:8px;position:absolute;inset:1px;box-shadow:inset 1px 1px #fffce833,inset -1px -1px #67462514}.is-playing .rack-tile:after{z-index:0;content:"";pointer-events:none;background:#6745241f;border-radius:999px;height:1px;position:absolute;bottom:3px;left:18%;right:18%}.is-playing .rack-tile>span{z-index:1;color:#20382d;font-family:var(--serif);letter-spacing:-.025em;text-shadow:-.55px -.55px #fffce6bd,.65px .85px #4f361f4d,0 1.5px 1.5px #4b311a1f;margin-top:-2px;font-size:1.2rem;font-weight:700;position:relative}.is-playing .rack-tile.is-selected{border-color:var(--brass-highlight);transform:translateY(-2px)scale(1.025);box-shadow:inset 0 1px #ffffffc2,inset 0 -1px #704b2729,0 7px 15px #00000057,0 0 0 2px #c7a25cb8,0 0 16px #c7a25c38}.is-playing .rack-tile.is-dragging{opacity:.23;transform:scale(.98)}.is-playing .rack-drag-preview{box-shadow:inset 0 1px #ffffffc2,inset 0 -1px #704b2726,0 6px 10px #00000038,0 15px 24px #0000004d}.is-playing .rack-tile:active:not(.is-dragging){transform:translateY(1px)scale(.985);box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #704b272e,0 2px 5px #0000003d}.is-playing .solo-dock-header{gap:8px;margin-bottom:4px}.is-playing .solo-round-menu{z-index:12;flex:none;position:relative}.is-playing .solo-round-trigger{color:#d4c7ad;cursor:pointer;letter-spacing:.045em;text-transform:uppercase;background:#0a100c4d;border:1px solid #e0c47e26;border-radius:12px;justify-content:space-between;align-items:center;gap:9px;min-width:82px;min-height:44px;padding:0 11px;font-size:.69rem;font-weight:720;display:flex;box-shadow:inset 0 1px #ffffff0b}.is-playing .solo-round-trigger b{color:var(--brass);letter-spacing:.08em;font-size:.64rem;transform:translateY(-1px)}.is-playing .solo-round-controls{width:150px;animation:round-menu-in .15s var(--premium-ease) both;background:#0e1611f5;border:1px solid #e0c47e33;border-radius:14px;gap:3px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 18px 38px #0000006b,inset 0 1px #ffffff0e}.is-playing .solo-round-controls .text-button{color:#c9bda5;border-radius:9px;align-items:center;width:100%;min-height:44px;padding:0 11px;font-size:.72rem;text-decoration:none;transition:color .14s,background .14s;display:flex}.is-playing .solo-round-controls .text-button:active{color:#f2e7d1;background:#e0c47e17}.is-playing .empty-rack{color:#c6b9a0}.is-playing .action-row{gap:8px;padding-top:7px}.is-playing .dump-button,.is-playing .peel-button{border-radius:13px;min-height:52px;transition:transform .12s,box-shadow .16s,border-color .16s,filter .16s}.is-playing .dump-button{color:#ded4bf;background:linear-gradient(155deg,#3e493e,#253028);border:1px solid #e0c47e29;box-shadow:inset 0 1px #ffffff14,inset 0 -2px #04090633,0 4px #162019,0 8px 16px #0000003d}.is-playing .peel-button{color:#25180d;background:radial-gradient(circle at 50% 0,#fff4c373,#0000 48%),linear-gradient(160deg,#d9ba70,#a97932);border:1px solid #d9b66b;box-shadow:inset 0 1px #fffadab3,inset 0 -2px #5c351133,0 4px #765022,0 10px 20px #0000004d}.is-playing .peel-button.is-bananas{color:#f5ead5;background:radial-gradient(circle at 50% 0,#def0c72e,#0000 50%),linear-gradient(150deg,#5a7c5f,#2b5138);border-color:#99b9898a;box-shadow:inset 0 1px #ffffff2e,inset 0 -2px #081a0f38,0 4px #1b3926,0 10px 20px #0000004d}.is-playing .dump-button span,.is-playing .peel-button span{letter-spacing:-.01em;font-size:1.06rem}.is-playing .dump-button small,.is-playing .peel-button small{color:currentColor;letter-spacing:.055em;opacity:.66;font-size:.66rem}.is-playing .dump-button:active:not(:disabled),.is-playing .peel-button:active:not(:disabled){transform:translateY(2px)scale(.992)}.is-playing .dump-button:disabled,.is-playing .peel-button:disabled{filter:saturate(.45);opacity:.48;box-shadow:inset 0 1px #ffffff0d,0 2px #0a0e0b52}.finish-screen{isolation:isolate;min-height:100%;padding:max(40px, env(safe-area-inset-top)) 24px max(32px, env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:relative;overflow:hidden}.is-finished .finish-screen:before{z-index:-1;aspect-ratio:1;content:"";border:1px solid #e0c47e24;border-radius:50%;width:min(76vw,330px);position:absolute;top:50%;left:50%;transform:translate(-50%,-54%);box-shadow:0 0 0 18px #e0c47e06,0 0 0 19px #e0c47e12,inset 0 0 70px #060b086b}.is-finished .finish-screen:after{z-index:-2;content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e0c47e09,#0000),radial-gradient(circle at 50% 48%,#e0c47e11,#0000 34%);position:absolute;inset:0}.finish-screen>:last-child{margin-bottom:auto}.finish-screen>p:not(.eyebrow){max-width:470px;color:var(--forest-soft);margin:18px 0 26px;line-height:1.55}.is-finished .finish-screen>.eyebrow{color:#c7b89d}.is-finished .finish-screen h2{color:#f2e4ca;max-width:620px;font-family:var(--serif);letter-spacing:-.055em;text-wrap:balance;text-shadow:0 12px 36px #0000006b;margin:10px 0 0;font-size:clamp(2.55rem,11vw,5.5rem);font-weight:400;line-height:.94}.is-finished .finish-screen>p:not(.eyebrow){color:#bdb19b}.finish-glow{z-index:-1;filter:blur(30px);background:linear-gradient(90deg,#0000,#ffee9a9e,#0000);width:110vw;height:34vh;animation:1.6s both finish-sweep;position:absolute;transform:rotate(-12deg)}.is-finished .finish-glow{filter:blur(42px);mix-blend-mode:screen;background:linear-gradient(90deg,#0000,#e0c47e33,#0000);width:130vw;height:20vh;top:22%}.finish-stats{grid-template-columns:1fr 1fr;gap:10px;width:min(100%,430px);margin-bottom:24px;display:grid}.finish-stats div{background:#fffaf08c;border:1px solid #ffffff75;border-radius:20px;flex-direction:column;padding:18px;display:flex;box-shadow:0 12px 30px #26372f14}.is-finished .finish-stats{gap:8px}.is-finished .finish-stats div{background:radial-gradient(circle at 50% -30%,#e0c47e1c,#0000 56%),linear-gradient(150deg,#2f4335e0,#0f1913eb);border-color:#e0c47e2e;position:relative;overflow:hidden;box-shadow:0 16px 34px #00000047,inset 0 1px #fff8e10e}.is-finished .finish-stats span{color:#c9bca5}.is-finished .finish-stats strong{color:#f0ddb7;text-shadow:0 2px #00000059}.is-finished .finish-stats small{color:#8f9e8f}.is-finished .finish-screen>.primary-button{border-color:#ffe198b8;box-shadow:inset 0 1px #fffce0b8,0 5px #765022,0 16px 32px #00000057}.is-finished .finish-screen>.text-button{color:#b9ad97}.finish-stats span{font-size:.75rem;font-weight:700}.finish-stats strong{font-family:var(--serif);margin:4px 0;font-size:2rem;font-weight:500}.finish-stats small{color:var(--sage-600);text-transform:uppercase;font-size:.63rem}.finish-screen>.primary-button{max-width:430px}.finish-screen>.text-button{margin-top:9px}.reconnect-screen{padding:max(22px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));color:var(--play-text);background:radial-gradient(circle at 50% -12%,#587d6257,#0000 48%),linear-gradient(155deg,#19271f,#0b120e 74%);justify-content:flex-start;align-items:flex-start;display:flex}.reconnect-card{text-align:center;background:radial-gradient(circle at 74% -24%,#e0c47e1f,#0000 44%),linear-gradient(150deg,#2c4334f5,#111b15fa);border:1px solid #e0c47e3d;border-radius:28px;flex:none;width:min(100%,470px);margin:auto;padding:clamp(25px,7vw,42px);position:relative;overflow:hidden;box-shadow:0 28px 70px #0000006b,0 4px #060a07b8,inset 0 1px #fff6db14}.reconnect-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e0c47e8f,#0000);height:1px;position:absolute;top:0;left:18px;right:18px}.reconnect-card .eyebrow{color:#c7b89d}.reconnect-card h1,.reconnect-card h2{color:#f1e4ca;font-family:var(--serif);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(2rem,9vw,3.35rem);font-weight:400;line-height:.98}.reconnect-card>p:not(.eyebrow){color:#bbb09a;max-width:350px;margin:16px auto 22px;font-size:.88rem;line-height:1.55}.reconnect-room{background:#070d0947;border:1px solid #e0c47e29;border-radius:11px;align-items:center;gap:9px;min-height:42px;margin-bottom:20px;padding:7px 11px;display:inline-flex;box-shadow:inset 0 1px #ffffff0a}.reconnect-room span{color:#a99d88;letter-spacing:.1em;text-transform:uppercase;font-size:.57rem;font-weight:760}.reconnect-room strong{color:#ead8b4;font-family:var(--serif);letter-spacing:.1em;font-size:1.08rem;font-weight:600}.reconnect-actions{gap:8px;margin-top:22px;display:grid}.reconnect-card .primary-button{min-height:52px}.reconnect-card .text-button{color:#d2c5ae;width:100%;margin-top:6px}.connection-state{color:#bcd1b8;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap;background:#587e5b1a;border:1px solid #85b08b33;border-radius:999px;align-self:flex-start;align-items:center;gap:5px;width:max-content;min-height:18px;padding:2px 7px;font-size:.56rem;font-weight:760;line-height:1;display:inline-flex}.connection-state:before{content:"";background:#79a978;border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 0 3px #79a9781a,0 0 9px #79a97847}.connection-state.is-reconnecting{color:#ddc68d;background:#c7a25c17;border-color:#e0c47e3d}.connection-state.is-reconnecting:before{background:#d5ad5a;animation:1.25s ease-in-out infinite presence-pulse;box-shadow:0 0 0 3px #d5ad5a1c,0 0 10px #d5ad5a4d}.connection-state.is-away{color:#c9aa98;background:#975e4917;border-color:#c08b7033}.connection-state.is-away:before{background:#a57461;box-shadow:0 0 0 3px #a5746114}.is-playing .opponent-chip .connection-state{color:#bcd1b8;letter-spacing:.075em;font-size:.56rem;line-height:1}.is-playing .opponent-chip .connection-state.is-reconnecting{color:#ddc68d}.is-playing .opponent-chip .connection-state.is-away{color:#c9aa98}.reconnect-card>.connection-state{min-height:26px;margin:0 auto 16px;padding-inline:10px;font-size:.62rem}.finish-screen>.connection-state{align-self:center;margin:-8px 0 14px}.table-connection-banner{z-index:20;right:auto;bottom:max(14px, env(safe-area-inset-bottom));color:#72551d;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(14px)saturate(1.05);backdrop-filter:blur(14px)saturate(1.05);background:#fffaf0f0;border-color:#6a4e2038;align-self:auto;max-width:calc(100vw - 28px);min-height:26px;margin:0;padding:5px 10px;font-size:.62rem;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #26372f29,inset 0 1px #ffffffb8}.table-connection-banner.connection-state.is-reconnecting:before{background:#b0832e;box-shadow:0 0 0 3px #b0832e1a,0 0 10px #b0832e3d}.is-playing .table-connection-banner{z-index:12;top:calc(max(8px, env(safe-area-inset-top)) + 60px);color:#ddc68d;-webkit-backdrop-filter:blur(15px)saturate(.9);backdrop-filter:blur(15px)saturate(.9);background:#0b130ee0;border-color:#e0c47e3d;max-width:calc(100% - 24px);position:absolute;bottom:auto;left:50%;right:auto;box-shadow:0 10px 24px #0000004d,inset 0 1px #ffffff0e}.is-playing .table-connection-banner.connection-state.is-reconnecting:before{background:#d5ad5a;box-shadow:0 0 0 3px #d5ad5a1c,0 0 10px #d5ad5a4d}.round-countdown{z-index:90;color:#f2e5c9;font-family:var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.06em;text-align:center;text-shadow:0 8px 34px #0000007a,0 0 34px #e0c47e1f;pointer-events:none;-webkit-backdrop-filter:blur(7px)saturate(.85);backdrop-filter:blur(7px)saturate(.85);animation:countdown-reveal .26s var(--premium-ease) both;background:radial-gradient(circle at 50% 47%,#5c795b42,#0000 27%),#070d09c2;place-content:center;justify-items:center;gap:7px;padding:24px;font-size:clamp(5rem,24vw,9rem);font-weight:500;line-height:.8;display:grid;position:absolute;inset:0}.round-countdown small{color:#c6b99f;font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;font-weight:760;line-height:1.2}.round-countdown>strong,.round-countdown>span{font:inherit}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e2e255c;place-items:end center;padding:14px;animation:.18s both fade-in;display:grid;position:fixed;inset:0}.rules-modal{width:min(100%,540px);max-height:min(88dvh,720px);padding:32px 24px max(24px, env(safe-area-inset-bottom));border-radius:30px;animation:.34s cubic-bezier(.22,.9,.32,1) both sheet-in;position:relative;overflow-y:auto}.modal-close{cursor:pointer;background:#26372f12;border-radius:50%;place-items:center;width:36px;height:36px;font-size:1.3rem;display:grid;position:absolute;top:16px;right:16px}.rules-modal ol{gap:17px;margin:28px 0;padding:0;list-style:none;display:grid}.rules-modal li{text-align:left;grid-template-columns:38px 1fr;gap:12px;display:grid}.rules-modal li>span{background:linear-gradient(145deg, var(--ivory-bright), #ecd8b5);width:36px;height:36px;font-family:var(--serif);border-radius:10px;place-items:center;font-weight:700;display:grid;box-shadow:0 6px 9px #523b2a21}.rules-modal li strong{font-family:var(--serif);font-size:1rem}.rules-modal li p{color:var(--forest-soft);margin:3px 0 0;font-size:.78rem;line-height:1.45}.lexicon-policy{text-align:left;background:#26372f0b;border:1px solid #26372f1a;border-radius:13px;gap:2px;margin:-12px 0 16px;padding:11px 13px;display:grid}.lexicon-policy strong{color:var(--forest);letter-spacing:.055em;text-transform:uppercase;font-size:.68rem;font-weight:780}.lexicon-policy span{color:var(--forest-soft);font-size:.72rem;line-height:1.38}.toast{z-index:80;top:max(18px, env(safe-area-inset-top));pointer-events:none;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffaf0eb;border:1px solid #26372f1f;border-radius:999px;width:max-content;max-width:calc(100vw - 32px);padding:11px 17px;font-size:.78rem;font-weight:700;animation:.26s cubic-bezier(.22,.9,.32,1.15) both toast-in;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #26372f2e}.toast.is-error{color:#923f39;border-color:#d9685d4d}.toast.is-success{color:#376e48;border-color:#43875847}.is-playing .toast{color:#eee4d1;-webkit-backdrop-filter:blur(16px)saturate(.9);backdrop-filter:blur(16px)saturate(.9);background:#0c140fe6;border-color:#e0c47e2e;box-shadow:0 16px 38px #00000057,inset 0 1px #ffffff0e}.is-playing .toast.is-error{color:#efb3aa;border-color:#d0695e6b}.is-playing .toast.is-success{color:#c7ddb9;border-color:#8bb28061}.app-loading{place-items:center;display:grid}.brand-lockup{flex-direction:column;align-items:center;gap:4px;display:flex}.brand-lockup span{max-width:calc(100vw - 48px);font-family:var(--serif);letter-spacing:-.05em;text-align:center;text-wrap:balance;font-size:2.6rem;line-height:1.05}.brand-lockup small{color:var(--sage-600);letter-spacing:.14em;text-transform:uppercase;font-size:.65rem}.loading-orbit{gap:6px;margin-top:90px;display:flex;position:absolute}@keyframes tile-arrive{0%{opacity:0;transform:translateY(-35px)rotate(7deg)scale(.82)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes waiting-dot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes callout-in{0%{opacity:0;transform:translateY(-5px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes finish-sweep{0%{opacity:0;transform:translate(-80%)rotate(-12deg)}40%{opacity:1}to{opacity:.56;transform:translate(35%)rotate(-12deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(26px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)scale(.94)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes round-menu-in{0%{opacity:0;transform:translateY(7px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:760px){.app-shell{min-height:500px}.toast{top:calc(max(8px, env(safe-area-inset-top)) + 70px)}.is-playing .opponent-chip strong{max-width:112px}.lobby-card{border-radius:28px}}@media (min-width:761px){.modal-backdrop{place-items:center}.game-screen{width:min(100%,720px);margin:0 auto}.board-stage{margin-inline:12px}.tile-dock{padding-inline:15px}.is-playing .board-stage{border-width:1px;margin-inline:10px}.is-playing .tile-dock{padding-inline:14px}}@media (max-height:700px) and (max-width:760px){.tile-rack{min-height:46px}.rack-tile{width:42px;min-width:42px;height:44px}.action-row button{min-height:47px}.is-playing .game-topbar{min-height:58px;padding-top:max(6px, env(safe-area-inset-top))}.is-playing .board-stage{border-width:1px;border-radius:22px}.is-playing .tile-dock{padding-top:6px}.is-playing .dock-heading{margin-bottom:4px}.is-playing .dock-heading span small{display:none}.is-playing .rack-heading{margin-bottom:4px}.is-playing .tile-rack{gap:4px;min-height:52px;padding:4px 6px 8px}.is-playing .rack-tile{width:44px;min-width:44px;height:44px}.is-playing .action-row{padding-top:5px}.is-playing .action-row button{min-height:48px}}@media (max-width:360px){.lobby-card>.room-code{gap:4px}.lobby-card .room-code span{width:clamp(34px,10.5vw,38px)}.is-playing .game-topbar{gap:7px;padding-inline:7px}.is-playing .opponent-chip{gap:6px;padding-right:6px}.is-playing .opponent-avatar{width:32px;height:32px}.is-playing .opponent-chip strong{max-width:54px;font-size:.74rem}.is-playing .solo-mode-chip strong{max-width:86px}.is-playing .opponent-chip b{min-width:24px;height:24px}.is-playing .pile-counter{min-width:54px;padding-inline:8px}.is-playing .rack-heading{gap:5px}.is-playing .rack-heading>span small{display:none}.is-playing .shuffle-button{padding-inline:7px;font-size:.63rem}.is-playing .solo-round-controls .text-button{padding-inline:4px;font-size:.63rem}}@media (orientation:landscape) and (max-height:560px){.app-shell{min-height:0}.game-screen{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 280px;width:min(100%,980px)}.game-topbar{grid-column:1/-1}.board-stage{grid-area:2/1}.tile-dock{flex-direction:column;grid-area:2/2;display:flex}.tile-rack{flex-wrap:wrap;flex:1;align-content:flex-start;overflow-y:auto}.action-row{grid-template-columns:1fr}.is-playing .game-topbar{min-height:56px}.is-playing .board-stage{border-width:1px;margin:0 6px 6px}.is-playing .tile-dock{padding:6px 8px max(6px, env(safe-area-inset-bottom))}.is-playing .dock-heading span small{display:none}.is-playing .rack-heading{gap:5px;margin-bottom:3px}.is-playing .rack-heading .shuffle-button{margin-left:2px}.is-playing .shuffle-button{min-height:44px;padding-inline:7px;font-size:.62rem}.is-playing .solo-dock-header{margin-bottom:3px}.is-playing .solo-dock-header .dock-heading{min-width:78px}.is-playing .tile-rack{gap:3px;padding:3px 4px 5px;overflow:visible}.is-playing .rack-tile{border-radius:8px;width:42px;min-width:42px;height:38px}.is-playing .rack-tile:before{border-radius:6px}.is-playing .rack-tile>span{margin-top:-1px;font-size:1.04rem}.is-playing .action-row{grid-template-columns:minmax(78px,.8fr) minmax(118px,1.2fr);gap:6px;padding-top:4px}.is-playing .action-row button{min-height:44px}.is-playing .solo-round-controls .text-button{padding-inline:4px;font-size:.62rem}}@media (orientation:landscape) and (max-height:560px) and (min-width:700px){.game-screen{grid-template-columns:minmax(0,1fr) 300px}}.is-playing .board-action-bar{z-index:8;min-width:0;min-height:68px;margin:6px 8px max(7px, env(safe-area-inset-bottom));isolation:isolate;background:radial-gradient(circle at 72% -80%,#e6c78021,#0000 58%),linear-gradient(105deg,#fff0cd0b,#0000 31%),linear-gradient(155deg,#503421 0%,#321f15 46%,#24160f 100%);border:1px solid #e0c47e45;border-radius:17px;grid-area:3/1;grid-template-columns:44px 50px minmax(68px,.78fr) minmax(94px,1.22fr);align-items:stretch;gap:5px;padding:7px;display:grid;position:relative;box-shadow:0 13px 28px #0000005c,0 3px #160d09,inset 0 1px #fff2cd1f,inset 0 -1px #05030257}.is-playing .board-action-bar:before{z-index:-1;content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e0c47e94,#0000);height:1px;position:absolute;top:0;left:12px;right:12px}.is-playing .loose-readout{min-width:44px;min-height:52px;color:var(--play-text);font-variant-numeric:tabular-nums;background:radial-gradient(circle at 50% 0,#e0c47e12,#0000 60%),#070c0961;border:1px solid #e0c47e1c;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;box-shadow:inset 0 1px #ffffff0b,inset 0 -1px #00000047}.is-playing .loose-readout small{color:var(--play-muted);letter-spacing:.105em;text-transform:uppercase;font-size:.49rem;font-weight:760;line-height:1}.is-playing .loose-readout strong{color:#ead7ae;font-family:var(--serif);text-shadow:0 1px #0000005c;font-size:1.18rem;font-weight:600;line-height:1}.is-playing .board-action-bar>button{touch-action:manipulation;border-radius:11px;width:100%;min-width:0;min-height:52px}.is-playing .board-action-bar .shuffle-button{color:#d8cbb1;letter-spacing:.045em;background:#1c271f9e;border-color:#e0c47e1f;padding:0 4px;font-size:.57rem;box-shadow:inset 0 1px #ffffff12,0 3px #0d120ebd}.is-playing .board-action-bar .dump-button{background:linear-gradient(155deg,#394439db,#1c251ee6);border-color:#e0c47e21;box-shadow:inset 0 1px #ffffff0e,0 3px #0d120eb8}.is-playing .board-action-bar .peel-button:not(:disabled){animation:peel-ready-in .62s var(--premium-ease) both}.is-playing .board-action-bar .dump-button,.is-playing .board-action-bar .peel-button{padding:3px 4px 4px}.is-playing .board-action-bar .dump-button span,.is-playing .board-action-bar .peel-button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.94rem;line-height:1;overflow:hidden}.is-playing .board-action-bar .dump-button small,.is-playing .board-action-bar .peel-button small{letter-spacing:.025em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:3px;font-size:.52rem;line-height:1.05;display:block;overflow:hidden}.is-playing .board-round-menu{z-index:12;position:absolute;top:10px;left:10px}.is-playing .board-round-menu .solo-round-controls{inset:calc(100% + 7px) auto auto 0}.is-playing .solo-board-stage .invalid-callout{max-width:none;top:64px;left:10px;right:10px}@media (max-height:700px) and (max-width:760px){.is-playing .board-action-bar{min-height:64px;margin-top:4px;padding:6px}.is-playing .loose-readout,.is-playing .board-action-bar>button{min-height:48px}}@media (max-width:360px){.is-playing .board-action-bar{grid-template-columns:44px 48px minmax(68px,.76fr) minmax(94px,1.24fr);gap:4px;margin-inline:5px;padding-inline:6px}.is-playing .board-action-bar .shuffle-button{padding-inline:2px;font-size:.54rem}.is-playing .board-action-bar .dump-button small,.is-playing .board-action-bar .peel-button small{letter-spacing:.012em;font-size:.56rem}}@media (orientation:landscape) and (max-height:560px){.game-screen{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 132px;width:min(100%,980px)}.is-playing .board-stage{grid-area:2/1}.is-playing .board-action-bar{border-radius:16px;grid-area:2/2;grid-template-rows:44px 44px minmax(44px,.84fr) minmax(52px,1.16fr);grid-template-columns:minmax(0,1fr);gap:6px;min-height:0;margin:0 6px 6px 0;padding:7px}.is-playing .board-action-bar:before{background:linear-gradient(#0000,#e0c47e94,#0000);width:1px;height:auto;inset:12px auto 12px 0}.is-playing .loose-readout{flex-direction:row;gap:8px;min-height:44px}.is-playing .loose-readout small{font-size:.52rem}.is-playing .loose-readout strong{font-size:1.1rem}.is-playing .board-action-bar>button,.is-playing .board-action-bar .shuffle-button{min-height:44px}.is-playing .board-action-bar .shuffle-button{font-size:.6rem}.is-playing .board-action-bar .dump-button span,.is-playing .board-action-bar .peel-button span{font-size:.98rem}.is-playing .board-action-bar .dump-button small,.is-playing .board-action-bar .peel-button small{font-size:.56rem}}@media (max-height:700px) and (max-width:760px){.lobby-topbar{min-height:58px;padding-top:max(7px, env(safe-area-inset-top));padding-bottom:6px}.lobby-card{width:min(100% - 24px,580px);margin-block:10px;padding:22px 20px}.lobby-card>p:not(.eyebrow){margin:12px auto 15px;font-size:.84rem}.room-code{margin:16px 0}.waiting-players{margin-top:18px}.finish-screen{padding:max(22px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom))}.finish-screen>p:not(.eyebrow){margin:12px 0 18px;font-size:.88rem}.finish-stats{margin-bottom:18px}.finish-stats div{padding:14px}.reconnect-screen{padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.reconnect-card{border-radius:23px;padding:23px 20px}}@media (orientation:landscape) and (max-height:560px){.toast{top:calc(max(4px, env(safe-area-inset-top)) + 58px)}.table-connection-banner{bottom:max(7px, env(safe-area-inset-bottom));min-height:24px;padding:4px 9px;font-size:.58rem}.is-playing .table-connection-banner{top:calc(max(4px, env(safe-area-inset-top)) + 56px);bottom:auto;left:calc(50% - 66px)}.app-shell:not(.is-playing){min-height:0}.welcome-screen,.lobby-screen,.finish-screen,.reconnect-screen{height:100dvh}.lobby-topbar{min-height:52px;padding:max(5px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 4px max(12px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px)saturate(1.05);backdrop-filter:blur(12px)saturate(1.05);background:linear-gradient(#e7eee4f5,#e7eee4bd 76%,#0000);position:sticky;top:0}.lobby-card{width:min(100% - 24px,760px);margin:8px auto max(10px, env(safe-area-inset-bottom));border-radius:22px;grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,1.08fr) minmax(210px,.92fr);column-gap:18px;padding:14px 18px;display:grid}.lobby-card>.eyebrow{text-align:left;grid-area:1/1;margin-bottom:4px;font-size:.6rem}.lobby-card>h2{text-align:left;grid-area:2/1;font-size:clamp(1.8rem,5vw,2.35rem)}.lobby-card>.room-code{grid-area:3/1;justify-content:flex-start;gap:4px;margin:10px 0}.lobby-card .room-code span{border-radius:8px;width:clamp(34px,6vw,42px);font-size:clamp(1.15rem,3.6vw,1.45rem)}.lobby-card>p:not(.eyebrow){text-align:left;grid-area:4/1;max-width:none;margin:0;font-size:.75rem;line-height:1.38}.lobby-card>.waiting-players{grid-area:1/2/4;grid-template-columns:1fr 38px 1fr;align-self:center;gap:5px;margin:0}.lobby-card .player-seat>span{width:44px;height:44px;margin-bottom:3px}.lobby-card .player-seat strong{max-width:82px;font-size:.72rem}.lobby-card .player-seat small{font-size:.59rem}.lobby-card>.primary-button{grid-area:4/2;align-self:end;min-height:46px}.finish-screen{padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));text-align:left;grid-template-rows:auto auto 1fr auto auto;grid-template-columns:minmax(0,1fr) minmax(250px,.92fr);align-content:center;align-items:center;column-gap:20px;display:grid}.finish-screen>.eyebrow{grid-area:1/1;margin-top:0;margin-bottom:7px}.finish-screen>h2{grid-area:2/1;font-size:clamp(2rem,5.4vw,3rem)}.finish-screen>p:not(.eyebrow){grid-area:3/1;align-self:start;margin:10px 0 14px;font-size:.8rem;line-height:1.42}.finish-screen>.finish-stats{grid-area:1/2/4;gap:7px;width:100%;margin:0}.finish-stats div{border-radius:15px;padding:10px}.finish-stats strong{font-size:1.55rem}.finish-screen>.primary-button{grid-area:5/2;width:100%;max-width:none;min-height:46px;margin-top:9px}.finish-screen>.text-button{grid-area:5/1;justify-self:start;margin:9px 0 0}.finish-screen>.connection-state{grid-area:4/2;place-self:center;margin:7px 0 0}.reconnect-screen{padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.reconnect-card{border-radius:22px;width:min(100%,590px);padding:18px 22px}.reconnect-card h1,.reconnect-card h2{font-size:clamp(1.9rem,6vw,2.8rem)}.reconnect-card>p:not(.eyebrow){margin:10px auto 14px;font-size:.8rem}.reconnect-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:14px}.round-countdown{gap:4px;font-size:clamp(4rem,24vh,6.5rem)}}@keyframes presence-pulse{0%,to{opacity:.58;transform:scale(.84)}50%{opacity:1;transform:scale(1)}}@keyframes countdown-reveal{0%{opacity:0}to{opacity:1}}@keyframes peel-ready-in{0%{filter:brightness(.9)saturate(.72);transform:translateY(1px)scale(.985);box-shadow:inset 0 1px #fffada80,0 3px #765022,0 8px 16px #0000003d}58%{filter:brightness(1.08)saturate(1.08);transform:translateY(-1px)scale(1.012);box-shadow:inset 0 1px #fffadacc,0 4px #765022,0 12px 24px #00000057,0 0 20px #e0c47e2e}to{filter:none;transform:none}}.wordmark{font-optical-sizing:auto;align-items:center;gap:9px;display:inline-flex}.brand-mark{filter:drop-shadow(0 5px 10px #0006);display:block}.wordmark>.brand-mark{width:28px;height:28px}.round-button,.sound-button,.modal-close{line-height:0}.brand-lockup>.brand-mark{width:48px;height:48px;margin-bottom:10px}.brand-lockup span,.lobby-card h2,.finish-screen h2,.round-countdown,.room-code span{font-optical-sizing:auto}.is-playing .opponent-chip,.is-playing .pile-counter,.is-playing .sound-button,.is-playing .board-tools,.is-playing .toast{-webkit-backdrop-filter:none;backdrop-filter:none}.is-playing .sound-button{color:#d8bf85}.is-playing .board-tools{opacity:.72;transition:opacity .18s,border-color .18s}.is-playing .board-tools:hover,.is-playing .board-tools:focus-within,.is-playing .board-tools:active{opacity:1}.is-playing .board-tools button{width:40px;min-width:40px;padding:0}.is-playing .solo-round-trigger{min-width:88px}.is-playing .solo-round-trigger .game-icon{color:var(--brass)}.is-playing .board-action-bar{min-height:66px;margin:3px 8px max(7px, env(safe-area-inset-bottom));background:radial-gradient(circle at 76% -95%,#e8cb8b2b,#0000 61%),linear-gradient(105deg,#fff0cd0b,#0000 34%),linear-gradient(155deg,#533722 0%,#321f15 48%,#21130d 100%);border-color:#e0c47e4d;border-radius:18px;grid-template-columns:58px 46px minmax(86px,.82fr) minmax(116px,1.18fr);gap:5px;padding:6px}.is-playing .loose-readout{min-width:0;min-height:52px;box-shadow:none;color:#bfa875;background:0 0;border-color:#0000;flex-direction:row;justify-content:flex-start;gap:6px;padding-left:6px}.is-playing .loose-readout>span{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.is-playing .loose-readout small{letter-spacing:.12em;font-size:.48rem}.is-playing .loose-readout strong{font-size:1.24rem}.is-playing .board-action-bar>button{border-radius:12px;min-height:52px}.is-playing .board-action-bar .shuffle-button{color:#d8c9ab;border-color:#e0c47e24;place-items:center;width:46px;min-width:46px;padding:0;display:grid}.is-playing .board-action-bar .dump-button,.is-playing .board-action-bar .peel-button{align-items:center;justify-content:initial;text-align:left;grid-template-columns:22px minmax(0,1fr);column-gap:7px;padding:4px 8px 5px;display:grid}.is-playing .board-action-bar .command-copy{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.is-playing .board-action-bar .command-copy>span{width:100%;font-family:var(--serif);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:1.03rem;font-weight:580;line-height:1;overflow:hidden}.is-playing .board-action-bar .command-copy>small{letter-spacing:.015em;text-overflow:ellipsis;white-space:nowrap;width:100%;margin-top:3px;font-size:.55rem;font-weight:640;line-height:1.08;display:block;overflow:hidden}.is-playing .board-action-bar .dump-button:disabled,.is-playing .board-action-bar .peel-button:disabled,.is-playing .board-action-bar .shuffle-button:disabled{filter:saturate(.42)brightness(.82);opacity:.54;transform:translateY(1px);box-shadow:inset 0 2px 7px #02050359,inset 0 1px #ffffff09}.round-moment{z-index:88;color:#f3e4c5;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.round-moment-scrim{background:radial-gradient(circle at 50% 49%,#c29b5229,#0000 30%),#050a076b;animation:1.45s both round-moment-scrim;position:absolute;inset:0}.round-moment.is-sage .round-moment-scrim{background:radial-gradient(circle at 50% 49%,#769e7e33,#0000 30%),#050a076b}.round-moment.is-coral .round-moment-scrim{background:radial-gradient(circle at 50% 49%,#d3675b2e,#0000 30%),#0c060575}.round-moment-seal{aspect-ratio:1;width:min(62vw,230px);animation:round-moment-seal 1.45s var(--premium-ease) both;background:radial-gradient(circle,#152219e6,#070d09ad 65%,#0000 66%);border:1px solid #e1c58b42;border-radius:50%;place-content:center;justify-items:center;display:grid;position:relative;box-shadow:0 0 0 8px #e1c58b06,0 0 0 9px #e1c58b17,0 24px 60px #00000057,inset 0 0 48px #04080657}.round-moment-icon{color:#d9b973;border:1px solid #e1c58b38;border-radius:50%;place-items:center;width:38px;height:38px;margin-bottom:10px;display:grid}.round-moment.is-sage .round-moment-icon{color:#a5c4a5}.round-moment.is-coral .round-moment-icon{color:#e39a8f}.round-moment small{color:#b9ad96;letter-spacing:.17em;text-transform:uppercase;font-size:.57rem;font-weight:690}.round-moment strong{font-family:var(--serif);letter-spacing:-.045em;text-transform:capitalize;text-shadow:0 9px 24px #0000006b;margin-top:3px;font-size:clamp(2.9rem,14vw,4.9rem);font-weight:480;line-height:.86}.round-moment-seal>i{background:linear-gradient(90deg,#0000,#e1c58bb3,#0000);width:38px;height:1px;margin-top:15px;animation:1.45s both round-moment-line}.round-moment.is-minor{place-items:start center;width:min(100% - 148px,244px);min-width:174px;height:auto;inset:12px auto auto 50%;overflow:visible;transform:translate(-50%)}.round-moment.is-minor .round-moment-scrim{display:none}.round-moment.is-minor .round-moment-seal{aspect-ratio:auto;width:auto;min-width:174px;max-width:100%;animation:round-moment-minor .7s var(--premium-ease) both;-webkit-backdrop-filter:blur(14px)saturate(.9);backdrop-filter:blur(14px)saturate(.9);background:linear-gradient(118deg,#fff4d60e,#0000 42%),#08100bd6;border-color:#e1c58b38;border-radius:999px;grid-template-rows:auto auto;grid-template-columns:30px minmax(0,1fr);place-content:center;justify-items:start;column-gap:9px;padding:7px 13px 8px 8px;display:grid;box-shadow:0 12px 30px #00000047,inset 0 1px #ffffff0e}.round-moment.is-minor .round-moment-icon{background:#e1c58b0b;border-color:#e1c58b29;grid-row:1/3;align-self:center;width:30px;height:30px;margin:0}.round-moment.is-minor small{letter-spacing:.12em;text-overflow:ellipsis;white-space:nowrap;align-self:end;font-size:.48rem;line-height:1.05;overflow:hidden}.round-moment.is-minor strong{font-family:var(--sans);letter-spacing:.01em;text-shadow:none;text-transform:uppercase;align-self:start;margin:0;font-size:.78rem;font-weight:720;line-height:1.05}.round-moment.is-minor .round-moment-seal>i{display:none}.round-countdown{-webkit-backdrop-filter:blur(1.5px)saturate(.92);backdrop-filter:blur(1.5px)saturate(.92);background:radial-gradient(circle at 50% 43%,#c29b522e,#0000 24%),linear-gradient(#050a0794,#050a074d 58%,#050a071f)}.round-countdown>span{aspect-ratio:1;border:1px solid #e0c47e47;border-radius:50%;place-items:center;width:min(42vw,170px);display:grid;box-shadow:0 0 0 9px #e0c47e06,0 0 0 10px #e0c47e14,inset 0 0 44px #050a0761}.finish-board-backdrop{z-index:-4;opacity:.34;filter:saturate(.72)brightness(.6)contrast(1.08);pointer-events:none;position:absolute;inset:-8%;overflow:hidden;transform:scale(1.07)}.finish-board-backdrop:after{content:"";background:radial-gradient(circle at 50% 46%,#0000 0 17%,#060b0847 48%,#060b08db 88%),linear-gradient(#060b084d,#060b08b8);position:absolute;inset:0}.finish-screen>:not(.finish-board-backdrop,.finish-glow){z-index:2;position:relative}.finish-screen>.eyebrow{margin-top:0}.finish-emblem{color:#d9b96f;width:68px;height:68px;animation:finish-emblem-in .76s var(--premium-ease) both;background:radial-gradient(circle at 36% 24%,#fff4cf24,#0000 42%),#0c1610c7;border:1px solid #e0c47e57;border-radius:50%;flex:none;place-items:center;margin-top:auto;margin-bottom:18px;display:grid;box-shadow:0 0 0 7px #e0c47e06,0 0 0 8px #e0c47e14,0 16px 38px #00000057,inset 0 1px #ffffff0f}.finish-emblem.is-rival{color:#a9c0a1;border-color:#9fb8954d}.finish-ribbon{color:#ccb98f;letter-spacing:.09em;text-transform:uppercase;background:#0a120d94;border:1px solid #e0c47e29;border-radius:999px;align-items:center;gap:7px;min-height:30px;margin:-10px 0 18px;padding:6px 11px;font-size:.6rem;font-weight:680;display:inline-flex}.is-finished .finish-stats div{background:radial-gradient(circle at 50% -30%,#e0c47e1c,#0000 56%),linear-gradient(150deg,#26392ce8,#0b140ff0)}@keyframes round-moment-scrim{0%{opacity:0}18%,72%{opacity:1}to{opacity:0}}@keyframes round-moment-seal{0%{opacity:0;transform:scale(.84)}22%{opacity:1;transform:scale(1.015)}72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.045)}}@keyframes round-moment-line{0%,18%{opacity:0;transform:scaleX(.2)}38%,76%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1.2)}}@keyframes round-moment-minor{0%{opacity:0;transform:translateY(-7px)scale(.97)}24%,68%{opacity:1;transform:none}to{opacity:0;transform:translateY(-3px)scale(.985)}}@keyframes finish-emblem-in{0%{opacity:0;transform:translateY(10px)scale(.82)rotate(-7deg)}to{opacity:1;transform:none}}.app-shell.is-welcome,.app-shell.is-lobby{color:#f0e6d3;background:#08110c}.is-welcome .sun-wash,.is-lobby .sun-wash{display:none}.is-lobby .lobby-screen{isolation:isolate;background:#08110c}.is-lobby .lobby-screen:before{z-index:-2;content:"";filter:brightness(.68)saturate(.82);background-image:url(/projects/bananagrams/table-scene.jpg);background-position:74%;background-size:cover;position:absolute;inset:0;transform:scale(1.018)}.is-lobby .lobby-screen:after{z-index:-1;content:"";pointer-events:none;background:linear-gradient(90deg,#050b07f7 0%,#050b07db 42%,#050b0778 72%,#050b0794 100%),linear-gradient(#050b07ad,#0000 30% 70%,#050b07c2);position:absolute;inset:0}.is-lobby .wordmark,.is-lobby .text-button{color:#f1e7d4;text-shadow:0 2px 16px #0000007a}.is-lobby .round-button{color:#d9c69e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a140eb8;border-color:#e1c58b3d;box-shadow:inset 0 1px #ffffff0f,0 10px 26px #00000047}.is-lobby .eyebrow{color:#c9b98f}.is-lobby .lobby-card>p:not(.eyebrow){color:#c8bea9}.is-lobby .lobby-card{-webkit-backdrop-filter:blur(20px)saturate(.9);backdrop-filter:blur(20px)saturate(.9);background:radial-gradient(circle at 86% -30%,#d7b06921,#0000 52%),linear-gradient(150deg,#17251bed,#070f0ae6);border-color:#e1c58b40;box-shadow:0 34px 90px #0000007a,inset 0 1px #ffffff0e,inset 0 0 0 1px #070d0961}.is-lobby .lobby-topbar{background:linear-gradient(#050b07db,#050b0700)}.is-lobby .player-seat>span{background:linear-gradient(145deg,#d9b86f,#806132);box-shadow:0 9px 22px #00000052,inset 0 1px #fff3}.is-lobby .room-code span{color:#20392d;text-shadow:0 1px #ffffff80}.is-lobby .player-seat.is-waiting>span{color:#b9aa8b;background:#09120c75;border-color:#e1c58b4d}.is-lobby .player-seat small{color:#a9a18f}.first-move-cue{z-index:6;color:#ded1b8;pointer-events:none;text-align:center;min-width:190px;animation:first-move-cue-in .52s var(--premium-ease) .92s both;background:#08120c94;border:1px solid #e1c58b29;border-radius:15px;justify-items:center;padding:10px 14px 11px;display:grid;position:absolute;top:39%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 38px #0000003d,inset 0 1px #ffffff0b}.first-move-cue>span{color:#d0ad69;border:1px solid #e1c58b2e;border-radius:50%;place-items:center;width:30px;height:30px;margin-bottom:5px;display:grid}.first-move-cue strong{font-family:var(--serif);letter-spacing:-.01em;font-size:.95rem;font-weight:520}.first-move-cue small{color:#a9a08e;letter-spacing:.035em;margin-top:2px;font-size:.61rem;font-weight:620}.is-playing .board-action-bar .peel-button.is-ready{position:relative;overflow:hidden}.is-playing .board-action-bar .peel-button.is-ready:after{content:"";pointer-events:none;width:26%;animation:peel-ready-glint .78s var(--premium-ease) 90ms both;background:linear-gradient(90deg,#0000,#fff9d585,#0000);position:absolute;top:-45%;bottom:-45%;left:-32%;transform:rotate(15deg)}.is-playing .board-action-bar .command-copy>small{font-size:.63rem}@keyframes first-move-cue-in{0%{opacity:0;transform:translate(-50%,calc(9px - 50%))scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes peel-ready-glint{0%{opacity:0;transform:translate(0)rotate(15deg)}28%{opacity:1}to{opacity:0;transform:translate(560%)rotate(15deg)}}@media (max-width:360px){.is-playing .loose-readout small{display:none}.is-playing .board-action-bar{grid-template-columns:48px 44px minmax(88px,.92fr) minmax(105px,1.08fr);gap:3px;padding-inline:5px}.is-playing .loose-readout{gap:4px;padding-left:3px}.is-playing .board-action-bar .dump-button,.is-playing .board-action-bar .peel-button{grid-template-columns:16px minmax(0,1fr);gap:4px;padding-inline:5px}.is-playing .board-action-bar .dump-button>.game-icon,.is-playing .board-action-bar .peel-button>.game-icon{width:16px;height:16px}.is-playing .board-action-bar .command-copy>small{font-size:.53rem}}@media (max-height:700px) and (max-width:760px){.finish-emblem{width:54px;height:54px;margin-bottom:11px}.finish-screen>p:not(.eyebrow){margin-bottom:15px}.finish-ribbon{min-height:27px;margin:-6px 0 12px}}@media (orientation:landscape) and (max-height:560px){.first-move-cue{min-width:176px;padding-block:8px;top:18%}.first-move-cue>span{display:none}.is-playing .board-action-bar{grid-template-rows:42px 44px minmax(48px,.86fr) minmax(54px,1.14fr);grid-template-columns:minmax(0,1fr)}.is-playing .loose-readout{justify-content:center;min-height:42px;padding-left:0}.is-playing .board-action-bar .shuffle-button{width:100%}.is-playing .board-action-bar .dump-button,.is-playing .board-action-bar .peel-button{grid-template-columns:19px minmax(0,1fr);column-gap:6px;padding-inline:7px}.finish-emblem{display:none}.finish-ribbon{grid-area:4/1;justify-self:start;margin:0}}.app-shell.is-finished{overflow:hidden}.is-finished .game-screen.is-result{width:100%;max-width:none;height:100%;margin:0;display:block}.round-play-ui[hidden]{display:none!important}.is-finished .board-stage.is-result-stage{width:100%;height:100%;min-height:0;box-shadow:none;background:#07100a;border:0;border-radius:0;margin:0;position:absolute;inset:0}.is-finished .board-stage.is-result-stage:before,.is-finished .board-stage.is-result-stage:after{display:none}.round-result.finish-screen{z-index:12;width:100%;height:100%;min-height:0;padding:max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:var(--play-text);text-align:center;touch-action:manipulation;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:stretch;place-items:center;column-gap:0;display:grid;position:absolute;inset:0;overflow:hidden}.is-finished .round-result.finish-screen:before,.is-finished .round-result.finish-screen:after{display:none}.round-result-vignette{z-index:0;opacity:0;pointer-events:none;background:radial-gradient(at 50% 46%,#060c082e 0 17%,#060c089e 53%,#030704eb 100%),linear-gradient(#0409063d,#040906a8);animation:1.6s both result-vignette-in;position:absolute;inset:0}.round-result.is-rival .round-result-vignette{background:radial-gradient(at 50% 46%,#070d0933 0 16%,#060c08a8 52%,#030704ed 100%),linear-gradient(#0c120d47,#040805b3)}.round-result-sweep.finish-glow{z-index:1;opacity:0;filter:blur(44px);mix-blend-mode:screen;pointer-events:none;width:130vw;height:19vh;animation:result-light-sweep 1.7s var(--premium-ease) .48s both;background:linear-gradient(90deg,#0000,#e0c47e33,#0000);top:23%}.round-result.is-rival .round-result-sweep{background:linear-gradient(90deg,#0000,#97b59726,#0000)}.round-result-content{z-index:2;flex-direction:column;justify-content:center;align-items:center;width:min(100%,540px);max-height:100%;display:flex;position:relative}.round-result-content>.finish-emblem{opacity:0;width:64px;height:64px;animation:result-emblem-in .68s var(--premium-ease) .61s both;margin:0 0 15px}.round-result-content>.finish-emblem.is-rival{color:#abc2a6;border-color:#9fb89552}.round-result-content>.eyebrow{color:#c8baa1;opacity:0;animation:result-copy-in .56s var(--premium-ease) .69s both;margin:0 0 8px}.is-finished .round-result-content>h2{color:#f5e8cf;max-width:620px;font-family:var(--serif);letter-spacing:-.058em;opacity:0;text-wrap:balance;text-shadow:0 14px 38px #00000085;animation:result-copy-in .62s var(--premium-ease) .735s both;margin:0;font-size:clamp(2.5rem,10.2vw,5.4rem);font-weight:430;line-height:.91}.round-result-description{color:#c0b49f;opacity:0;text-wrap:balance;max-width:450px;animation:result-copy-in .56s var(--premium-ease) .815s both;margin:14px 0 18px;font-size:.88rem;line-height:1.5}.round-result-ribbon.finish-ribbon{opacity:0;min-height:29px;animation:result-copy-in .52s var(--premium-ease) .9s both;justify-self:auto;margin:0 0 17px}.round-result-stats.finish-stats{opacity:0;width:min(100%,440px);animation:result-detail-in .6s var(--premium-ease) 1.06s both;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 17px;display:grid}.is-finished .round-result-stats>.round-result-stat{text-align:left;background:radial-gradient(circle at 22% -24%,#e0c47e1b,#0000 52%),linear-gradient(148deg,#223528e0,#09110ced);border:1px solid #e0c47e2b;border-radius:17px;grid-template-rows:auto auto auto;justify-items:start;min-width:0;padding:13px 14px 12px;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 32px #00000047,inset 0 1px #fff8e10d}.is-finished .round-result-stats>.round-result-stat.is-winner{background:radial-gradient(circle at 20% -20%,#e1be6c2b,#0000 56%),linear-gradient(148deg,#2b3e2df0,#0b140ef2);border-color:#e0c47e52}.is-finished .round-result-stat .round-result-stat-heading{width:100%;min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;align-items:center;gap:6px;padding:0;display:flex}.round-result-stat-heading i{color:#ddc89d;background:#e0c47e0e;border:1px solid #e0c47e33;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.57rem;font-style:normal;font-weight:750;display:grid}.round-result-stat-heading>span{color:#d4c6ab;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.65rem;font-weight:720;overflow:hidden}.round-result-presence{color:#95af95;letter-spacing:.02em;white-space:nowrap;text-transform:none;margin-left:auto;font-size:.48rem;font-weight:680}.round-result-presence.is-away{color:#a59b89}.round-result-stat>strong{color:#f2ddb6;font-family:var(--serif);margin:7px 0 0;font-size:1.75rem;font-weight:520;line-height:.94}.round-result-stat>.round-result-stat-meta{color:#8f9d8f;letter-spacing:.09em;text-transform:uppercase;margin-top:3px;font-size:.52rem;font-weight:680}.round-result-connection{margin:-6px 0 10px;font-size:.6rem}.round-result-actions{opacity:0;width:min(100%,440px);animation:result-detail-in .6s var(--premium-ease) 1.16s both;flex-direction:column;align-items:center;display:flex}.round-result-actions>.primary-button{border-color:#ffe198b3;width:100%;min-height:52px;box-shadow:inset 0 1px #fffce0ad,0 4px #765022,0 15px 30px #00000057}.round-result-primary-hint{color:#9e9583;letter-spacing:.025em;margin-top:8px;font-size:.56rem;font-weight:620}.round-result-secondary{color:#beb29b;margin-top:9px}.round-result.is-reduced-motion .round-result-vignette,.round-result.is-reduced-motion .round-result-sweep,.round-result.is-reduced-motion .round-result-content>*,.round-result.is-reduced-motion .round-result-stats,.round-result.is-reduced-motion .round-result-actions{opacity:1;animation:none}@keyframes result-vignette-in{0%,38%{opacity:0}68%,to{opacity:1}}@keyframes result-light-sweep{0%{opacity:0;transform:translate(-18%)rotate(-11deg)}30%{opacity:.7}to{opacity:0;transform:translate(18%)rotate(-11deg)}}@keyframes result-emblem-in{0%{opacity:0;transform:translateY(9px)scale(.83)rotate(-6deg)}to{opacity:1;transform:none}}@keyframes result-copy-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes result-detail-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (max-height:720px) and (max-width:760px){.round-result.finish-screen{padding-block:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-bottom))}.round-result-content>.finish-emblem{width:50px;height:50px;margin-bottom:9px}.round-result-content>.eyebrow{margin-bottom:5px}.is-finished .round-result-content>h2{font-size:clamp(2.2rem,9.4vw,3.8rem)}.round-result-description{margin:9px 0 11px;font-size:.8rem}.round-result-ribbon.finish-ribbon{min-height:26px;margin-bottom:11px}.round-result-stats.finish-stats{margin-bottom:11px}.is-finished .round-result-stats>.round-result-stat{padding:10px 11px 9px}.round-result-actions>.primary-button{min-height:48px}}@media (orientation:landscape) and (max-height:560px){.round-result.finish-screen{padding:max(10px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));text-align:left;display:grid}.round-result-content{grid-template:"eyebrow stats""title stats""description actions""ribbon actions"1fr/minmax(0,.94fr) minmax(280px,1.06fr);align-items:start;column-gap:clamp(24px,5vw,58px);width:min(100%,850px);display:grid}.round-result-content>.finish-emblem{display:none}.round-result-content>.eyebrow{grid-area:eyebrow;align-self:end;margin-bottom:6px}.is-finished .round-result-content>h2{grid-area:title;font-size:clamp(2.25rem,5.7vw,3.65rem)}.round-result-description{grid-area:description;margin:10px 0 12px;font-size:.79rem}.round-result-ribbon.finish-ribbon{grid-area:ribbon;justify-self:start;margin:0}.round-result-stats.finish-stats{grid-area:stats;align-self:end;width:100%;margin:0 0 10px}.round-result-actions{grid-area:actions;align-self:start;width:100%}.round-result-actions>.primary-button{min-height:46px}.round-result-primary-hint,.round-result-secondary{margin-top:5px}}.is-lobby .lobby-card{width:min(94vw,640px)}.lobby-settings-summary{background:#070f0a61;border:1px solid #e1c58b24;border-radius:15px;justify-content:center;align-items:center;gap:15px;width:min(100%,390px);min-height:52px;margin:0 auto 13px;padding:8px 14px;display:flex;box-shadow:inset 0 1px #ffffff09}.lobby-settings-summary>span{text-align:left;gap:2px;min-width:0;display:grid}.lobby-settings-summary small{color:#99917f;letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:720}.lobby-settings-summary strong{color:#e8dbc1;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.lobby-settings-summary>i{background:linear-gradient(#0000,#e1c58b3d,#0000);flex:none;width:1px;height:28px}.lobby-actions{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:8px;width:min(100%,430px);margin:0 auto;display:grid}.lobby-actions>button{min-height:49px}.lobby-actions .secondary-button{color:#d8cdb8;background:#ffffff0d;border-color:#e1c58b2b}.lobby-host-note{color:#b0a894;grid-column:2;align-self:center;margin:0;padding:3px 6px;font-size:.75rem;line-height:1.25}.waiting-players.is-multiplayer{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:14px 6px;margin-top:22px;display:flex}.waiting-players.is-multiplayer .player-seat{flex:0 calc(33.333% - 6px);min-width:0}.waiting-players.is-multiplayer .player-seat>span{width:46px;height:46px}.waiting-players.is-multiplayer .player-seat strong{width:100%;max-width:118px}.is-playing .rivals-chip{background:#0a120d7a;border:1px solid #e0c47e24;border-radius:999px;align-items:center;gap:8px;width:100%;min-width:0;max-width:222px;padding:5px 9px 5px 6px;display:flex;overflow:hidden;box-shadow:0 7px 20px #00000029,inset 0 1px #ffffff0b}.rival-avatars{flex:0 auto;align-items:center;min-width:28px;padding-right:3px;display:flex}.rival-avatars>span{color:#f4ead5;background:linear-gradient(145deg,#698e83,#355a50);border:1px solid #e7cd9657;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid;position:relative;box-shadow:0 5px 12px #0000004d,inset 0 1px #ffffff2b}.rival-avatars>span+span{margin-left:-7px}.rival-avatars>span.is-away{filter:saturate(.35);opacity:.64}.rival-avatars>span.is-eliminated{color:#c6bba4;background:linear-gradient(145deg,#625d51,#39372f)}.rival-avatars i{font-size:.62rem;font-style:normal;font-weight:820}.rival-avatars b{color:#dfc999;background:#17241b;border:1px solid #e0c47e33;border-radius:999px;place-items:center;min-width:17px;height:17px;padding-inline:3px;font-size:.55rem;line-height:1;display:grid;position:absolute;bottom:-4px;right:-3px;box-shadow:0 2px 5px #00000059}.rivals-copy{flex-direction:column;min-width:0;line-height:1.08;display:flex}.rivals-copy small{color:var(--play-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.55rem;font-weight:760}.rivals-copy strong{max-width:82px;color:var(--play-text);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:720;overflow:hidden}.spectator-cue{z-index:8;color:#e9dcc2;pointer-events:none;text-align:center;background:radial-gradient(circle at 50% -30%,#dab46b1a,#0000 62%),#070e0adb;border:1px solid #e1c58b33;border-radius:20px;justify-items:center;width:min(100% - 42px,320px);padding:18px 20px 17px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 58px #0006,inset 0 1px #ffffff0d}.spectator-cue>span{color:#c8a96c;border:1px solid #e1c58b30;border-radius:50%;place-items:center;width:34px;height:34px;margin-bottom:8px;display:grid}.spectator-cue strong{font-family:var(--serif);font-size:1.25rem;font-weight:520}.spectator-cue small{color:#aaa18e;max-width:245px;margin-top:4px;font-size:.68rem;line-height:1.42}.round-result-stats.is-many{width:min(100%,520px)}.round-result.finish-screen{overscroll-behavior-y:contain;overflow:hidden auto}.round-result-content{min-height:100%;max-height:none}.round-result-secondary{justify-content:center;align-items:center;min-height:44px;padding:10px 12px;display:inline-flex}@media (max-width:520px){.round-result-stats.is-many{max-height:none;overflow:visible}}@media (max-width:360px){.is-playing .rivals-chip{gap:5px;padding-right:6px}.rival-avatars>span{flex-basis:27px;width:27px;height:27px}.rival-avatars>span+span{margin-left:-8px}.rivals-copy strong{max-width:48px;font-size:.69rem}}@media (max-height:700px) and (max-width:760px){.is-lobby .lobby-card{margin-block:8px;padding:19px 18px}.is-lobby .lobby-card h2{font-size:clamp(1.9rem,8vw,2.45rem)}.is-lobby .room-code{margin-block:13px}.lobby-settings-summary{min-height:46px;margin-bottom:9px;padding-block:6px}.lobby-actions>button{min-height:46px}.waiting-players.is-multiplayer{gap:10px 5px;margin-top:14px}.waiting-players.is-multiplayer .player-seat>span{width:40px;height:40px}}@media (orientation:landscape) and (max-height:560px){.is-lobby .lobby-card{grid-template-rows:auto auto auto auto auto 1fr;grid-template-columns:minmax(0,.94fr) minmax(300px,1.06fr);column-gap:20px;width:min(100% - 24px,820px)}.is-lobby .lobby-card>.lobby-settings-summary{grid-area:5/1;justify-content:flex-start;justify-self:start;min-height:43px;margin:7px 0;padding:5px 10px}.is-lobby .lobby-card>.lobby-actions{grid-area:6/1;place-self:end start;margin:0}.is-lobby .lobby-card>.waiting-players.is-multiplayer{grid-area:1/2/7;align-self:center;gap:10px 4px;margin:0}.is-lobby .waiting-players.is-multiplayer .player-seat{flex-basis:calc(33.333% - 5px)}.is-lobby .waiting-players.is-multiplayer .player-seat>span{width:38px;height:38px}.is-playing .rivals-chip{max-width:260px}.round-result-stats.is-many{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-height:none;overflow:visible}.is-finished .round-result-stats.is-many>.round-result-stat{border-radius:12px;padding:7px 8px 6px}.round-result-stats.is-many .round-result-stat-heading i{width:18px;height:18px}.round-result-stats.is-many .round-result-stat>strong{margin-top:4px;font-size:1.3rem}}@media (prefers-reduced-motion:reduce){.rack-drag-preview{transition:none!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0307059e}.rules-modal{color:#d6ccb8;-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(#111c15,#0a120d);border:1px solid #e0c47e38;border-radius:22px;box-shadow:0 40px 100px #0009,inset 0 1px #ffffff0a}.rules-modal .eyebrow{color:#cbb98c}.rules-modal h2,.rules-modal li strong{color:#f3ead8}.rules-modal li>span{color:#173a2a;background:linear-gradient(160deg,#fbf2de,#e8d3ab);border-radius:7px;font-weight:500;box-shadow:0 6px 12px #00000059,inset 0 1px #ffffffd9,inset 0 -2px #78563240}.rules-modal li p{color:#b3a993;font-size:.82rem}.rules-modal .modal-close{color:#d9c69e;background:#ffffff0a;border:1px solid #e0c47e3d}.rules-modal .lexicon-policy{background:#ffffff08;border-color:#e0c47e29}.rules-modal .lexicon-policy strong{color:#e4d3ae}.rules-modal .lexicon-policy span{color:#a89f8a}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
.landing{--l-bg:#070d09;--l-ink:#f3ead8;--l-text:#d6ccb8;--l-muted:#a89f8a;--l-faint:#837c6c;--l-kicker:#cbb98c;--l-gold:#e2b65a;--l-line:#e0c47e26;--l-line-strong:#e0c47e4d;--l-field:#0000004d;--l-field-line:#f0dfba24;--l-gutter:clamp(20px, 5vw, 72px);--l-tile-ink:#173a2a;background:var(--l-bg);color:var(--l-text);scroll-behavior:smooth;display:block}.landing :focus-visible{outline:2px solid var(--brass-highlight);outline-offset:3px}.landing-hero{isolation:isolate;min-height:100%;padding:max(20px, env(safe-area-inset-top)) var(--l-gutter) clamp(32px, 6vh, 64px);grid-template-rows:auto 1fr;display:grid;position:relative}.landing-scene{z-index:-1;animation:landing-scene-in 1.6s var(--premium-ease) both;background:url(/projects/bananagrams/table-scene.jpg) 72%/cover no-repeat;position:absolute;inset:0}.landing-scene:after{background:linear-gradient(90deg, #070d09f5 0%, #070d09e6 30%, #070d0980 46%, #070d0900 60%), linear-gradient(180deg, #070d0999 0%, transparent 16%, transparent 74%, var(--l-bg) 100%);content:"";position:absolute;inset:0}.landing-home{border-bottom:1px solid var(--l-line);letter-spacing:.02em;margin:0 0 14px;padding-bottom:10px;font-size:.8rem;font-weight:600;position:relative}.landing-home a{color:var(--l-muted);text-decoration:none;transition:color .16s}.landing-home a:hover{color:var(--l-ink)}.landing-nav{justify-content:space-between;align-items:center;gap:16px;display:flex}.landing-mark{color:var(--l-ink);font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.02em;align-items:center;gap:11px;font-size:1.4rem;font-weight:500;text-decoration:none;display:inline-flex}.landing-mark img{filter:drop-shadow(0 5px 10px #00000080);width:34px;height:34px}.landing-nav-links{align-items:center;gap:20px;display:flex}.landing-nav-links a{color:var(--l-muted);letter-spacing:.03em;font-size:.82rem;font-weight:680;text-decoration:none;transition:color .16s}.landing-nav-links a:hover{color:var(--l-ink)}.landing-help{border:1px solid var(--l-line-strong);width:40px;height:40px;color:var(--l-kicker);cursor:pointer;background:#070d098c;border-radius:999px;place-items:center;line-height:0;transition:border-color .16s,color .16s;display:grid}.landing-help:hover{color:var(--l-ink);border-color:#e0c47e99}.landing-column{flex-direction:column;align-self:center;gap:clamp(20px,3.2vh,30px);width:min(100%,540px);padding-top:clamp(16px,3vh,40px);display:flex}.landing-eyebrow,.landing-label{color:var(--l-kicker);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:760}.landing-copy .landing-eyebrow{margin-bottom:16px}.landing-copy h1{color:var(--l-ink);font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.045em;text-shadow:0 4px 30px #0000008c;text-wrap:balance;margin:0;font-size:clamp(3.1rem,5.6vw,5.75rem);font-weight:400;line-height:.92}.landing-copy h1 em{color:var(--l-gold)}.landing-lede{max-width:480px;margin:18px 0 0;font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.6}.landing-seat{border:1px solid var(--l-line);background:linear-gradient(#0f1913eb,#080e0aeb);border-radius:18px;gap:12px;width:min(100%,460px);padding:20px;display:grid;box-shadow:0 30px 70px #00000073,inset 0 1px #ffffff0a}.landing-field{gap:7px;min-width:0;display:grid}.landing-field>span{color:var(--l-muted);font-size:.76rem;font-weight:700}.landing-field input,.landing-field select{border:1px solid var(--l-field-line);background-color:var(--l-field);width:100%;height:46px;color:var(--l-ink);border-radius:11px;outline:none;padding:0 14px;font-size:1rem;transition:border-color .16s,box-shadow .16s;box-shadow:inset 0 2px 6px #00000040}.landing-field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23a89f8a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}.landing-field select option{color:var(--l-ink);background:#0c1510}.landing-field input:focus-visible,.landing-field select:focus-visible{border-color:#e0c47e99;outline:none;box-shadow:0 0 0 3px #e0c47e24,inset 0 2px 6px #00000040}.landing-settings{grid-template-columns:1fr 1fr;gap:10px;display:grid}.landing-hint{color:var(--l-faint);margin:-4px 0 0;font-size:.72rem;line-height:1.4}.landing-primary{color:#1d2a1f;cursor:pointer;width:100%;min-height:50px;transition:transform .16s var(--premium-ease), filter .16s ease, box-shadow .16s ease;background:linear-gradient(#f3cd6b,#dfa73a);border-radius:12px;font-size:.98rem;font-weight:780;box-shadow:0 14px 30px #dfa73a33,inset 0 1px #ffffff8c,inset 0 -2px #784c0a40}.landing-primary:not(:disabled):hover{filter:brightness(1.05);box-shadow:0 18px 36px #dfa73a47,inset 0 1px #ffffff8c,inset 0 -2px #784c0a40}.landing-primary:not(:disabled):active,.landing-secondary:not(:disabled):active{transform:translateY(1px)scale(.995)}.landing-divider{color:var(--l-faint);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:12px;font-size:.66rem;font-weight:720;display:flex}.landing-divider:before,.landing-divider:after{background:var(--l-line);content:"";flex:1;height:1px}.landing-join{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.landing-code{cursor:text;min-width:0;display:block;position:relative}.landing-code input{opacity:0;cursor:text;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.landing-code-slots{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;height:48px;display:grid}.landing-code-slot{border:1px solid var(--l-field-line);background:var(--l-field);color:var(--l-tile-ink);font-family:var(--serif);border-radius:8px;place-items:center;font-size:1.45rem;font-weight:500;transition:border-color .16s,box-shadow .16s,background .16s;display:grid;position:relative;box-shadow:inset 0 2px 6px #00000040}.landing-code-slot.is-filled{text-shadow:0 1px #ffffff8c;animation:landing-tile-drop .26s var(--premium-ease) both;background:linear-gradient(160deg,#fbf2de,#e8d3ab);border-color:#ffffff59;box-shadow:0 6px 12px #00000059,inset 0 1px #ffffffd9,inset 0 -2px #78563238}.landing-code-slot.is-active{border-color:#e0c47eb3;box-shadow:0 0 0 3px #e0c47e24,inset 0 2px 6px #00000040}.landing-code-slot.is-active:not(.is-filled):after{background:var(--brass-highlight);content:"";border-radius:1px;width:2px;height:22px;animation:1.05s step-end infinite landing-caret}.landing-secondary{border:1px solid var(--l-line-strong);min-width:78px;color:var(--l-ink);cursor:pointer;transition:transform .16s var(--premium-ease), background .16s ease, border-color .16s ease;background:#ffffff0a;border-radius:11px;padding:0 18px;font-weight:760}.landing-secondary:not(:disabled):hover{background:#ffffff12;border-color:#e0c47e8c}.landing-invite{gap:12px;display:grid}.landing-aside{width:min(100%,460px);color:var(--l-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;margin:0;font-size:.78rem;display:flex}.landing-aside a,.landing-rules-link{color:#e4d3ae;font-weight:760;text-decoration:none}.landing-aside a b,.landing-rules-link b{transition:transform .16s var(--premium-ease);margin-left:4px;display:inline-block}.landing-aside a:hover b,.landing-rules-link:hover b{transform:translate(3px)}.landing-tiles{gap:4px;display:inline-flex}.landing-tile{aspect-ratio:1;width:clamp(28px,2.3vw,34px);color:var(--l-tile-ink);font-family:var(--serif);text-shadow:0 1px #ffffff8c;background:linear-gradient(160deg,#fbf2de,#e8d3ab);border-radius:6px;place-items:center;font-size:1.15rem;font-weight:500;line-height:1;display:grid;box-shadow:0 6px 12px #00000059,inset 0 1px #ffffffd9,inset 0 -2px #78563240}.landing-tiles.is-code .landing-tile{width:40px;font-size:1.35rem}.landing-steps{padding:clamp(64px, 11vh, 120px) var(--l-gutter) clamp(64px, 10vh, 104px);background:radial-gradient(ellipse 70% 55% at 50% 45%, #214b342e, transparent 70%), var(--l-bg)}.landing-steps-inner{max-width:1200px;margin:0 auto}.landing-steps-head{margin-bottom:clamp(36px,6vh,56px)}.landing-steps-head .landing-eyebrow{margin-bottom:14px}.landing-steps h2{color:var(--l-ink);font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.035em;margin:0;font-size:clamp(2.2rem,4vw,3.4rem);font-weight:400;line-height:1}.landing-steps ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,3vw,44px);margin:0;padding:0;list-style:none;display:grid}.landing-steps li{border-top:1px solid var(--l-line-strong);align-content:start;gap:16px;padding-top:20px;display:grid}.landing-step-number{color:var(--l-faint);font-variant-numeric:tabular-nums;letter-spacing:.16em;font-size:.72rem;font-weight:760}.landing-steps h3{margin:0;line-height:0}.landing-steps li p{max-width:34ch;margin:0;font-size:.98rem;line-height:1.6}.landing-rules-link{cursor:pointer;background:0 0;margin-top:clamp(36px,6vh,52px);padding:0;font-size:.9rem}.landing-footer{padding:28px var(--l-gutter) max(28px, env(safe-area-inset-bottom));border-top:1px solid var(--l-line);background:var(--l-bg);color:var(--l-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:.78rem;display:flex}.landing-footer-mark{color:var(--l-text);font-family:var(--serif);align-items:center;gap:9px;font-size:1.05rem;display:inline-flex}.landing-copy,.landing-seat,.landing-aside{animation:landing-rise .8s var(--premium-ease) both}.landing-copy{animation-delay:80ms}.landing-seat{animation-delay:.2s}.landing-aside{animation-delay:.32s}@keyframes landing-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes landing-scene-in{0%{opacity:0;transform:scale(1.035)}to{opacity:1;transform:none}}@keyframes landing-tile-drop{0%{transform:translateY(-4px)scale(.94)}to{transform:none}}@keyframes landing-caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.landing,.landing *{scroll-behavior:auto;transition:none!important;animation:none!important}}@media (max-width:1179px){.landing-steps ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:859px){.landing-hero{min-height:0;padding-bottom:40px}.landing-scene{background-position:86%;height:min(54vh,440px);bottom:auto}.landing-scene:after{background:linear-gradient(180deg, #070d098c 0%, transparent 20%, transparent 56%, #070d09db 84%, var(--l-bg) 100%)}.landing-column{width:100%;padding-top:min(24vh,250px)}.landing-copy h1{font-size:clamp(2.9rem,13vw,4.4rem)}.landing-lede{margin-top:16px;font-size:.98rem}.landing-seat,.landing-aside{width:min(100%,540px)}}@media (max-width:559px){.landing-nav-links a{display:none}.landing-mark{font-size:1.25rem}.landing-mark img{width:30px;height:30px}.landing-seat{border-radius:16px;padding:18px}.landing-code-slots{gap:5px}.landing-aside{flex-direction:column;align-items:flex-start}.landing-steps ol{grid-template-columns:minmax(0,1fr)}.landing-footer{flex-direction:column;align-items:flex-start}}
