@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{color:#243d35;font-synthesis:none;--green:#174c40;--green-light:#eaf0e8;--muted:#7a8379;--orange:#c96d40;--border:#e5e7dd;--paper:#fafaf6;background:#fafaf6;font-family:DM Sans,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #df9967}button{background:0 0;border:0}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.05em;font-family:Manrope,system-ui,sans-serif}h1{margin-bottom:12px;font-size:42px;font-weight:650;line-height:1.2}h2{font-size:21px;font-weight:650;line-height:1.4}h3{font-size:19px;font-weight:700}p{line-height:1.65}small{font-size:12px}input{color:#243d35;background:#fcfcf9;border:1px solid #dce1d7;border-radius:8px;outline:none;width:100%;padding:12px 14px}input:focus{border-color:#427662;box-shadow:0 0 0 3px #174c4010}label{margin-bottom:8px;font-size:13px;font-weight:600;display:block}hr{border:0;border-top:1px solid var(--border);margin:28px 0}.muted{color:var(--muted)}.service-banner{z-index:20;color:#654e22;text-align:center;background:#fff2d6;border-bottom:1px solid #d9b66e;padding:14px 20px;line-height:1.5;position:relative}.small{font-size:12px}.orange{color:var(--orange)}.eyebrow{letter-spacing:.16em;color:#6c7b6b;align-items:center;gap:8px;margin-bottom:16px;font-size:10px;font-weight:700;display:flex}.button{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:12px 19px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:#24614e}.secondary{background:#fff;border:1px solid #dde3d9}.secondary:hover:not(:disabled){background:#f0f3ec}.compact{min-height:38px;padding:10px 13px;font-size:12px}.full-width{width:100%;margin-top:23px}.full-width>span{background:#ffffff1c;border-radius:4px;margin-left:auto;padding:2px 7px;font-size:11px}.text-button{align-items:center;gap:8px;padding:0;font-size:12px;font-weight:550;line-height:1.7;display:inline-flex}.text-button:hover{color:var(--orange)}.icon-button{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:35px;height:35px;padding:0;display:inline-flex}.icon-button:hover{background:#174c4009}.brand{letter-spacing:-1.2px;color:var(--green);align-items:center;gap:11px;font-family:Manrope,sans-serif;font-size:23px;font-weight:800;display:flex}.brand-dot{color:var(--orange)}.brand-tile{color:#354534;background:#f0dcaf;border:1px solid #d4b98c;border-bottom:3px solid #bba077;border-radius:6px;justify-content:center;align-items:center;width:35px;height:38px;font-size:25px;font-weight:750;display:inline-flex;position:relative;transform:rotate(-8deg);box-shadow:0 2px 4px #253c3510}.brand-tile>span{letter-spacing:0;font-size:9px;position:absolute;bottom:2px;right:4px}.brand-button{text-align:left;padding:0}.avatar{color:#496348;border:2px solid var(--paper);background:#e5eadb;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-family:Manrope,sans-serif;font-size:16px;font-weight:600;display:inline-flex}.avatar-bot{color:#938065;background:#efe9dc}.avatar-small{width:33px;height:33px;font-size:13px}.pill{letter-spacing:.06em;color:#6e7b68;background:#eef1e8;border:1px solid #e4e9dc;border-radius:5px;align-items:center;padding:5px 8px;font-size:9px;font-weight:700;line-height:1.2;display:inline-flex}.test-pill{color:#977244;background:#f6ecdd;border-color:#e9dac4}.field-label{letter-spacing:.12em;color:#7d8779;margin-bottom:11px;font-size:10px;font-weight:650;display:block}.form-field{margin:22px 0}.form-field small{margin-top:7px;display:block}.language-picker{border:0;min-width:0;padding:0}.language-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.language-option{cursor:pointer;margin:0}.language-option-card{color:#65705d;text-align:center;background:#fffdf7;border:1px solid #d9dfd1;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:10px 22px 13px;font-size:12px;font-weight:650;display:flex;position:relative}.language-option-card img{max-width:100%;display:block}.language-option:hover .language-option-card{border-color:#8da477}.language-option input:checked+.language-option-card{color:#34513a;background:#eef3e5;border-color:#6f8c52;box-shadow:inset 0 0 0 1px #6f8c52}.language-option input:focus-visible+.language-option-card{outline-offset:3px;outline:3px solid #315e7c}.language-option-check{background:#fffdf7;border:1px solid #d9dfd1;border-radius:50%;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:10px;right:10px}.language-option input:checked+.language-option-card .language-option-check{color:#fff;background:#6f8c52;border-color:#6f8c52}.language-picker:disabled .language-option{cursor:default;opacity:.65}.game-language-label{color:#657653;margin:4px 0;font-size:11px;font-weight:650;display:inline-block}.tile-letter.digraph-letter{font-size:clamp(8px,38cqw,18px)}.rack-tile>.digraph-letter{letter-spacing:-.04em;font-size:.68em}.username-error{color:#a13f30}.profile-setup{max-width:1000px;min-height:100dvh;margin:auto;padding:24px clamp(16px,4vw,40px)}.profile-setup-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.profile-setup-card{max-width:520px;margin:clamp(24px,6vh,60px) auto}.profile-setup-card h1{margin:0 0 14px;font-size:clamp(26px,5vw,36px);line-height:1.15}.profile-setup-card .button.primary{width:100%}.spin{animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot{height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}.boot>p{font-size:13px}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:20;background:#f3f4ed;border-right:1px solid #e5e8dc;flex-direction:column;width:232px;padding:35px 23px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .brand{font-size:23px}.sidebar nav{gap:6px;margin-top:40px;display:grid}.sidebar nav>button{text-align:left;color:#748071;border-radius:8px;align-items:center;gap:12px;padding:13px 14px;font-size:13px;display:flex}.sidebar nav>button.active{color:var(--green);background:#e4ebdf;font-weight:650}.sidebar nav>button:hover{background:#e9ede3}.nav-count{background:var(--green);color:#fff;border-radius:5px;justify-content:center;align-items:center;min-width:19px;height:19px;margin-left:auto;font-size:10px;display:flex}.nav-count:empty{display:none}.sidebar-bottom{margin-top:auto}.sidebar-bottom>.text-button{color:#75816f;margin:0 11px 24px;font-size:12px}.profile{text-align:left;border-top:1px solid #dfe3d7;align-items:center;gap:9px;width:100%;padding:20px 0 0;display:flex}.profile>span:nth-child(2){flex:1;gap:4px;display:grid;overflow:hidden}.profile strong{font-size:12px}.profile small{color:#8c9386;font-size:10px}.profile>svg{color:#88927f;width:16px}.profile-menu{position:relative}.mobile-header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.mobile-rules-button{width:44px;height:44px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;display:flex}.mobile-rules-button:hover{background:#e9ede3}.profile-trigger{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.profile-trigger:hover{background:#e9ede3}.profile-chevron{transform:rotate(-90deg)}.profile-chevron.open{transform:rotate(90deg)}.profile-options{border:1px solid var(--border);background:var(--paper);z-index:50;border-radius:12px;width:190px;padding:6px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 8px 24px #294b3726}.desktop-profile-menu .profile-options{width:100%;top:auto;bottom:calc(100% + 10px);left:0}.profile-options>button{text-align:left;border-radius:7px;align-items:center;gap:10px;width:100%;padding:12px;font-size:13px;display:flex}.profile-options>button:hover{background:#e9ede3}.profile-menu-name{border-bottom:1px solid var(--border);margin-bottom:4px;padding:10px 12px 12px;font-size:13px;font-weight:600}.profile-menu-name small{color:#8c9386;margin-top:4px;font-size:11px;font-weight:400;display:block}.main-shell{flex:1;min-width:0;margin-left:232px}.topbar{border-bottom:1px solid var(--border);align-items:center;height:81px;padding:0 45px;display:none}.page{max-width:1320px;margin:auto;padding:43px 45px 30px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}.page-heading .eyebrow{margin-bottom:12px}.page-heading h1{margin-bottom:10px}.page-heading p{color:#8c9386;margin:0;font-size:12px}.page-heading>.button{align-self:center}.dashboard-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px;display:flex}.community-counters{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px;padding:16px 0;display:grid}.community-counters>div{text-align:center;flex-direction:column-reverse;justify-content:flex-end;gap:5px;display:flex}.community-counters dt{color:var(--muted);font-size:11px}.community-counters dd{color:var(--green);font-variant-numeric:tabular-nums;margin:0;font-size:23px;font-weight:650}.dashboard-install{display:none}.install-instructions h3{margin:20px 0 8px;font-size:16px}.install-instructions ol{padding-left:22px;font-size:13px;line-height:1.6}.install-instructions li{margin-bottom:8px}.game-stats{color:#8b9385;align-items:center;gap:32px;font-size:11px;display:flex}.game-stats>span{align-items:center;gap:8px;display:flex}.game-stats strong{color:#405c44;font-size:12px;font-weight:650}.dot{background:#94a686;border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.green-dot{background:#6e8c5f}.game-section{margin-top:30px}.section-heading h2{letter-spacing:-.6px;margin:0 0 5px;font-size:21px;font-weight:650}.section-heading h2 span{vertical-align:middle;letter-spacing:0;background:#eef1e8;border:1px solid #e1e6d8;border-radius:5px;margin-left:6px;padding:2px 6px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500;display:inline-block}.section-heading p{color:#959b8f;margin-bottom:19px;font-size:11px}.game-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.game-card{text-align:left;background:#fff;border:1px solid #e4e7dc;border-radius:11px;min-width:0;padding:20px 19px 0;transition:box-shadow .15s,transform .15s}.game-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #294b3710}.your-turn-card{border-color:#becfb1}.card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.avatar-stack{display:flex}.avatar-stack .avatar:not(:first-child){margin-left:-12px}.turn-pill{color:#58764d;background:#edf3e5;border-color:#d8e4cc}.game-card h3{letter-spacing:-.3px;text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;font-size:15px;overflow:hidden}.game-card>p{color:#93998d;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.card-score{align-items:center;gap:17px;margin:19px 0;display:flex}.card-score>span:not(.score-divider):not(.card-arrow){gap:4px;display:grid}.card-score small{color:#9ba28f;letter-spacing:.04em;font-size:8px;font-weight:550}.card-score strong{letter-spacing:-1px;font-family:Manrope,sans-serif;font-size:24px;font-weight:650}.score-divider{color:#c6cbbb;font-size:12px}.card-arrow{color:#789068;background:#f2f5ed;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;display:flex}.card-last{color:#939b89;border-top:1px solid #edf0e6;align-items:center;gap:7px;padding:12px 0;font-size:9px;display:flex}.tiny-dot{background:#b6c1a7;border-radius:50%;width:4px;height:4px}.empty-inline{color:#8a9680;background:#f5f7f0;border:1px dashed #dce3d2;border-radius:9px;align-items:center;gap:10px;padding:20px;font-size:12px;display:flex}.first-game{text-align:center;border:1px solid var(--border);background:#fff;border-radius:12px;margin-top:20px;padding:35px}.first-game-icon{color:#7a8b64;background:#eff2e8;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:14px;display:inline-flex}.first-game h2{margin-bottom:8px;font-size:21px}.first-game p{color:#8b9582;font-size:12px}.mobile-brand,.mobile-nav{display:none}.offline-banner{color:#8d642b;text-align:center;background:#fff0cf;padding:12px 20px;font-size:12px}.toast{z-index:100;color:#fff;background:#223f35;border-radius:10px;align-items:center;gap:15px;min-width:270px;max-width:calc(100vw - 28px);padding:10px 12px 10px 20px;font-size:13px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #172b292b}.toast>span{overflow-wrap:anywhere;min-width:0}.toast .icon-button{flex-shrink:0}.toast .icon-button:hover{background:#ffffff15}.toast-action{color:#fff;flex-shrink:0;padding:8px 0;font-weight:600;text-decoration:underline}.device-reminder{z-index:90;background:var(--paper,#fafaf6);border:1px solid #d9e1d5;border-radius:12px;width:min(390px,100% - 28px);padding:16px;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 28px #172b2926}.device-reminder strong{padding-right:28px;font-size:15px;display:block}.device-reminder p{color:var(--muted);margin:6px 22px 12px 0;font-size:13px;line-height:1.5}.device-reminder-close{position:absolute;top:7px;right:7px}.device-reminder-actions{flex-wrap:wrap;gap:8px;display:flex}.device-reminder .button{min-height:42px;padding:9px 12px;font-size:12px}@media (width<=760px){.device-reminder{right:14px;bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:80;background:#1a302a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid #fff;border-radius:18px;width:540px;max-width:100%;max-height:90dvh;padding:34px;position:relative;overflow:auto;box-shadow:0 30px 100px #193d3430}.modal h2{margin:0 30px 9px 0;font-size:27px;line-height:1.2}.modal>p{font-size:12px}.modal-close{color:#87917d;position:absolute;top:16px;right:15px}.opponent-options{gap:9px;margin:0 0 23px;display:grid}.opponent-options>button{border:1px solid var(--border);text-align:left;background:#fff;border-radius:9px;align-items:center;gap:11px;padding:12px;display:flex}.opponent-options>button.selected{background:#f0f4e9;border-color:#91ab7f}.opponent-options>button>span:nth-child(2){flex:1;gap:5px;display:grid}.opponent-options strong{font-size:12px}.opponent-options small{color:#8d9682;font-size:10px}.selection-check{border:1px solid #d5dec9;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.selected .selection-check{color:#fff;background:#527945;border-color:#527945}.rules p{color:#7b8770;margin:20px 0;font-size:12px;line-height:1.9}.rules strong{color:#405b40}.premium-legend{color:#7b8672;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 28px;font-size:11px;display:grid}.premium-legend>span{align-items:center;gap:8px;display:flex}.premium-legend i{border-radius:4px;justify-content:center;align-items:center;width:27px;height:27px;font-size:9px;font-style:normal;font-weight:650;display:flex}.TW{color:#fff8ec;background:#c97965}.DW{color:#7c6950;background:#e7c3a7}.TL{color:#eef5eb;background:#719791}.DL{color:#58735c;background:#bdd0bf}.welcome{flex-direction:column;max-width:1220px;min-height:100vh;margin:auto;padding:38px 56px 0;display:flex}.welcome-nav{justify-content:space-between;align-items:center;display:flex}.welcome-nav .eyebrow{margin:0;font-size:9px}.welcome-grid{text-align:center;flex:1;width:100%;max-width:600px;margin:auto;padding:32px 0;display:block}.welcome-board{filter:drop-shadow(0 10px 14px #294b3712);width:min(100%,560px);height:auto;margin:0 auto 22px;display:block}.welcome .google-button{width:100%;max-width:355px}.welcome .test-login{width:100%;max-width:355px;margin-left:auto;margin-right:auto}.welcome .test-accounts{justify-content:center}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.welcome-copy{color:#8c9681;margin-bottom:28px;font-size:15px;line-height:1.85}.google-button{gap:14px;min-width:267px;font-size:12px}.google-button>svg:last-child{margin-left:auto}.test-login{border-top:1px solid var(--border);margin-top:29px;padding-top:22px}.test-login>p{color:#939b89;margin:10px 0 12px;font-size:11px}.test-accounts{flex-wrap:wrap;gap:8px;display:flex}.test-accounts>button{background:#fff;border:1px solid #dfe5d5;border-radius:7px;align-items:center;gap:8px;padding:7px 9px 7px 6px;font-size:11px;display:flex}.test-accounts .avatar{width:27px;height:27px;font-size:11px}.test-accounts svg{color:#99a28d}.welcome-footer{border-top:1px solid var(--border);color:#9aa38d;justify-content:space-between;align-items:center;padding:25px 0;font-size:10px;display:flex}.welcome-footer .text-button{font-size:11px}.board-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px;display:flex}.board-heading h1{letter-spacing:-1px;margin:12px 0 0;font-size:28px}.back-link{color:#849178;align-items:center;gap:7px;padding:0;font-size:11px;display:flex}.game-page{padding-top:28px}.game-layout{grid-template-columns:minmax(0,670px) minmax(230px,280px);align-items:start;gap:28px;display:grid}.board-column{min-width:0}.turn-strip{color:#849177;background:#f1f4eb;border:1px solid #e1e6d7;border-radius:8px 8px 0 0;align-items:center;gap:9px;padding:13px 15px;font-size:11px;display:flex}.turn-strip strong{font-weight:550}.turn-strip>span:last-child{white-space:nowrap;margin-left:auto;font-size:10px}.turn-strip.is-waiting{color:#74531f;background:#fff2d9;border-color:#dbc395}.turn-strip.is-waiting strong{font-weight:700}.turn-strip.is-waiting svg{flex-shrink:0}.turn-strip.is-your-turn{color:#557347;background:#e9f0e0;border-color:#d3dfc5}.turn-strip.is-your-turn .dot{background:#7c9b62}.board-viewport{background:#e1e8d5;border:1px solid #ced8c1;border-top:0;border-radius:0 0 7px 7px;overflow:auto}.board-frame{width:100%;padding:20px 10px 10px 24px;position:relative}.column-labels{text-align:center;color:#829373;grid-template-columns:repeat(15,1fr);font-size:8px;font-weight:550;display:grid;position:absolute;top:5px;left:24px;right:10px}.row-labels{color:#829373;grid-template-rows:repeat(15,1fr);justify-content:center;align-items:center;font-size:8px;font-weight:550;display:grid;position:absolute;top:20px;bottom:10px;left:5px}.board{aspect-ratio:1;background:#d1dbc4;border:3px solid #d1dbc4;border-radius:3px;grid-template-columns:repeat(15,minmax(0,1fr));gap:3px;display:grid}.square{aspect-ratio:1;color:#879578;touch-action:manipulation;background:#edf0e5;border-radius:2px;justify-content:center;align-items:center;min-width:0;padding:0;display:flex;position:relative;container-type:inline-size}.square:hover{filter:brightness(.95)}.square.TW{color:#f8e7d9;background:#c77764}.square.DW{color:#947554;background:#e6c5ab}.square.TL{color:#e1eee1;background:#70968f}.square.DL{color:#799575;background:#bed0bd}.premium-text{letter-spacing:-.02em;font-size:clamp(3px,16cqw,7px);font-weight:650;line-height:1.25}.square.has-tile{color:#3f4e36;z-index:1;background:linear-gradient(135deg,#f6e5bd,#e8d0a0);border:1px solid #c4ab7d;border-bottom:3px solid #b49b6d;box-shadow:0 1px 1px #50633d22}.tile-letter{margin-bottom:1px;font-family:Manrope,sans-serif;font-size:clamp(11px,57cqw,25px);font-weight:700;line-height:1}.square small{font-size:clamp(5px,20cqw,9px);font-weight:600;position:absolute;bottom:0;right:2px}.square.draft-tile{background:#dfe9c6;border-color:#8da66c #8da66c #73924f}.square.last-tile:after{content:"";background:#bb7041;border-radius:50%;width:3px;height:3px;position:absolute;top:2px;left:2px}.zoomed .board-frame{width:155%;max-width:none}.board-tools{justify-content:space-between;align-items:center;padding:12px 1px;display:flex}.mini-legend{color:#9aa38c;gap:13px;font-size:8px;display:flex}.mini-legend>span{align-items:center;gap:4px;display:flex}.mini-legend i{border-radius:2px;width:7px;height:7px;display:block}.board-tools .text-button{color:#849178;font-size:10px}.rack-panel{background:#fff;border:1px solid #e1e6d7;border-radius:10px;margin-top:3px;padding:16px 18px 18px}.rack-panel-waiting{border-color:#dbc395}.rack-turn-status{color:#74531f;background:#fff2d9;border-radius:5px;grid-column:1/-1;align-items:center;gap:7px;margin-bottom:9px;padding:7px 9px;font-size:11px;display:flex}.rack-turn-status svg{flex-shrink:0}.rack-panel-waiting .rack{background-color:#f3f1e9}.rack-caption{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.rack-caption .field-label{margin:0;font-size:9px}.rack-caption>span:nth-child(2){color:#9ca48e;text-align:right;flex:1;font-size:10px}.rack-caption>.icon-button{color:#9aa389;width:29px;height:26px}.rack{background:linear-gradient(0deg,#d6b98a 3px,#f2e4cb 3px,#f9f7ef 7px);border-bottom:3px solid #ba9d70;border-radius:5px;justify-content:center;gap:8px;min-height:65px;margin:5px 0 11px;padding:10px 10px 9px;display:flex}.rack-tile{color:#47543b;touch-action:manipulation;background:linear-gradient(135deg,#f7e8c6,#eedab0);border:1px solid #d0b78c;border-bottom:4px solid #b79b6e;border-radius:5px;flex:0 46px;justify-content:center;align-items:center;width:46px;min-width:0;max-width:50px;height:53px;font-family:Manrope,sans-serif;font-size:28px;font-weight:650;transition:transform .12s;display:inline-flex;position:relative;box-shadow:0 2px 3px #594a2420}.rack-tile.selected{outline-offset:2px;outline:2px solid #6f8c52;transform:translateY(-6px)}button.rack-tile:hover:not(:disabled){transform:translateY(-4px)}.rack-tile small{font-family:DM Sans,sans-serif;font-size:10px;position:absolute;bottom:2px;right:5px}.blank-mark{border:1px dashed #b9a176;border-radius:3px;width:15px;height:15px}.rack-slot{flex:0 46px;width:46px;height:53px}.move-preview{color:#9ca58f;text-align:center;justify-content:center;align-items:center;gap:9px;min-height:30px;margin:5px 0 9px;font-size:10px;display:flex}.move-preview strong{color:#526c43;letter-spacing:.06em}.points-chip{color:#6d884e;background:#edf3e3;border:1px solid #d9e4cb;border-radius:4px;padding:3px 7px;font-size:9px;font-weight:600}.preview-error{color:#b16f47}.move-actions{align-items:center;gap:7px;display:flex}.play-word{min-height:39px;margin-left:auto;padding:10px 14px;font-size:12px}.play-word>span{border-left:1px solid #ffffff40;margin-left:2px;padding-left:9px;font-size:11px}.detail-card{background:#fff;border:1px solid #e4e8db;border-radius:11px;padding:20px}.detail-card-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.detail-card-heading h2{letter-spacing:-.3px;margin:0;font-size:15px}.detail-card-heading>span{color:#a0a88f;letter-spacing:.06em;font-size:7px}.scoreboard{margin-top:20px}.player-score{border-top:1px solid #eef0e6;align-items:center;gap:9px;padding:12px 0;display:flex;position:relative}.player-score>span:nth-child(2){flex:1;gap:5px;display:grid}.player-score strong{font-size:11px;font-weight:600}.player-score small{color:#9da58e;font-size:9px}.player-score b{letter-spacing:-1px;font-family:Manrope,sans-serif;font-size:24px;font-weight:600}.player-score .avatar{width:35px;height:35px;font-size:13px}.current-player:before{content:"";background:#88a167;border-radius:0 3px 3px 0;width:3px;position:absolute;top:15px;bottom:15px;left:-21px}.bag-count{color:#9da68e;border-top:1px solid #edf0e3;align-items:center;gap:6px;padding-top:17px;font-size:10px;display:flex}.bag-count strong{color:#677d54;font-size:12px}.bag-icon{color:#a9b096;margin-right:4px;font-size:27px;line-height:18px}.game-detail{gap:18px;display:grid}.last-move .field-label{margin-bottom:15px;font-size:8px}.last-word{letter-spacing:-.5px;justify-content:space-between;align-items:center;font-family:Manrope,sans-serif;font-size:20px;font-weight:600;display:flex}.last-word>span{color:#86a064;letter-spacing:0;background:#edf3e5;border-radius:5px;padding:5px 8px;font-family:DM Sans,sans-serif;font-size:12px}.last-move>p{color:#9da58e;margin:8px 0 18px;font-size:10px}.last-move>.text-button{color:#869779;font-size:10px}.last-move>.text-button>svg:last-child{margin-left:10px}.board-tip{text-align:center;padding:5px 20px 12px}.board-tip>span{color:#b6c0a0;font-size:36px}.board-tip>p{color:#8e9b79;margin:12px 0;font-family:Georgia,serif;font-size:19px;font-style:italic;line-height:1.45}.board-tip>small{letter-spacing:.1em;color:#a9b098;font-size:7px}.resign-button{color:#a6aa9b;justify-content:center;font-size:10px}.move-history{border-top:1px solid var(--border);max-height:300px;margin-top:17px;overflow:auto}.move-history>div{border-bottom:1px solid #f0f1eb;align-items:center;gap:9px;padding:11px 0;font-size:10px;display:flex}.move-history>div>span{color:#b2b8a6;font-size:9px}.move-history p{flex:1;gap:4px;margin:0;line-height:1.3;display:grid}.move-history strong{font-size:10px}.move-history small{color:#97a185;font-size:9px}.move-history b{color:#7c9563;font-size:10px;font-weight:500}.invitation-panel{border:1px solid var(--border);text-align:center;background:#fff;border-radius:11px;margin-top:5px;padding:28px}.invitation-panel>svg{color:#9caa83}.invitation-panel h2{margin:15px 0 8px;font-size:20px}.invitation-panel p{color:#98a087;font-size:12px}.inline-actions{justify-content:center;align-items:center;gap:9px;margin-top:25px;display:flex}.pass-warning{color:#74531f;background:#fff2d9;border:1px solid #dbc395;border-radius:8px;margin-top:18px;padding:14px;font-size:13px;line-height:1.55}.pass-warning strong{display:block}.pass-warning p{margin:9px 0 0}.pass-actions{flex-wrap:wrap}.alphabet{grid-template-columns:repeat(7,1fr);gap:8px;margin-top:25px;display:grid}.alphabet button{background:#f1dfb9;border:1px solid #d9c197;border-bottom:3px solid #c5ad80;border-radius:5px;padding:10px 0;font-size:23px;font-weight:600}.exchange-rack{justify-content:center;gap:9px;margin:28px 0;display:flex}.empty-page{color:#96a284;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:65vh;display:flex}.friends-grid,.settings-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.friends-grid .detail-card,.settings-grid .detail-card{padding:27px}.friends-grid h2,.settings-grid h2{margin-bottom:10px;font-size:19px}.friends-grid p,.settings-grid p{font-size:12px}.input-action{gap:9px;display:flex}.own-username{background:#eff3e9;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;padding:10px 12px;display:flex}.own-username>span{gap:4px;min-width:0;display:grid}.own-username small{color:var(--muted);font-size:11px}.own-username strong{color:var(--green);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:14px}.own-username .icon-button{flex-shrink:0;width:44px;height:44px}.input-action input{min-width:0}.local-hint{color:#a18c6b;background:#fbf5e9;border-radius:6px;padding:12px;margin:17px 0 0!important;font-size:11px!important}.invitation-share-actions,.invitation-actions{flex-wrap:wrap;gap:9px;margin-top:16px;display:flex}.invitation-actions{margin-bottom:16px}.copy-link{gap:5px;margin-top:15px;display:flex}.copy-link input{font-size:10px}.friend-section{margin-top:33px}.friend-section h2{font-size:20px}.count-badge{letter-spacing:0;border:1px solid var(--border);vertical-align:middle;color:#8f9b7c;border-radius:6px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:7px;font-family:DM Sans,sans-serif;font-size:10px;display:inline-flex}.friend-row{border:1px solid var(--border);background:#fff;border-radius:9px;align-items:center;gap:12px;margin-bottom:10px;padding:16px;display:flex}.friend-row>span:nth-child(2){flex:1;gap:5px;display:grid}.friend-row strong{font-size:13px}.friend-row small{color:#9ba38c;font-size:11px}.friend-row .pill{font-size:8px}.friend-row>.text-button{color:#9da38f;font-size:10px}.activity-list{gap:12px;display:grid}.activity-item{border:1px solid var(--border);text-align:left;background:#fff;border-radius:10px;align-items:center;gap:16px;padding:21px;display:flex}.activity-item.unread{background:#fbfdf7;border-color:#c4d5b1}.activity-icon{color:#859a6a;background:#edf2e5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:43px;height:43px;display:flex}.activity-item>span:nth-child(2){flex:1}.activity-item strong{font-size:13px;font-weight:600}.activity-item p{color:#8e9a80;margin:6px 0;font-size:12px}.activity-item small{color:#b0b8a2;font-size:10px}.activity-item>svg{color:#a8b599}.settings-icon{color:#869b71;margin:0 0 16px;display:block}.local-settings{background:#fbf8f1}.local-settings h2{margin-top:15px}.signout{margin-top:25px}.settings-grid .small{font-size:11px}.signout{color:#9a876c}.settings-page .form-field:first-child{margin-top:17px}@media (width>=1600px){.page{padding-left:65px;padding-right:65px}.topbar{padding:0 65px}.game-layout{grid-template-columns:minmax(0,720px) 280px}}@media (width<=1200px){.sidebar{width:210px;padding-left:20px;padding-right:20px}.main-shell{margin-left:210px}.topbar{padding:0 28px}.page{padding:32px 28px}.game-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:20px}.game-page{padding:27px 23px}.game-detail .detail-card{padding:16px}.current-player:before{left:-17px}.rack-panel{padding:13px}.move-actions{gap:5px}.move-actions .compact{padding:9px}.board-tip{padding:4px 12px}.board-tip>p{font-size:17px}.friends-grid,.settings-grid{gap:16px}.input-action{flex-wrap:wrap}.welcome{padding:30px 40px}.welcome-grid{gap:30px}}@media (width<=1000px){.sidebar{width:185px;padding:28px 16px 18px}.sidebar .brand{gap:8px;font-size:20px}.sidebar .brand-tile{width:29px;height:33px;font-size:21px}.main-shell{margin-left:185px}.sidebar nav>button{padding:12px 10px;font-size:12px}.page{padding:30px 23px}.topbar{padding:0 23px}.game-layout{grid-template-columns:minmax(0,1fr)}.game-detail{grid-template-columns:1fr 1fr;gap:16px}.board-tip,.resign-button{grid-column:1/-1}.board-tip{display:none}.resign-button{padding:7px}.game-page{max-width:760px}.game-detail .detail-card{padding:20px}.current-player:before{left:-21px}.premium-text{font-size:clamp(3px,16cqw,7px)}.friends-grid,.settings-grid{grid-template-columns:1fr}.welcome-grid{padding:40px 0}.welcome-nav .eyebrow{display:none}.page-heading h1{font-size:35px}}@media (width<=740px){:is(html:has(.app-shell),body:has(.app-shell)){overscroll-behavior:none;overflow:hidden}.app-shell{top:var(--app-viewport-top,0px);width:100%;height:var(--app-viewport-height,100dvh);min-height:0;padding-top:env(safe-area-inset-top,0px);grid-template-rows:minmax(0,1fr) auto;display:grid;position:absolute;left:0;overflow:hidden}.sidebar{display:none}.main-shell{overscroll-behavior-y:contain;min-height:0;margin-left:0;overflow:auto}.topbar{height:54px;padding:0 14px;display:flex}.mobile-brand{display:block}.mobile-brand .brand{font-size:21px}.mobile-brand .brand-tile{width:30px;height:33px;font-size:22px}.mobile-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:2px 8px calc(2px + env(safe-area-inset-bottom));z-index:30;background:#fbfcf7ed;border-top:1px solid #dfe5d5;justify-content:space-around;display:flex;position:relative}.mobile-nav button{color:#9aa48b;flex:1;justify-content:center;align-items:center;gap:5px;min-height:44px;padding:0 5px;font-size:10px;display:flex}.mobile-nav button svg{flex-shrink:0;width:18px;height:18px}.mobile-nav button.active{color:#42663c}.page{padding:29px 21px 24px}.page-heading{gap:10px;margin-bottom:25px}.page-heading h1{font-size:33px}.page-heading .eyebrow{letter-spacing:.12em;font-size:8px}.page-heading p{max-width:220px;font-size:11px;line-height:1.7}.page-heading>.button{gap:5px;min-height:39px;padding:10px 12px;font-size:11px}.page-heading>.button svg{width:15px}.dashboard-toolbar{gap:12px;padding-bottom:21px}.community-counters{gap:8px;margin-bottom:16px;padding:10px 0 14px}.community-counters dt{font-size:10px}.community-counters dd{font-size:21px}.dashboard-install{width:100%;min-height:44px;margin-top:16px;font-size:12px;display:flex}.dashboard-toolbar>.button{gap:5px;min-height:39px;padding:10px 12px;font-size:11px}.dashboard-toolbar>.button svg{width:15px}.game-stats>span{gap:4px}.game-stats{gap:10px;font-size:10px}.game-stats strong{font-size:11px}.game-section{margin-top:25px}.section-heading h2{font-size:21px}.section-heading p{font-size:10px}.game-cards{gap:12px}.game-card{padding:16px 14px 0}.card-top{gap:3px;margin-bottom:14px}.card-top .avatar{width:32px;height:32px}.card-top .avatar svg{width:18px}.card-top .pill{padding:4px 5px;font-size:7px}.game-card h3{font-size:13px}.game-card>p{font-size:9px}.card-score{gap:11px;margin:16px 0}.card-score strong{font-size:23px}.card-score small{font-size:7px}.card-arrow{width:25px;height:25px}.card-arrow svg{width:15px}.card-last{padding:11px 0;font-size:8px}.first-game{padding:27px 18px}.first-game h2{font-size:20px}.first-game p,.first-game .button{font-size:11px}.toast{width:calc(100vw - 32px);min-width:0;padding-left:15px;font-size:12px;bottom:94px}.modal-backdrop{padding:14px}.modal{border-radius:14px;max-height:88dvh;padding:28px 22px}.modal h2{font-size:25px}.opponent-options small{font-size:9px}.opponent-options>button{padding:11px 10px}.welcome{padding:26px 24px 0}.welcome-nav .brand{font-size:23px}.welcome-grid{max-width:none;padding:23px 0 12px}.welcome-board{width:calc(100% + 32px);max-width:none;margin-bottom:18px;margin-left:-16px}.welcome-grid .eyebrow{font-size:8px}.welcome-copy{font-size:14px}.google-button{width:100%;max-width:355px}.welcome-footer{gap:15px;margin-top:28px;padding:20px 0;font-size:9px}.welcome-footer>span{max-width:180px;line-height:1.7}.welcome-footer .text-button{font-size:9px}.test-login{max-width:355px}.test-accounts{gap:6px}.test-accounts>button{padding:7px;font-size:11px}.welcome .test-accounts>button{flex:1}.welcome .test-accounts svg{margin-left:auto}.welcome>.welcome-grid{flex:1}.game-page{padding:6px 13px 24px}.board-heading,.turn-strip{display:none}.turn-strip.is-waiting{gap:6px;padding:7px 9px;font-size:11px;display:flex}.turn-strip.is-waiting>span:last-child{display:none}.rack-panel-waiting .rack-turn-status{grid-row:1}.rack-panel-waiting .rack,.rack-panel-waiting .rack-caption{grid-row:2}.board-frame{padding:17px 7px 7px 19px}.column-labels{font-size:7px;top:4px;left:19px;right:7px}.row-labels{font-size:7px;top:17px;bottom:7px;left:4px}.board{border-width:2px;gap:2px}.square.has-tile{border-bottom-width:2px}.premium-text{font-size:clamp(3px,17cqw,6px)}.square small{bottom:0;right:1px}.board-tools{display:none}.rack-panel{grid-template-columns:minmax(0,1fr) 29px;column-gap:6px;padding:12px;display:grid}.rack-caption{grid-area:1/2;margin:0}.rack-caption>span,.move-preview.idle{display:none}.move-preview,.move-actions{grid-column:1/-1}.move-actions{flex-wrap:wrap}.rack{grid-area:1/1;gap:6px;margin-top:0;padding:9px 3px 8px}.rack-tile{border-bottom-width:3px;max-width:42px;height:48px;font-size:26px}.rack-tile small{font-size:8px;bottom:2px;right:4px}.rack-slot{max-width:42px;height:48px}.move-actions .compact{gap:5px;min-height:36px;padding:9px;font-size:10px}.move-actions .compact svg{width:14px}.play-word{gap:5px;min-height:36px;padding:9px 11px;font-size:11px}.move-preview{min-height:30px;margin-bottom:9px;font-size:9px}.game-detail{gap:12px;margin:0 3px}.game-detail .detail-card{padding:16px}.current-player:before{left:-17px}.detail-card-heading h2{font-size:13px}.detail-card-heading>span{font-size:6px}.player-score{gap:7px}.player-score .avatar{width:28px;height:28px;font-size:11px}.player-score .avatar svg{width:16px}.player-score strong{font-size:10px}.player-score small{font-size:8px}.player-score b{font-size:22px}.scoreboard{margin-top:14px}.bag-count{font-size:9px}.last-word{font-size:16px}.last-move .field-label{font-size:7px}.last-word>span{padding:4px 5px;font-size:10px}.last-move>p{font-size:9px}.last-move>.text-button{gap:5px;font-size:9px}.last-move>.text-button svg{width:13px}.last-move>.text-button>svg:last-child{margin-left:0}.friends-grid .detail-card,.settings-grid .detail-card{padding:22px}.input-action{flex-wrap:nowrap}.input-action .button{padding:11px}.input-action .button>span{display:none}.friend-row{gap:9px;padding:13px}.friend-row .pill{display:none}.friend-row>.text-button{font-size:9px}.activity-item{gap:12px;padding:16px}.activity-item p{font-size:11px}.settings-page .page-heading p{max-width:none}.alphabet{gap:7px}.alphabet button{font-size:20px}.exchange-rack{gap:7px}.exchange-rack .rack-tile{font-size:23px}.empty-inline{padding:17px;font-size:11px;line-height:1.7}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.disable-push{color:#88967b;margin-top:13px;font-size:10px;display:flex}.draggable-rack-tile,.square.draggable-draft{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;cursor:grab}.drag-source{opacity:.45}.square.drop-target,.square.drop-blocked{outline-offset:-2px;z-index:2;outline:3px solid #426b37;box-shadow:inset 0 0 0 2px #fff}.square.drop-target{background:#c4dba5}.square.drop-blocked{outline-color:#b75e4a}.tile-drag-preview{pointer-events:none;z-index:150;width:46px;height:53px;transition:none;position:fixed;transform:translate(-50%,-50%)rotate(-4deg);box-shadow:0 6px 18px #34432b55}.tile-drag-preview.over-board{border-bottom-width:2px;border-radius:3px;max-width:none;transform:translate(-50%,-50%)}.tile-drag-preview.over-board small{font-size:.32em;bottom:0;right:2px}.tile-drag-preview.blocked{outline:2px solid #b75e4a}.tile-drag-label{z-index:151;pointer-events:none;background:var(--green);color:#fff;white-space:nowrap;border-radius:5px;padding:3px 7px;font-size:11px;font-weight:600;position:fixed;transform:translate(-50%,-100%)}.tile-drag-label.blocked{background:#9f4f3e}.move-review h3{margin:24px 0 12px;font-size:15px}.word-meaning{margin:12px 0;font-size:12px}.word-meaning>strong{letter-spacing:.04em;color:var(--green)}.word-meaning p{margin:6px 0;line-height:1.6}.word-meaning em{color:#859078;margin-right:4px}.word-meaning>small,.review-attribution{color:#859078;font-size:10px}.move-review a{text-decoration:underline}.review-loading{align-items:center;gap:10px;padding:20px 0;font-size:12px;display:flex}.review-loading svg{flex-shrink:0}.review-note{color:#859078;font-size:11px;line-height:1.6}.review-alternative{border:1px solid var(--border);border-radius:10px;margin:12px 0;padding:15px}.review-score{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.review-score>span{white-space:nowrap;color:var(--green);font-weight:600}.review-score small{background:#e9f0e0;border-radius:4px;margin-left:5px;padding:3px 5px}.review-alternative details{color:#859078;margin-top:12px;font-size:11px;line-height:1.7}.review-alternative summary{cursor:pointer}.review-alternative.selected-alternative{border-color:#8fa67b}.review-alternative button[aria-pressed=true]{background:#eaf0e3;border-color:#8fa67b}.review-illustration{margin-top:24px}.review-illustration h3{margin-bottom:8px;font-size:17px}.review-board-preview{background:#e1e8d5;border:1px solid #ced8c1;border-radius:7px}.review-board{border-width:2px;gap:2px}.review-board .square{pointer-events:none;touch-action:auto}.review-board .square.has-tile{border-bottom-width:2px}.review-board .tile-letter{font-size:clamp(5px,57cqw,20px)}.review-board .digraph-letter{font-size:clamp(4px,44cqw,17px)}.review-board .square small{font-size:clamp(3px,20cqw,7px);right:1px}.review-board .square.suggested-tile{outline-offset:-2px;background:#ffe3ab;outline:2px solid #b65f27}.review-premium{font-size:clamp(4px,29cqw,9px)}.review-no-better{background:#e9f0e0;border-radius:8px;padding:15px;font-size:13px}.review-attribution{margin:20px 0;line-height:1.6}.history-review{margin-top:8px;font-size:11px;text-decoration:underline}.rack-drag-over{box-shadow:inset 0 0 0 2px #6f8c52}.rack-insert-before:before,.rack-insert-after:after{content:"";background:#426b37;border-radius:2px;width:3px;position:absolute;top:-3px;bottom:-3px}.rack-insert-before:before{left:-5px}.rack-insert-after:after{right:-5px}.board-waiting .square{cursor:not-allowed}
