:root{--ink:#22231f;--paper:#f4efe5;--red:#c85545;--navy:#20576f;--pink:#d99a95}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button{font:inherit}.app-shell{min-height:100vh;padding:clamp(20px,4vw,52px);background:radial-gradient(circle at 10% 0%,#fffaf0 0,transparent 32%),var(--paper)}.topbar{max-width:1400px;margin:0 auto 30px;display:flex;justify-content:space-between;align-items:end;gap:24px}.eyebrow{margin:0 0 8px;color:#7d5d3d;font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}h1{margin:0;max-width:750px;font-family:Georgia,serif;font-size:clamp(32px,4vw,58px);line-height:1.02;font-weight:700;letter-spacing:-.035em}.intro{margin:12px 0 0;color:#68665f;font-size:16px}.score-card{flex:0 0 180px;padding:18px 22px;border:1px solid #dad0be;border-radius:18px;background:#fffaf1;box-shadow:0 8px 30px #594c3820}.score-card span,.score-card small{display:block;color:#777167;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.score-card strong{display:block;font-family:Georgia,serif;font-size:42px;line-height:1.1}.score-card small{text-transform:none;letter-spacing:0;font-weight:500}.workspace{max-width:1400px;margin:auto;display:grid;grid-template-columns:minmax(540px,850px) minmax(300px,390px);gap:clamp(24px,4vw,50px);align-items:start}.board{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(15,1fr);gap:2px;padding:9px;background:#745b3b;border:5px solid #4d3925;border-radius:7px;box-shadow:0 18px 50px #59452c38}.square{min-width:0;padding:0;border:0;border-radius:2px;display:grid;place-items:center;background:#e7d8b9;color:#69593e;cursor:pointer;position:relative}.square:hover{outline:2px solid #fff;outline-offset:-2px;z-index:2}.premium-label{font-size:clamp(7px,.9vw,12px);font-weight:900;line-height:1}.p-tw{background:var(--red);color:#fff}.p-dw,.p-star{background:var(--pink);color:#fff}.p-tl{background:var(--navy);color:#fff}.p-dl{background:#78aec0;color:#fff}.tile,.bank-tile{position:relative;display:grid;place-items:center;background:linear-gradient(145deg,#f9e5ad,#dfbd74);border:1px solid #bd9147;color:#292218;box-shadow:inset 0 1px #fff8,0 2px 3px #3b2a1838;user-select:none}.tile{width:88%;aspect-ratio:1;border-radius:4px}.tile b,.bank-tile b{font-family:Arial,sans-serif;font-size:clamp(13px,2.1vw,28px);line-height:1}.tile i,.bank-tile i{position:absolute;right:7%;bottom:4%;font-size:clamp(6px,.7vw,10px);font-style:normal;font-weight:800}.has-new{box-shadow:inset 0 0 0 3px #f6ef5d}.has-new .tile{transform:translateY(-1px);box-shadow:inset 0 1px #fff8,0 3px 5px #3b2a1850}.board-help{margin:10px 0 0;color:#777167;font-size:12px;text-align:center}.side-panel{display:flex;flex-direction:column;gap:16px}.panel{padding:20px;border:1px solid #dcd1bf;border-radius:20px;background:#fffaf2;box-shadow:0 10px 35px #594c3817}.panel-heading,.panel-heading>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-heading h2{margin:0;font-size:17px}.step{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#282923;color:#fff;font-size:12px;font-weight:800}.unlimited,.pending{color:#7a6c5a;font-size:13px}.alphabet{margin-top:16px;display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.bank-tile{width:100%;aspect-ratio:1;padding:0;border-radius:5px;cursor:grab}.bank-tile b{font-size:17px}.bank-tile i{font-size:8px}.bank-tile:hover,.bank-tile.selected{outline:3px solid #2f6d82;outline-offset:1px;transform:translateY(-1px)}.word-list{min-height:105px;margin:15px 0;padding:4px 0;border-top:1px solid #e7dece;border-bottom:1px solid #e7dece}.word-row{display:flex;justify-content:space-between;align-items:center;padding:8px 3px;border-bottom:1px dashed #e8decc}.word-row:last-child{border:0}.word-row span{font-weight:800;letter-spacing:.08em}.word-row b{color:#246078}.empty-state{margin:26px 5px;color:#8b857b;font-size:13px;text-align:center}.count-button{width:100%;padding:13px 15px;border:0;border-radius:10px;display:flex;justify-content:space-between;background:#286c63;color:#fff;font-weight:800;cursor:pointer}.count-button:hover{background:#1f584f}.count-button:disabled{background:#b6b1a6;cursor:not-allowed}.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.secondary-actions button{padding:10px 7px;border:1px solid #d8cbb7;border-radius:9px;background:#f7f0e4;color:#575147;font-size:12px;font-weight:700;cursor:pointer}.secondary-actions button:disabled{opacity:.45;cursor:not-allowed}.status{margin:0;padding:0 5px;min-height:34px;color:#6d675e;font-size:12px;line-height:1.45}@media(max-width:1000px){.workspace{grid-template-columns:1fr}.side-panel{display:grid;grid-template-columns:1fr 1fr}.status{grid-column:1/-1}.board{max-width:800px;margin:auto}}@media(max-width:650px){.app-shell{padding:14px}.topbar{align-items:stretch;flex-direction:column}.score-card{flex:auto;display:grid;grid-template-columns:1fr auto;align-items:center}.score-card small{grid-column:1/-1}.workspace{gap:18px}.side-panel{display:flex}.board{gap:1px;padding:5px;border-width:3px}.premium-label{font-size:6px}.tile b{font-size:13px}.tile i{font-size:6px}.alphabet{grid-template-columns:repeat(9,1fr)}.panel{padding:16px}}

/* Keep every board cell at exactly 1/15 of the square board. */
.board {
  grid-template-columns: repeat(15, minmax(0, 1fr));
  grid-template-rows: repeat(15, minmax(0, 1fr));
  overflow: hidden;
}

.square {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.tile {
  width: 82%;
  height: 82%;
  max-width: 82%;
  max-height: 82%;
  aspect-ratio: auto;
  overflow: hidden;
}

.tile b {
  font-size: clamp(11px, 2vw, 26px);
  line-height: 1;
}

.hidden{display:none!important}.game-header{max-width:1400px;margin:0 auto 26px;display:flex;justify-content:space-between;align-items:end;gap:24px}.game-header h1{font-size:clamp(38px,4vw,58px)}.players{display:flex;gap:9px}.player-card{min-width:128px;display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #d9cebb;border-radius:15px;background:#fffaf1;opacity:.65}.player-card.active{outline:3px solid #286c63;opacity:1}.player-card.me{border-color:#2b6d80}.player-card small{display:block;color:#777167;font-size:11px;font-weight:800}.player-card strong{font-family:Georgia,serif;font-size:27px}.online-dot{width:9px;height:9px;border-radius:50%;background:#aaa}.player-card.online .online-dot{background:#42a870;box-shadow:0 0 0 3px #d9eee1}.role-panel{display:flex;align-items:center;justify-content:space-between}.role-panel div{display:flex;flex-direction:column}.role-panel span{color:#786f63;font-size:11px;font-weight:800;text-transform:uppercase}.role-panel strong{font-size:17px}.connection-state{padding:5px 8px;border-radius:99px;background:#e2ddd3}.connection-state.live{background:#d9eee1;color:#236344}.clear-move{width:100%;margin-top:9px;padding:10px;border:1px solid #d8cbb7;border-radius:9px;background:#f7f0e4;color:#575147;font-size:12px;font-weight:800}.clear-move:disabled{opacity:.45}.last-move h3{margin:0 0 6px;font-size:14px}.last-move p{margin:0;color:#6d675e;font-size:12px;line-height:1.5}.key-screen{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#f4efe5}.key-card{width:min(100%,390px);padding:26px;border:1px solid #d9cebb;border-radius:22px;background:#fffaf1;box-shadow:0 18px 55px #59452c2e}.key-card h1{font-size:36px}.key-card p{color:#6d675e;line-height:1.5}.key-card label{display:block;margin:20px 0 14px;font-size:12px;font-weight:800}.key-card input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #cfc3af;border-radius:10px;background:#fff;font-size:17px}.key-card select{display:block;box-sizing:border-box;width:100%;margin-top:6px;padding:12px;border:1px solid #cfc3af;border-radius:10px;background:#fff;font-family:inherit;font-size:17px}.board.read-only .square,.alphabet.disabled .bank-tile{cursor:not-allowed}.board.read-only .square{filter:saturate(.9)}@media(max-width:760px){.game-header{align-items:stretch;flex-direction:column}.players{width:100%}.player-card{flex:1}.workspace{grid-template-columns:1fr}.side-panel{display:flex}.app-shell{padding:14px}}

.main-tabs{max-width:1400px;margin:0 auto 22px;display:flex;gap:4px;padding:4px;border:1px solid #d9cebb;border-radius:13px;background:#e8e1d5}.main-tab{flex:1;padding:10px;border:0;border-radius:9px;background:transparent;color:#6d675e;font-weight:850;cursor:pointer}.main-tab.active{background:#fffaf1;color:#286c63;box-shadow:0 2px 8px #59452c20}.main-view{display:none}.main-view.active{display:grid}.settings-view.active{display:block}.settings-view{max-width:900px;margin:0 auto}.settings-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.settings-heading h2{margin:0;font-family:Georgia,serif;font-size:34px}.settings-heading p:not(.eyebrow){margin:7px 0 0;color:#6d675e}.settings-summary{flex:0 0 120px;padding:13px;border:1px solid #d9cebb;border-radius:14px;background:#fffaf1;text-align:center}.settings-summary span{display:block;color:#777167;font-size:10px;font-weight:800;text-transform:uppercase}.settings-summary strong{font-family:Georgia,serif;font-size:31px}.settings-columns,.setting-row{display:grid;grid-template-columns:minmax(90px,1fr) 120px 120px;gap:10px;align-items:center}.settings-columns{padding:0 14px 7px;color:#777167;font-size:10px;font-weight:900;text-transform:uppercase;text-align:center}.settings-columns span:first-child{text-align:left}.letter-settings{overflow:hidden;border:1px solid #d9cebb;border-radius:15px;background:#fffaf1}.setting-row{padding:8px 14px;border-bottom:1px solid #e5dccd}.setting-row:last-child{border-bottom:0}.setting-letter{display:flex;align-items:center;gap:12px;font-weight:850}.setting-letter .bank-tile{width:40px;flex:0 0 40px}.setting-row input{width:100%;padding:9px 7px;border:1px solid #d2c5b1;border-radius:8px;background:#fff;text-align:center;font-weight:800}.setting-row input:disabled{background:#eee9df;color:#8a847b}.settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.settings-actions .clear-move{margin:0}.settings-actions .count-button{justify-content:center}.settings-actions button:disabled{opacity:.45}.settings-view>.status{text-align:left;margin-top:9px}@media(max-width:560px){.settings-heading{align-items:stretch;flex-direction:column}.settings-summary{width:100%;display:flex;align-items:center;justify-content:space-between}.settings-summary span{font-size:11px}.settings-summary strong{font-size:24px}.settings-columns,.setting-row{grid-template-columns:minmax(80px,1fr) 82px 72px}.setting-row{padding:7px 9px}.settings-actions{grid-template-columns:1fr}.settings-heading h2{font-size:29px}}

#game-view.active{display:block}.start-draw{max-width:900px;margin:0 auto 14px;padding:13px;border:1px solid #d9cebb;border-radius:14px;background:#fffaf1}.draw-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.draw-item{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;background:#f1e8d9;font-size:12px;font-weight:800}.draw-item.starter{outline:3px solid #286c63}.draw-letter{display:grid;width:30px;height:30px;place-items:center;border:1px solid #bd9147;border-radius:4px;background:#e6c57c;font-size:18px}.arena{max-width:1050px;margin:auto;display:grid;grid-template-columns:80px minmax(0,820px) 80px;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;align-items:center;justify-content:center}.arena-board{grid-column:2;grid-row:2}.rack-position{min-height:48px;padding:6px;border:1px solid #cdbfa8;border-radius:10px;background:#e9dfcf}.rack-top{grid-column:2;grid-row:1}.rack-bottom{grid-column:2;grid-row:3}.rack-left{grid-column:1;grid-row:2}.rack-right{grid-column:3;grid-row:2}.rack-title{display:flex;justify-content:space-between;margin-bottom:4px;color:#6d675e;font-size:9px;font-weight:900;text-transform:uppercase}.rack-tiles{display:flex;justify-content:center;gap:3px}.rack-left .rack-tiles,.rack-right .rack-tiles{flex-direction:column;align-items:center}.rack-position.empty{opacity:.35}.rack-position.current{outline:3px solid #286c63}.rack-tile{position:relative;display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border:1px solid #bd9147;border-radius:4px;background:linear-gradient(145deg,#f9e5ad,#dfbd74);color:#292218;font-weight:900;cursor:default}.rack-tile.mine{cursor:grab}.rack-tile i{position:absolute;right:3px;bottom:1px;font-size:7px;font-style:normal}.game-controls{max-width:1050px;margin:16px auto 0;display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.game-controls>.status,.game-controls>.last-move{grid-column:1/-1}.rule-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.rule-settings label{padding:13px;border:1px solid #d9cebb;border-radius:12px;background:#fffaf1;font-size:12px;font-weight:800}.rule-settings input{width:100%;margin-top:7px;padding:9px;border:1px solid #d2c5b1;border-radius:8px;font-weight:800}.rule-settings input:disabled{background:#eee9df}.player-card{min-width:105px}.players{flex-wrap:wrap}.settings-view.locked{opacity:.8}@media(max-width:720px){.arena{grid-template-columns:50px minmax(0,1fr) 50px;gap:4px}.rack-position{padding:3px}.rack-tile{width:29px;height:29px;flex-basis:29px;font-size:12px}.rack-top .rack-tiles,.rack-bottom .rack-tiles{gap:1px}.rack-left .rack-tiles,.rack-right .rack-tiles{gap:1px}.rack-title span:last-child{display:none}.game-controls{grid-template-columns:1fr}.game-controls>.status,.game-controls>.last-move{grid-column:auto}.rule-settings{grid-template-columns:1fr}.player-card{min-width:85px;padding:8px}.players{display:grid;grid-template-columns:1fr 1fr;width:100%}}

.reset-game{width:100%;margin-top:9px;padding:9px;border:1px solid #d5a99f;border-radius:9px;background:#fff4f1;color:#9a4438;font-size:12px;font-weight:800;cursor:pointer}.reset-game:disabled{opacity:.4;cursor:not-allowed}

:root{--header-height:76px;--page-gap:12px;--side-width:clamp(230px,21vw,320px);--side-rack:62px;--tray-height:54px}
html,body{height:100%;overflow:hidden}.app-shell{height:100dvh;min-height:0;padding:10px 14px 12px;display:flex;flex-direction:column;background:radial-gradient(circle at 10% 0%,#fffaf0 0,transparent 32%),var(--paper)}
.game-header{width:100%;max-width:none;height:var(--header-height);min-height:var(--header-height);margin:0 0 var(--page-gap);display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(250px,1fr);align-items:center;gap:18px;border-bottom:1px solid #d9cebb}
.game-identity .eyebrow{margin:0 0 2px;font-size:9px}.game-header h1{overflow:hidden;max-width:none;font-size:clamp(23px,2.4vw,34px);line-height:1;white-space:nowrap;text-overflow:ellipsis;text-transform:none}.turn-message{margin:0;padding:8px 14px;border-radius:99px;background:#e9dfcf;color:#554f45;font-size:13px;font-weight:850;text-align:center;white-space:nowrap}.header-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px}.main-tabs{width:210px;max-width:none;margin:0;padding:3px}.main-tab{padding:7px 12px}.connection-state{flex:0 0 auto}
.main-view{min-height:0;flex:1}#game-view.active{display:block;min-height:0}.game-workspace{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) var(--side-width);gap:var(--page-gap);align-items:stretch}.play-area{min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden}
.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--page-gap) * 2 - var(--tray-height) * 2 - 32px),calc(100vw - var(--side-width) - var(--side-rack) * 2 - var(--page-gap) * 4));width:calc(var(--board-size) + var(--side-rack) * 2 + 12px);height:calc(var(--board-size) + var(--tray-height) * 2 + 12px);max-width:100%;max-height:100%;margin:0;grid-template-columns:var(--side-rack) var(--board-size) var(--side-rack);grid-template-rows:var(--tray-height) var(--board-size) var(--tray-height);gap:6px}
.arena-board,.board{width:var(--board-size);height:var(--board-size)}.board{padding:6px;border-width:4px;gap:1px;box-shadow:0 10px 30px #59452c2b}.rack-position{min-width:0;min-height:0;height:100%;padding:4px;border-radius:8px;overflow:hidden}.rack-title{margin-bottom:2px;font-size:8px}.rack-tiles{gap:2px;height:calc(100% - 12px)}.rack-tile{width:min(34px,calc((var(--board-size) - 26px)/7));height:min(34px,calc((var(--board-size) - 26px)/7));flex-basis:min(34px,calc((var(--board-size) - 26px)/7))}.rack-left .rack-tile,.rack-right .rack-tile{width:min(34px,calc((var(--board-size) - 26px)/7));height:min(34px,calc((var(--board-size) - 26px)/7));flex-basis:min(34px,calc((var(--board-size) - 26px)/7))}
.game-sidebar{min-height:0;display:grid;grid-template-rows:minmax(0,3fr) minmax(0,2fr);gap:10px}.game-sidebar .panel{min-height:0;padding:12px;border-radius:14px;box-shadow:0 5px 18px #594c3812}.score-panel{display:flex;flex-direction:column;overflow:hidden}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;color:#756e64;font-size:10px;font-weight:900;text-transform:uppercase}.sidebar-heading strong{font-size:10px}.players{display:grid;grid-template-columns:1fr 1fr;gap:7px}.player-card{min-width:0;padding:10px;border-radius:10px;opacity:.72}.player-card.active{outline-width:2px}.player-card strong{font-size:24px}.player-card small{font-size:9px}.start-draw{max-width:none;margin:auto 0 0;padding:8px;border:0;border-radius:9px;background:#f1e8d9}.start-draw>p{margin:0 0 6px;color:#756e64;font-size:9px;font-weight:900;text-transform:uppercase}.draw-list{gap:4px}.draw-item{padding:4px 6px;font-size:9px}.draw-letter{width:24px;height:24px;font-size:14px}
.control-panel{display:flex;flex-direction:column;overflow:auto}.control-panel .panel-heading{min-height:22px}.control-panel h2{margin:0;font-size:15px}.control-panel .word-list{min-height:0;max-height:90px;margin:5px 0 8px;overflow:auto}.control-panel .empty-state{margin:10px 3px;font-size:11px}.control-panel .word-row{padding:5px 2px;font-size:12px}.control-panel .count-button{padding:10px 12px}.control-panel .clear-move,.control-panel .reset-game{margin-top:6px;padding:7px}.control-panel .status{min-height:0;margin-top:5px;padding:0;font-size:9px;text-align:center}
.settings-view.active{height:100%;overflow:auto}.settings-view{padding-bottom:20px}
@media(max-width:800px){:root{--header-height:92px;--side-width:180px;--side-rack:42px;--tray-height:43px}.app-shell{padding:7px}.game-header{grid-template-columns:1fr auto;height:var(--header-height);min-height:var(--header-height);gap:5px 8px}.turn-message{grid-row:2;grid-column:1/-1;padding:5px;font-size:11px}.header-actions{gap:4px}.connection-state{display:none}.main-tabs{width:170px}.main-tab{padding:6px}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 28px),calc(100vw - var(--side-width) - var(--side-rack) * 2 - 32px));gap:3px}.board{padding:3px;border-width:3px}.rack-position{padding:2px}.rack-title{font-size:6px}.rack-tile,.rack-left .rack-tile,.rack-right .rack-tile{width:min(25px,calc((var(--board-size) - 16px)/7));height:min(25px,calc((var(--board-size) - 16px)/7));flex-basis:min(25px,calc((var(--board-size) - 16px)/7))}.game-sidebar{gap:5px}.game-sidebar .panel{padding:7px}.players{grid-template-columns:1fr;gap:3px}.player-card{padding:5px}.player-card strong{font-size:17px}.online-dot{width:6px;height:6px}.start-draw{display:none}.control-panel .word-list{display:none}}
@media(max-width:560px) and (orientation:portrait){html,body{overflow:auto}.app-shell{height:auto;min-height:100dvh}.game-workspace{display:flex;flex-direction:column}.play-area{overflow:visible}.arena{--board-size:calc(100vw - var(--side-rack) * 2 - 26px);width:100%;height:calc(var(--board-size) + var(--tray-height) * 2 + 6px)}.game-sidebar{height:300px;grid-template-columns:3fr 2fr;grid-template-rows:1fr}.players{grid-template-columns:1fr 1fr}.control-panel .word-list{display:block}}

:root{--header-height:40px;--tray-height:48px}
.app-shell{padding-top:5px}.game-header{height:var(--header-height);min-height:var(--header-height);margin-bottom:7px;grid-template-columns:minmax(150px,1fr) auto minmax(215px,1fr);gap:10px}.game-identity{min-width:0;display:flex;align-items:baseline;gap:7px}.game-identity .eyebrow{flex:0 0 auto;margin:0;font-size:10px;letter-spacing:.1em}.game-header h1{font-family:inherit;font-size:15px;font-weight:850;letter-spacing:0}.turn-message{padding:5px 10px;font-size:11px}.header-actions{gap:6px}.connection-state{padding:3px 6px;font-size:9px}.main-tabs{width:154px;padding:2px}.main-tab{padding:4px 8px;font-size:11px}
.arena{--left-space:var(--side-rack);--right-space:var(--side-rack);--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 30px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - 44px));width:calc(var(--board-size) + var(--left-space) + var(--right-space) + 12px);height:calc(var(--board-size) + var(--tray-height) * 2 + 12px);grid-template-columns:var(--left-space) var(--board-size) var(--right-space);grid-template-rows:var(--tray-height) var(--board-size) var(--tray-height)}
.arena.players-1,.arena.players-2{--left-space:0px;--right-space:0px}.arena.players-3{--left-space:var(--side-rack);--right-space:0px}.arena.players-1 .rack-left,.arena.players-1 .rack-right,.arena.players-2 .rack-left,.arena.players-2 .rack-right,.arena.players-3 .rack-right{display:none!important}
@media(max-width:800px){:root{--header-height:50px;--tray-height:42px}.game-header{height:var(--header-height);min-height:var(--header-height);grid-template-columns:minmax(120px,1fr) auto}.game-identity{gap:5px}.game-identity .eyebrow{font-size:8px}.game-header h1{font-size:12px}.turn-message{grid-row:2;grid-column:1/-1;padding:2px;font-size:9px}.main-tabs{width:140px}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 22px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - 24px))}}
@media(max-width:560px) and (orientation:portrait){.arena{--board-size:calc(100vw - var(--left-space) - var(--right-space) - 20px);height:calc(var(--board-size) + var(--tray-height) * 2 + 6px)}}

:root{--turn-control:74px}
.game-workspace{position:relative;transition:grid-template-columns .24s ease}.play-area{position:relative;padding-right:var(--turn-control)}
.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 34px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - var(--turn-control) - 48px))}
.rack-bottom .rack-tiles{transform:translateY(-4px)}.rack-bottom .rack-tile.mine{cursor:grab}.rack-bottom .rack-tile.mine:active{cursor:grabbing}.rack-bottom .rack-tiles{align-items:flex-start}
.quick-end-turn{position:absolute;z-index:8;right:4px;top:50%;width:66px;padding:10px 7px;transform:translateY(-50%);flex-direction:column;align-items:center;gap:3px;border-radius:10px;font-size:11px;line-height:1.1;box-shadow:0 5px 18px #59452c2d}.quick-end-turn span{font-size:14px}
.sidebar-toggle{position:absolute;z-index:20;top:50%;right:calc(var(--side-width) + 3px);width:24px;height:52px;padding:0;border:1px solid #cfc3af;border-radius:9px 0 0 9px;background:#fffaf1;color:#665d51;font-size:25px;line-height:1;cursor:pointer;transform:translateY(-50%);box-shadow:0 4px 14px #59452c24;transition:right .24s ease}.game-sidebar{min-width:0;transform:translateX(0);transform-origin:right;opacity:1;transition:transform .24s ease,opacity .18s ease}.game-workspace.sidebar-collapsed{--side-width:0px;grid-template-columns:minmax(0,1fr) 0}.sidebar-collapsed .game-sidebar{pointer-events:none;transform:translateX(110%);opacity:0}.sidebar-collapsed .sidebar-toggle{right:0;border-radius:9px 0 0 9px}
.start-overlay{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:18px;background:#f4efe5c9;backdrop-filter:blur(2px)}.start-dialog{width:min(92%,480px);padding:24px;border:1px solid #d8cbb7;border-radius:20px;background:#fffefa;box-shadow:0 18px 60px #392a1d42;text-align:center}.start-dialog h2{margin:0 0 18px;font-family:Georgia,serif;font-size:28px}.start-dialog>p:not(.eyebrow){margin:16px auto;color:#6d675e;font-size:12px;line-height:1.5}.opening-letters{display:flex;justify-content:center;gap:8px}.opening-player{min-width:82px;padding:10px 8px;border:1px solid #ded3c1;border-radius:11px;background:#f3ecdf}.opening-player.starter{outline:3px solid #286c63}.opening-player>span:first-child,.opening-player small{display:block;color:#746d64;font-size:9px;font-weight:900;text-transform:uppercase}.opening-player .draw-letter{width:42px;height:42px;margin:7px auto;font-size:23px}.opening-player small{color:#286c63}.start-dialog .count-button{justify-content:center}
@media(max-width:800px){:root{--turn-control:56px}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 25px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - var(--turn-control) - 28px))}.quick-end-turn{width:49px;padding:8px 3px;font-size:9px}.sidebar-toggle{width:20px;height:44px;font-size:21px}.start-dialog{padding:17px}.start-dialog h2{font-size:23px}.opening-player{min-width:62px;padding:7px 5px}.opening-player .draw-letter{width:34px;height:34px}}
@media(max-width:560px) and (orientation:portrait){.play-area{padding-right:0}.quick-end-turn{right:5px;top:auto;bottom:calc(var(--tray-height) + 8px);transform:none}.arena{--board-size:calc(100vw - var(--left-space) - var(--right-space) - 20px)}.sidebar-toggle{display:none}.game-workspace.sidebar-collapsed{--side-width:180px}.sidebar-collapsed .game-sidebar{pointer-events:auto;transform:none;opacity:1}.start-overlay{position:fixed}}

:root{--bottom-action-width:78px}
.play-area{padding-right:0}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 48px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - 48px))}
.rack-bottom{width:calc(100% - var(--bottom-action-width) - 6px);justify-self:start}.rack-bottom .rack-title{height:10px;margin:0}.rack-bottom .rack-tiles{height:calc(100% - 10px);align-items:flex-start;transform:translateY(-7px);overflow:visible}.rack-bottom .rack-tile{align-self:flex-start}
.quick-end-turn{position:relative;z-index:8;right:auto;top:auto;grid-column:2;grid-row:3;align-self:stretch;justify-self:end;width:var(--bottom-action-width);height:100%;padding:4px 7px;transform:none;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:8px;font-size:10px;line-height:1.05;box-shadow:none}.quick-end-turn span{font-size:13px}
.arena:has(.quick-end-turn.hidden) .rack-bottom{width:100%}
@media(max-width:800px){:root{--bottom-action-width:60px}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--tray-height) * 2 - 38px),calc(100vw - var(--side-width) - var(--left-space) - var(--right-space) - 30px))}.rack-bottom .rack-tiles{transform:translateY(-5px)}.quick-end-turn{width:var(--bottom-action-width);height:100%;padding:3px;font-size:9px}}
@media(max-width:560px) and (orientation:portrait){.quick-end-turn{position:relative;right:auto;bottom:auto}.arena{--board-size:calc(100vw - var(--left-space) - var(--right-space) - 20px)}}

.rack-position{position:relative;overflow:hidden}.rack-title{position:relative;z-index:1;margin:0;padding:1px 2px;pointer-events:none}.rack-tiles,.rack-bottom .rack-tiles{position:absolute;z-index:2;inset:0;width:100%;height:100%;display:block;transform:none;overflow:hidden}
.rack-tiles .rack-tile{position:absolute;top:50%;left:0;width:34px;height:34px;margin:0;transform:translateY(-50%);touch-action:none;cursor:grab;will-change:left;transition:left .12s ease,box-shadow .12s ease}.rack-tiles .rack-tile.dragging{z-index:20;cursor:grabbing;transition:none;box-shadow:inset 0 1px #fff8,0 7px 14px #3b2a1866}
.opponent-count{position:absolute;inset:0;display:grid;place-items:center;color:#6d675e;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.rack-left .opponent-count,.rack-right .opponent-count{writing-mode:vertical-rl}
@media(max-width:800px){.rack-tiles .rack-tile{width:29px;height:29px}.opponent-count{font-size:9px}}

.rack-tiles .rack-tile{transition:left .06s linear,box-shadow .12s ease}.rack-tiles .rack-tile.dragging{filter:brightness(1.03)}
.floating-rack-tile{position:fixed!important;z-index:1000!important;display:grid!important;place-items:center!important;margin:0!important;transform:scale(1.08)!important;pointer-events:none!important;border:1px solid #bd9147;border-radius:4px;background:linear-gradient(145deg,#f9e5ad,#dfbd74);color:#292218;box-shadow:inset 0 1px #fff8,0 12px 25px #3b2a1870!important;opacity:.97}.floating-rack-tile b{font-family:Arial,sans-serif;line-height:1}.floating-rack-tile i{position:absolute;right:3px;bottom:1px;font-size:7px;font-style:normal}.lift-source{pointer-events:none}

:root{--bottom-return-width:44px}.rack-bottom{width:calc(100% - var(--bottom-action-width) - var(--bottom-return-width) - 12px)}.arena:has(.quick-end-turn.hidden) .rack-bottom{width:100%}
.quick-return{position:relative;z-index:9;grid-column:2;grid-row:3;align-self:stretch;justify-self:end;width:var(--bottom-return-width);height:100%;margin-right:calc(var(--bottom-action-width) + 6px);padding:0;border:1px solid #cbbda7;border-radius:8px;background:#f7f0e4;color:#575147;font-size:23px;font-weight:900;cursor:pointer}.quick-return:hover{background:#eee4d4}.quick-return:disabled{opacity:.38;cursor:not-allowed}
.rack-tiles .rack-tile.selected{outline:3px solid #28748b;outline-offset:1px;box-shadow:inset 0 1px #fff8,0 0 0 4px #d8f0f5}.rack-selection-box{position:absolute;z-index:50;border:1px solid #28748b;background:#65b9d02b;pointer-events:none}
.floating-rack-group{position:fixed;z-index:1000;display:flex;gap:2px;padding:3px;border-radius:6px;background:#fffaf1d9;box-shadow:0 12px 28px #3b2a1866;pointer-events:none}.floating-rack-group .rack-tile{position:relative;left:auto;width:34px;height:34px;flex:0 0 34px;transform:none}.floating-rack-group .rack-tile i{position:absolute;right:3px;bottom:1px;font-size:7px;font-style:normal}
@media(max-width:800px){:root{--bottom-return-width:38px}.quick-return{font-size:19px}.floating-rack-group .rack-tile{width:29px;height:29px;flex-basis:29px}}

.player-name-edit,.score-name-edit{padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:900;text-transform:inherit;cursor:pointer}.player-name-edit:hover,.score-name-edit:hover{text-decoration:underline}.rack-position .rack-title{z-index:3}.score-name-edit{display:block;color:#777167;font-size:9px;text-align:left}.turn-overlay{position:fixed;z-index:2000;top:62px;left:50%;min-width:220px;padding:14px 22px;border:1px solid #d8cbb7;border-radius:14px;background:#fffefa;color:#2a2925;box-shadow:0 12px 32px #3b2a1838;font-family:Georgia,serif;font-size:22px;font-weight:700;text-align:center;pointer-events:none;opacity:0;transform:translate(-50%,-12px)}.turn-overlay.show{animation:turn-announcement 2.2s ease both}@keyframes turn-announcement{0%{opacity:0;transform:translate(-50%,-12px)}12%,70%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
@media(max-width:600px){.turn-overlay{top:54px;min-width:180px;padding:11px 16px;font-size:18px}}

.game-sidebar{grid-template-rows:auto auto minmax(0,1fr);align-content:stretch}
.game-sidebar .score-panel,.game-sidebar .control-panel,.game-sidebar .chat-panel{padding:8px;border-radius:11px}
.score-panel{overflow:visible}.score-panel .sidebar-heading{margin-bottom:5px}.score-panel .players{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.score-panel .player-card{min-height:0;padding:4px 6px;border-radius:7px}.score-panel .player-card>div{display:flex;align-items:center;justify-content:space-between;gap:4px}.score-panel .player-card strong{font-size:16px;line-height:1}.score-panel .player-card small,.score-panel .score-name-edit{overflow:hidden;font-size:8px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.score-panel .online-dot{width:5px;height:5px}
.control-panel{overflow:visible}.control-panel .panel-heading{min-height:16px}.control-panel h2{font-size:12px}.control-panel .word-list{max-height:56px;margin:3px 0 5px}.control-panel .empty-state{margin:5px 2px;font-size:9px}.control-panel .word-row{padding:3px 2px;font-size:10px}.control-panel .count-button{padding:7px 9px}.control-panel .clear-move,.control-panel .reset-game{margin-top:4px;padding:5px;font-size:10px}.control-panel .status{margin-top:3px;font-size:8px;line-height:1.2}
.chat-panel{display:flex;min-height:0;flex-direction:column;overflow:hidden}.chat-heading{flex:0 0 auto;padding:0 1px 5px;border-bottom:1px solid #e7dece}.chat-heading h2{margin:0;font-size:12px}.chat-messages{flex:1 1 auto;min-height:42px;padding:6px 3px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.chat-empty{margin:8px 2px;color:#8b857b;font-size:9px;text-align:center}.chat-message{margin:0 0 6px;font-size:10px;line-height:1.25}.chat-message:last-child{margin-bottom:0}.chat-message strong{display:block;margin-bottom:1px;color:#286c63;font-size:9px}.chat-message span{display:block;overflow-wrap:anywhere;white-space:pre-wrap}.chat-composer{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding-top:6px;border-top:1px solid #e7dece}.chat-composer textarea{width:100%;min-height:48px;padding:6px;border:1px solid #d8cbb7;border-radius:7px;background:#fffdf8;color:inherit;font:inherit;font-size:10px;line-height:1.25;resize:none}.chat-composer textarea:focus{outline:2px solid #78aec0;outline-offset:1px}.chat-composer button{align-self:stretch;padding:0 9px;border:0;border-radius:7px;background:#286c63;color:#fff;font-size:10px;font-weight:800;cursor:pointer}.chat-composer button:disabled,.chat-composer textarea:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:800px){.game-sidebar{grid-template-rows:auto auto minmax(0,1fr)}.score-panel .players{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-composer{grid-template-columns:1fr}.chat-composer button{min-height:25px}}
@media(max-width:560px) and (orientation:portrait){.game-sidebar{height:360px;grid-template-columns:1fr;grid-template-rows:auto auto minmax(120px,1fr)}.chat-composer{grid-template-columns:minmax(0,1fr) auto}}

.square.recent-placed .tile{z-index:3;animation:recent-tile-glow 1.9s ease-out both}
@keyframes recent-tile-glow{0%{outline:2px solid #fff4a8;outline-offset:-1px;box-shadow:inset 0 0 0 2px #fff7bd,0 0 5px 2px #ffe66b,0 0 13px 6px #f3c83daa;transform:scale(1.08)}22%{outline:2px solid #ffe055;outline-offset:0;box-shadow:inset 0 0 0 2px #fff1a0,0 0 7px 3px #ffd93d,0 0 17px 8px #edb91aaa;transform:scale(1.04)}100%{outline:0 solid transparent;outline-offset:0;box-shadow:inset 0 1px #fff8,0 2px 3px #3b2a1838;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.square.recent-placed .tile{animation-duration:.7s}}

:root{--tray-height:68px}
.rack-position{overflow:hidden}.rack-position .rack-title{position:relative;z-index:4;height:17px;margin:0;padding:3px 5px 1px;display:flex;align-items:center;justify-content:space-between;pointer-events:auto}.rack-title,.rack-title button{font-size:8px;line-height:1}.rack-position .rack-tiles,.rack-bottom .rack-tiles{position:relative;z-index:2;inset:auto;width:100%;height:calc(100% - 17px);display:flex;align-items:center;justify-content:center;transform:none;overflow:hidden}
.rack-bottom{height:var(--tray-height)}.rack-bottom .rack-tiles.slot-tray{height:calc(100% - 17px);padding:2px 4px 4px;display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:2px;align-items:stretch;overflow:visible}.rack-slot{min-width:0;height:100%;padding:1px;border:1px solid #8d76502e;border-radius:4px;background:#fffaf11f;display:grid;place-items:center;cursor:pointer}.rack-slot:hover{border-color:#8d76506b;background:#fffaf14d}.rack-slot.occupied{border-color:transparent;background:transparent}.rack-slot .rack-tile{position:relative;inset:auto;top:auto;left:auto;width:min(100%,36px);height:auto;max-height:100%;aspect-ratio:1;margin:0;transform:none;touch-action:auto;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.rack-slot .rack-tile:hover{transform:translateY(-1px)}.rack-slot .rack-tile.selected{z-index:5;outline:2px solid #28748b;outline-offset:1px;box-shadow:inset 0 1px #fff8,0 0 0 3px #d8f0f5,0 4px 8px #3b2a1838}.rack-slot .rack-tile b{font-size:clamp(10px,1.4vw,18px)}.rack-slot .rack-tile i{right:3px;bottom:1px;font-size:7px}.opponent-count{position:static;transform:none}
@media(max-width:800px){:root{--tray-height:58px}.rack-position .rack-title{height:15px;padding:2px 3px 1px}.rack-position .rack-tiles,.rack-bottom .rack-tiles.slot-tray{height:calc(100% - 15px)}.rack-bottom .rack-tiles.slot-tray{gap:1px;padding:1px 2px 3px}.rack-slot{padding:0;border-radius:3px}.rack-slot .rack-tile{width:100%}.rack-slot .rack-tile b{font-size:clamp(8px,2.5vw,14px)}.rack-slot .rack-tile i{font-size:5px}}

.rack-slot .rack-tile{cursor:pointer!important}.rack-slot .rack-tile:active{cursor:pointer!important}.square.selectable-turn-tile .tile{cursor:pointer}.square.selected-turn-tile .tile{z-index:5;outline:3px solid #28748b;outline-offset:1px;box-shadow:inset 0 1px #fff8,0 0 0 4px #d8f0f5,0 4px 10px #3b2a1848}.square:has(.tile):not(.selectable-turn-tile){cursor:default}

.board .tile{width:92%;height:92%;max-width:92%;max-height:92%}
.premium-label{opacity:.5}
.square.recent-placed .tile{z-index:3;animation:latest-move-highlight 1s ease-out both}
@keyframes latest-move-highlight{0%{outline:2px solid #fff4a8;outline-offset:-1px;box-shadow:inset 0 0 0 2px #fff7bd,0 0 6px 2px #ffe66b,0 0 13px 5px #f3c83daa;transform:scale(1.04)}5%,88%{outline:2px solid #ffe055;outline-offset:-1px;box-shadow:inset 0 0 0 2px #fff1a0,0 0 5px 2px #ffd93d,0 0 10px 4px #edb91a88;transform:scale(1)}100%{outline:0 solid transparent;outline-offset:0;box-shadow:inset 0 1px #fff8,0 2px 3px #3b2a1838;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.square.recent-placed .tile{animation-name:latest-move-highlight-reduced;animation-duration:1s}@keyframes latest-move-highlight-reduced{0%,88%{outline:2px solid #ffe055;outline-offset:-1px;box-shadow:inset 0 0 0 2px #fff1a0,0 0 5px 2px #ffd93d}100%{outline:0 solid transparent;box-shadow:inset 0 1px #fff8,0 2px 3px #3b2a1838}}}

.zero-turn-overlay{position:fixed;z-index:2500;inset:0;padding:18px;display:grid;place-items:center;background:#f4efe55c}.zero-turn-dialog{width:min(100%,430px);padding:22px;border:1px solid #d5c8b4;border-radius:16px;background:#fffaf1;box-shadow:0 18px 55px #3b2a1855}.zero-turn-dialog h2{margin:0;font-family:Georgia,serif;font-size:25px}.zero-turn-dialog>div>p:not(.eyebrow){margin:8px 0 15px;color:#6d675e;font-size:13px;line-height:1.4}.zero-turn-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.zero-turn-actions .count-button,.zero-turn-actions .clear-move{margin:0;justify-content:center}.modal-cancel{width:100%;margin-top:8px;padding:7px;border:0;background:transparent;color:#6d675e;font-size:11px;cursor:pointer}.exchange-tiles{margin:12px 0;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.exchange-choice{padding:2px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.exchange-choice .rack-tile{width:100%;height:auto;aspect-ratio:1;cursor:pointer}.exchange-choice.selected{border-color:#28748b;background:#d8f0f5;box-shadow:0 0 0 2px #28748b}.exchange-choice:disabled{opacity:.38;cursor:not-allowed}.exchange-choice:disabled .rack-tile{cursor:not-allowed}
@media(max-width:520px){.zero-turn-dialog{padding:17px}.exchange-tiles{gap:4px}.zero-turn-actions{grid-template-columns:1fr}.zero-turn-dialog h2{font-size:22px}}
.chat-message.game-update{margin:4px 0 8px;padding:6px 7px;border-left:3px solid #78aec0;border-radius:0 6px 6px 0;background:#e8f3f5}.chat-message.game-update strong{color:#20576f}.chat-message.game-update span{color:#4f5e61;font-style:italic}

.rack-slot.reserved-slot{position:relative;border-color:#8d76503d;background:#745b3b0b;pointer-events:none}.rack-slot.reserved-slot::after{content:"";width:42%;height:2px;border-radius:2px;background:#8d765049}.rack-slot.reserved-slot.return-target{border-color:#28748b88;background:#d8f0f54d;pointer-events:auto}.rack-slot.reserved-slot.return-target::after{background:#28748b}

:root{--player-strip-height:36px;--tray-height:52px;--side-rack:0px}
#game-view.active{display:flex;min-height:0;flex-direction:column}.top-player-strip{flex:0 0 var(--player-strip-height);min-height:0;margin-bottom:6px;display:grid;grid-template-columns:repeat(var(--top-card-count,3),minmax(0,1fr));gap:6px}.top-player-card{position:relative;min-width:0;padding:5px 8px;border:1px solid #d7cbb8;border-radius:9px;background:#fffaf1;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:1px 7px;color:#6d675e}.top-player-card.active{border-color:#286c63;box-shadow:inset 0 0 0 1px #286c63}.top-player-card.me{background:#f1f8f7}.top-player-name{min-width:0;overflow:hidden;color:#46443f;font-size:9px;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.top-player-name button{max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.top-player-score{grid-column:2;grid-row:1/3;color:#22231f;font-family:Georgia,serif;font-size:19px;line-height:1}.top-player-meta{font-size:8px;white-space:nowrap}.top-player-dot{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:#aaa}.top-player-card.online .top-player-dot{background:#42a870}.top-player-card.bag-card{display:flex;justify-content:space-between;background:#eee6d8}.bag-card .top-player-score{font-size:17px}.game-workspace{height:auto;flex:1}.game-sidebar{grid-template-rows:auto minmax(0,1fr)}.score-panel{display:none!important}.control-panel{overflow:visible!important}.control-panel .panel-heading,.control-panel .word-list,.control-panel #clear-button,.control-panel #reset-game{display:none!important}.control-panel #start-game{display:flex!important;margin:0;justify-content:center}.control-panel #start-game.end-game-control{background:#9a4438}.control-panel #start-game.end-game-control:hover{background:#7f352d}.control-panel .status{margin-top:4px}
.rack-position:not(.own-rack){display:none!important}.own-rack .rack-title{display:none!important}.own-rack .rack-tiles.slot-tray{height:100%;padding-top:4px}.arena{--left-space:0px;--right-space:0px;--board-size:min(calc(100dvh - var(--header-height) - var(--player-strip-height) - var(--tray-height) - 44px),calc(100vw - var(--side-width) - var(--turn-control) - 42px));width:calc(var(--board-size) + 6px);height:calc(var(--board-size) + var(--tray-height) + 6px);grid-template-columns:0 var(--board-size) 0;grid-template-rows:0 var(--board-size) var(--tray-height);gap:3px}.arena-board{grid-column:2;grid-row:2}.rack-bottom{grid-column:2;grid-row:3}.quick-return,.quick-end-turn{grid-row:3}
.winner-overlay{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden}.winner-overlay.show{visibility:visible;animation:winner-overlay-life 4.6s ease both}.winner-card{position:relative;z-index:2;width:min(88vw,480px);padding:24px;border:1px solid #d7c9b4;border-radius:18px;background:#fffdf8;box-shadow:0 20px 65px #3b2a1860;text-align:center}.winner-card p{margin:0 0 6px;color:#7d5d3d;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.winner-card strong{font-family:Georgia,serif;font-size:clamp(22px,4vw,36px)}.confetti-layer{position:absolute;inset:0;overflow:hidden}.confetti-piece{position:absolute;top:-12vh;width:9px;height:15px;border-radius:2px;background:var(--confetti-color);animation:confetti-fall var(--duration) linear var(--delay) both;transform:translateX(0) rotate(0)}@keyframes winner-overlay-life{0%{opacity:0}8%,78%{opacity:1}100%{opacity:0}}@keyframes confetti-fall{to{transform:translate(var(--drift),115vh) rotate(var(--spin))}}
@media(max-width:800px){:root{--header-height:44px;--player-strip-height:46px;--tray-height:48px}.game-header{height:var(--header-height);min-height:var(--header-height);grid-template-columns:minmax(70px,1fr) minmax(90px,1.25fr) auto;gap:4px}.game-identity{grid-column:1;min-width:0}.game-identity .eyebrow{font-size:6px}.game-header h1{font-size:11px}.turn-message{grid-row:1;grid-column:2;min-width:0;padding:4px 6px;overflow:hidden;font-size:9px;text-overflow:ellipsis}.header-actions{grid-column:3;min-width:0}.main-tabs{width:118px}.main-tab{padding:5px 4px;font-size:9px}.connection-state{display:none}.top-player-strip{gap:3px;margin-bottom:4px}.top-player-card{padding:3px 5px;border-radius:6px}.top-player-score{font-size:15px}.top-player-name{font-size:7px}.top-player-meta{font-size:6px}.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--player-strip-height) - var(--tray-height) - 27px),calc(100vw - var(--side-width) - var(--turn-control) - 18px))}}
@media(max-width:600px){.top-player-strip.many-players{--player-strip-height:84px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,1fr)}.top-player-strip.many-players+.game-workspace .arena{--board-size:min(calc(100dvh - var(--header-height) - 84px - var(--tray-height) - 27px),calc(100vw - var(--side-width) - var(--turn-control) - 18px))}}
@media(max-width:560px) and (orientation:portrait){html,body{overflow:auto}.app-shell{height:auto;min-height:100dvh}.top-player-strip{flex-basis:var(--player-strip-height)}.game-workspace{display:flex;min-height:0;flex-direction:column}.play-area{overflow:visible}.arena{--board-size:calc(100vw - var(--turn-control) - 18px);width:calc(var(--board-size) + 6px);height:calc(var(--board-size) + var(--tray-height) + 6px)}.game-sidebar{height:300px;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.quick-end-turn{right:3px;bottom:2px}.winner-card{padding:18px}}

:root{--rack-slot-count:15;--rack-growth:0px;--tray-height:calc(52px + var(--rack-growth))}
.rack-bottom .rack-tiles.slot-tray{grid-template-columns:repeat(var(--rack-slot-count),minmax(0,1fr));align-items:center}
.rack-bottom .rack-slot{width:min(100%,calc(var(--tray-height) - 8px));height:auto;aspect-ratio:1/1;align-self:center;justify-self:center}
.rack-bottom .rack-slot .rack-tile{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:1/1}
@media(min-width:561px){.rule-settings{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){:root{--tray-height:calc(48px + var(--rack-growth))}}

.own-rack .rack-tiles.slot-tray{padding:4px!important;align-items:center;justify-items:center}
.rack-bottom .rack-slot{width:var(--rack-square-size,36px);height:var(--rack-square-size,36px);max-width:100%;aspect-ratio:1/1}
.rack-bottom .rack-slot .rack-tile{width:100%;height:100%;aspect-ratio:1/1}
@media(max-width:800px){.own-rack .rack-tiles.slot-tray{padding:3px!important}}

:root{--tray-height:calc(58px + var(--rack-growth))}
.rack-position.own-rack{padding:2px}
.own-rack .rack-tiles.slot-tray{padding:1px!important;gap:1px}
.rack-bottom .rack-slot{padding:1px}
@media(max-width:800px){:root{--tray-height:calc(56px + var(--rack-growth))}.rack-position.own-rack{padding:2px}.own-rack .rack-tiles.slot-tray{padding:1px!important;gap:1px}}

.arena{height:auto;grid-template-rows:0 var(--board-size) auto}
.rack-position.own-rack,.rack-bottom{height:auto;min-height:0}
.own-rack .rack-tiles.slot-tray{position:relative;height:auto!important;overflow:hidden}
.rack-bottom .rack-slot{width:100%;height:auto;max-width:none;aspect-ratio:1/1;border-radius:var(--rack-radius,4px)}
.rack-bottom .rack-slot .rack-tile{width:100%;height:100%;border-radius:var(--rack-radius,4px)}
.rack-bottom .rack-slot .rack-tile b{font-size:var(--rack-letter-size,16px);line-height:1}
.rack-bottom .rack-slot .rack-tile i{right:7%;bottom:4%;font-size:var(--rack-value-size,6px);line-height:1}
.board{container-type:inline-size}
@supports(font-size:1cqi){.board .tile b{font-size:3.05cqi}.board .tile i{font-size:1.05cqi}}

@media(max-width:560px) and (orientation:portrait){
  .play-area{width:100%;max-width:100%;margin-inline:0;padding-inline:0}
  .arena{--board-size:100%;width:100%;height:auto;max-width:none;margin:0;grid-template-columns:0 minmax(0,1fr) 0;grid-template-rows:0 auto auto;column-gap:0;row-gap:3px;justify-content:stretch}
  .arena-board{width:100%;height:auto;min-width:0;aspect-ratio:1}
  .board{width:100%;height:auto;max-width:100%;aspect-ratio:1}
  .rack-bottom{min-width:0;max-width:100%}
}

@media(max-width:560px) and (orientation:portrait){
  html,body{overflow-x:clip}
  .app-shell{height:100dvh;min-height:0}
  #game-view.active{min-height:0;overflow:hidden}
  .game-workspace{flex:1 1 0;min-height:0;overflow:hidden}
  .play-area{flex:0 0 auto;min-height:0}
  .game-sidebar{height:auto;min-height:0;flex:1 1 0;overflow:hidden}
  .chat-panel,.chat-messages{min-height:0}
}

.arena.controls-none .rack-bottom{width:100%!important}
.rack-position.own-rack,.rack-bottom{height:var(--stable-rack-height,var(--tray-height))!important;min-height:var(--stable-rack-height,var(--tray-height))}.own-rack .rack-tiles.slot-tray{height:100%!important;align-items:center}
.top-player-strip{align-items:stretch}.top-player-card{padding:4px 8px;display:flex;align-items:center;gap:6px}.top-player-name{display:flex;align-items:center;gap:3px;line-height:1}.top-player-count{font-weight:800;white-space:nowrap}.top-player-score{margin-left:auto;grid-column:auto;grid-row:auto;font-size:16px}.top-player-dot{flex:0 0 auto;margin-right:1px}.top-player-card.bag-card{justify-content:flex-start}.top-lifecycle-control{height:100%;min-width:0;margin:0;padding:4px 8px;border-radius:9px;align-items:center;justify-content:center;font-size:10px;line-height:1.05;text-align:center}.top-lifecycle-control.end-game-control{background:#9a4438}.top-lifecycle-control.end-game-control:hover{background:#7f352d}
.arena.controls-submit .rack-bottom{width:calc(100% - var(--bottom-action-width) - 6px)!important}
.arena.controls-return-submit .rack-bottom,.arena.controls-review .rack-bottom{width:calc(100% - var(--bottom-action-width) - var(--bottom-return-width) - 12px)!important}
.arena{grid-template-rows:0 var(--board-size) 8px auto}.rack-bottom,.quick-return,.quick-end-turn,.move-approval-actions{grid-row:4}
@media(min-width:801px){.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--player-strip-height) - var(--actual-rack-height,var(--tray-height)) - 55px),calc(100vw - var(--side-width) - var(--turn-control) - 42px))}}
@media(min-width:561px) and (max-width:800px){.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--player-strip-height) - var(--actual-rack-height,var(--tray-height)) - 55px),calc(100vw - var(--side-width) - var(--turn-control) - 18px))}}
.move-approval-actions{position:relative;z-index:8;grid-column:2;align-self:stretch;justify-self:end;width:calc(var(--bottom-action-width) + var(--bottom-return-width) + 6px);display:grid;grid-template-columns:var(--bottom-return-width) var(--bottom-action-width);gap:6px}
.move-approval-actions button{min-width:0;padding:3px;border:0;border-radius:8px;color:#fff;font-size:9px;font-weight:900;line-height:1.05;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}
.move-approval-actions button span{font-size:17px;line-height:1}.move-approval-actions .reject-move{background:#b64f45}.move-approval-actions .reject-move:hover{background:#923c35}.move-approval-actions .accept-move{background:#28745f}.move-approval-actions .accept-move:hover{background:#1f5b4b}.move-approval-actions button:disabled{opacity:.5;cursor:not-allowed}
.turn-time-track{position:relative;z-index:20;grid-column:2;grid-row:3;align-self:stretch;justify-self:stretch;width:100%;height:8px;border:1px solid #184b5f;border-radius:4px;background:#d8ddd8;box-shadow:0 1px 3px #3b2a1838;overflow:hidden;pointer-events:none}.turn-time-track span{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f8a72,#48b494);transform-origin:left center}.turn-time-track.correction{border-color:#9d4037;background:#ead8cf}.turn-time-track.correction span{background:linear-gradient(90deg,#d68035,#c64e42)}.turn-time-track.paused{border-color:#a89c89;background:#e1d9cc;box-shadow:none}
.turn-time-track.review{border-color:#67509c;background:#ded8ea}.turn-time-track.review span{background:linear-gradient(90deg,#755eb1,#a58cd7)}
.arena.move-under-review .square.has-new .tile{box-shadow:inset 0 1px #fff8,0 0 0 2px #f1d441,0 0 11px 3px #f4da5688}.timer-toggle>span{display:flex;align-items:center;gap:6px;margin-top:7px;font-weight:700}.timer-toggle input{width:auto;margin:0}
@media(max-width:800px){.move-approval-actions button{font-size:8px}.move-approval-actions button span{font-size:15px}.turn-time-track{height:8px}}
@media(max-width:800px){:root{--player-strip-height:32px}.top-player-strip{gap:3px}.top-player-card{padding:3px 5px}.top-player-score{font-size:13px}.top-lifecycle-control{padding:3px 4px;font-size:8px}}
@media(max-width:600px){.top-player-strip.many-players{--player-strip-height:64px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,1fr)}}
.blank-letter-overlay{position:fixed;z-index:2700;inset:0;padding:18px;display:grid;place-items:center;background:#f4efe55c}.blank-letter-dialog{width:min(100%,390px);padding:20px;border:1px solid #d5c8b4;border-radius:16px;background:#fffaf1;box-shadow:0 18px 55px #3b2a1855}.blank-letter-dialog h2{margin:0 0 15px;font-family:Georgia,serif;font-size:25px}.blank-letter-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.blank-letter-grid button{aspect-ratio:1;padding:0;border:1px solid #bd9147;border-radius:5px;background:linear-gradient(145deg,#f9e5ad,#dfbd74);color:#292218;font-size:16px;font-weight:900;cursor:pointer}.blank-letter-grid button:hover,.blank-letter-grid button:focus-visible{outline:3px solid #28748b;outline-offset:1px}.blank-assigned b{opacity:.5}
.zero-turn-actions:has(#open-blank-swap:not(.hidden)){grid-template-columns:repeat(3,minmax(0,1fr))}.blank-swap-overlay{position:fixed;z-index:2750;inset:0;padding:18px;display:grid;place-items:center;background:#f4efe55c}.blank-swap-dialog{width:min(100%,430px);padding:22px;border:1px solid #d5c8b4;border-radius:16px;background:#fffaf1;box-shadow:0 18px 55px #3b2a1855}.blank-swap-dialog h2{margin:0;font-family:Georgia,serif;font-size:25px}.blank-swap-dialog>p:not(.eyebrow){margin:8px 0 15px;color:#6d675e;font-size:13px}.blank-swap-options{display:grid;gap:7px;max-height:50dvh;overflow:auto}.blank-swap-options>button{padding:7px;border:1px solid #d8cbb7;border-radius:9px;background:#f7f0e4;display:flex;align-items:center;gap:10px;color:#292218;text-align:left;cursor:pointer}.blank-swap-options>button:hover{border-color:#28748b;background:#eef7f6}.blank-swap-options .rack-tile{position:relative;width:38px;height:38px;flex:0 0 38px}.blank-swap-options span span{display:flex;flex-direction:column}.blank-swap-options b,.blank-swap-options small{display:block}.blank-swap-options small{margin-top:2px;color:#746c60;font-size:10px}@media(max-width:520px){.zero-turn-actions:has(#open-blank-swap:not(.hidden)){grid-template-columns:1fr}.blank-swap-dialog{padding:18px}}
@media(max-width:560px) and (orientation:portrait){.arena{grid-template-rows:0 auto 8px auto}}
.sidebar-toggle{display:none!important}
.top-utility-card{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.top-utility-card .top-player-card{height:100%;min-width:0;padding-left:5px;padding-right:5px;border-radius:9px}
.top-chat-toggle{min-width:0;height:100%;padding:3px;border:1px solid #d7cbb8;border-radius:9px;background:#fffaf1;color:#46443f;font-size:9px;font-weight:900;line-height:1;cursor:pointer}
.top-chat-toggle:hover,.top-chat-toggle.active{border-color:#286c63;background:#e8f3f1;color:#205d55}.top-chat-toggle:focus-visible{outline:2px solid #28748b;outline-offset:1px}
.top-chat-toggle.has-unread{border-color:#c85545;box-shadow:inset 0 0 0 1px #c85545;color:#8e332a}
.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-chat-close{display:none;width:34px;height:34px;padding:0;border:1px solid #d7cbb8;border-radius:50%;background:#fffaf1;color:#493f33;font-size:25px;line-height:1;cursor:pointer}
@media(max-width:800px){.top-utility-card .top-player-card{padding-left:3px;padding-right:3px;border-radius:6px}.top-chat-toggle{border-radius:6px;font-size:7px}}
@media(max-width:700px){
  .game-workspace,.game-workspace.sidebar-collapsed{--side-width:0px;grid-template-columns:minmax(0,1fr)!important}
  .game-sidebar{display:none!important}
  body.mobile-chat-open{overflow:hidden!important}
  body.mobile-chat-open .game-sidebar{position:fixed;z-index:2800;inset:0;display:flex!important;width:100dvw;height:100dvh!important;min-height:0;padding:10px;background:#f4efe5;opacity:1!important;pointer-events:auto!important;transform:none!important}
  body.mobile-chat-open .game-sidebar .score-panel,body.mobile-chat-open .game-sidebar .control-panel{display:none!important}
  body.mobile-chat-open .chat-panel{display:flex!important;width:100%;height:100%;min-height:0;padding:12px;border-radius:14px}
  body.mobile-chat-open .chat-heading{padding-bottom:8px}body.mobile-chat-open .chat-heading h2{font-size:16px}
  body.mobile-chat-open .chat-messages{font-size:13px}body.mobile-chat-open .chat-message{font-size:13px}body.mobile-chat-open .chat-message strong{font-size:11px}
  body.mobile-chat-open .chat-composer{grid-template-columns:minmax(0,1fr) auto}body.mobile-chat-open .chat-composer textarea{min-height:62px;font-size:14px}body.mobile-chat-open .chat-composer button{padding:0 16px;font-size:13px}
  .mobile-chat-close{display:grid;place-items:center;flex:0 0 auto}
}
.shared-rack-slots{display:none!important}.personal-settings{margin:0 0 20px;padding:13px;border:1px solid #c9dcd7;border-radius:14px;background:#eef7f5;display:grid;grid-template-columns:minmax(150px,1.2fr) repeat(2,minmax(130px,1fr));gap:12px;align-items:stretch}.personal-settings>div{align-self:center}.personal-settings .eyebrow{margin-bottom:3px}.personal-settings h3{margin:0;font-family:Georgia,serif;font-size:20px}.personal-settings label{padding:10px 12px;border:1px solid #d5e2de;border-radius:10px;background:#fffdf8;font-size:12px;font-weight:800}.personal-settings input[type=number]{display:block;width:100%;margin-top:7px;padding:8px;border:1px solid #d2c5b1;border-radius:8px;font-weight:800}.personal-sound-setting{display:flex;flex-direction:column;justify-content:space-between}.personal-sound-setting span{display:flex;align-items:center;gap:6px;margin-top:8px}.personal-sound-setting input{width:auto;margin:0}@media(max-width:700px){.personal-settings{grid-template-columns:1fr 1fr}.personal-settings>div{grid-column:1/-1}.personal-settings h3{font-size:18px}}
.top-player-name{font-size:11px}.top-player-count{font-size:10px}.top-player-score{font-size:18px}.top-chat-toggle,.top-lifecycle-control{font-size:10px}
.chat-heading h2{font-size:14px}.chat-empty{font-size:11px}.chat-message{font-size:13px;line-height:1.35}.chat-message strong{font-size:11px}.chat-composer textarea{font-size:13px;line-height:1.35}.chat-composer button{font-size:12px}
@media(max-width:800px){
  .top-player-name{font-size:10px}.top-player-count{font-size:9px}.top-player-score{font-size:15px}.top-chat-toggle,.top-lifecycle-control{font-size:9px}
  .top-lifecycle-control{padding:3px 2px}
  .main-tab{font-size:10px}.turn-message{font-size:10px}
}
@media(max-width:700px){body.mobile-chat-open .chat-heading h2{font-size:16px}body.mobile-chat-open .chat-message{font-size:13px}body.mobile-chat-open .chat-message strong{font-size:11px}body.mobile-chat-open .chat-composer textarea{font-size:14px}body.mobile-chat-open .chat-composer button{font-size:13px}}
@media(min-width:701px){.game-workspace{gap:10px}.game-workspace:not(.sidebar-collapsed) .play-area{place-items:center end}}
@media(min-width:801px){.arena{--board-size:min(calc(100dvh - var(--header-height) - var(--player-strip-height) - var(--actual-rack-height,var(--tray-height)) - 55px),calc(100vw - var(--side-width) - 44px))}}
@media(min-width:801px){
  .game-workspace:not(.sidebar-collapsed){width:max-content;max-width:100%;margin-inline:auto;grid-template-columns:max-content var(--side-width)}
  .game-workspace:not(.sidebar-collapsed) .play-area{width:max-content;place-items:center}
}
@media(max-width:700px){
  :root{--player-strip-height:88px}
  .top-player-strip,.top-player-strip.many-players{grid-template-columns:repeat(var(--joined-player-count,1),minmax(0,1fr));grid-template-rows:56px 28px;gap:4px;flex-basis:var(--player-strip-height)}
  .top-player-strip>.top-player-card{grid-row:1}
  .top-utility-card{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .top-utility-card .top-player-card,.top-chat-toggle,.top-lifecycle-control{border-radius:7px;font-size:10px}
  .top-utility-card .top-player-name,.top-utility-card .top-player-count{font-size:10px}
}
.settings-view.locked{opacity:1}.settings-view.locked .settings-heading,.settings-view.locked .rule-settings,.settings-view.locked .settings-columns,.settings-view.locked .letter-settings,.settings-view.locked .settings-actions,.settings-view.locked>.status{opacity:.55}.personal-settings{transition:opacity .18s}.personal-settings.turn-locked{opacity:.48}.personal-settings-note{display:block;margin-top:4px;color:#6d675e;font-size:10px;font-weight:500;line-height:1.25}
.late-join-message{min-height:clamp(180px,45dvh,420px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#6d675e;text-align:center}.late-join-message strong{color:#29251f;font-family:Georgia,serif;font-size:clamp(22px,4vw,34px)}.late-join-message span{font-size:14px}.late-settings-note{margin:0 0 18px;padding:18px;border:1px solid #c9dcd7;border-radius:14px;background:#eef7f5}.late-settings-note h2{margin:2px 0 5px;font-family:Georgia,serif;font-size:26px}.late-settings-note p:last-child{margin:0;color:#6d675e}body.late-joiner #game-view .top-player-strip,body.late-joiner #game-view .game-workspace{display:none!important}body.late-joiner #settings-view .settings-heading,body.late-joiner #settings-view .rule-settings,body.late-joiner #settings-view .settings-columns,body.late-joiner #settings-view .letter-settings,body.late-joiner #settings-view .settings-actions,body.late-joiner #settings-view>.status{display:none!important}
@media(max-width:700px){.arena{grid-template-rows:0 auto 8px auto auto!important;row-gap:0!important}.arena.controls-submit .rack-bottom,.arena.controls-return-submit .rack-bottom,.arena.controls-review .rack-bottom{width:100%!important}.rack-bottom{grid-row:4!important;grid-column:2!important}.quick-return,.quick-end-turn,.move-approval-actions{grid-row:5!important;grid-column:2!important;height:48px!important;min-height:48px!important;margin-top:11px!important;align-self:start!important}.arena.controls-submit .quick-end-turn{width:100%!important;justify-self:stretch!important}.arena.controls-return-submit .quick-return{width:calc(50% - 3px)!important;justify-self:start!important}.arena.controls-return-submit .quick-end-turn{width:calc(50% - 3px)!important;justify-self:end!important}.move-approval-actions{width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;justify-self:stretch!important}.move-approval-actions button,.quick-end-turn{font-size:12px!important}.move-approval-actions button span{font-size:19px!important}#game-view.active{overflow-y:auto!important}.game-workspace{overflow:visible!important}.late-join-message{min-height:50dvh;padding:20px}.late-settings-note{padding:14px}.late-settings-note h2{font-size:22px}}
@media(max-width:700px){html.portrait-rack .own-rack .rack-slot,html.portrait-rack .own-rack .rack-slot .rack-tile{aspect-ratio:1/1.12}html.portrait-rack .own-rack .rack-slot .rack-tile b{font-size:var(--rack-letter-size,16px)}html.portrait-rack .own-rack .rack-slot .rack-tile i{right:7%;bottom:3%;font-size:var(--rack-value-size,6px)}}
.connection-state,.main-tabs{display:none!important}.game-identity .eyebrow{font-size:11px}.game-header h1{font-size:18px}.header-actions{min-width:38px}.settings-open-button{width:34px;height:34px;padding:0;border:1px solid #d4c8b5;border-radius:50%;display:grid;place-items:center;background:#fffaf1;color:#534b40;font-size:19px;line-height:1;cursor:pointer}.settings-open-button:hover,.settings-open-button:focus-visible{border-color:#286c63;background:#eaf4f2;color:#205d55;outline:none}.settings-view{max-width:none!important;margin:0!important;padding:18px!important}.settings-view.active{position:fixed;z-index:2600;inset:0;display:grid!important;place-items:center;background:#2f281f38;overflow:auto}.settings-modal-card{position:relative;width:min(920px,100%);max-height:calc(100dvh - 36px);padding:26px;border:1px solid #d7cbb8;border-radius:18px;background:#f4efe5;box-shadow:0 22px 70px #31261955;overflow:auto}.settings-modal-close{position:sticky;z-index:3;top:0;float:right;width:38px;height:38px;margin:-8px -8px 5px 12px;padding:0;border:1px solid #d4c8b5;border-radius:50%;display:grid;place-items:center;background:#fffaf1;color:#4d453b;font-size:27px;line-height:1;cursor:pointer}.settings-modal-close:hover,.settings-modal-close:focus-visible{border-color:#9a4438;color:#9a4438;outline:none}body.settings-modal-open{overflow:hidden!important}.settings-modal-card>.status{text-align:left;margin-top:9px}body.late-joiner #settings-view .settings-modal-card>.status{display:none!important}
@media(max-width:800px){.game-identity .eyebrow{font-size:9px}.game-header h1{font-size:15px}.settings-open-button{width:32px;height:32px;font-size:18px}}
@media(max-width:560px){.settings-view{padding:0!important}.settings-view.active{place-items:stretch;background:#f4efe5}.settings-modal-card{width:100%;max-height:none;min-height:100dvh;padding:16px 12px 24px;border:0;border-radius:0;box-shadow:none}.settings-modal-close{top:4px;margin:-2px 0 5px 10px}}

:root{--word11-board-size:11}
.board{grid-template-columns:repeat(var(--word11-board-size),1fr)!important;grid-template-rows:repeat(var(--word11-board-size),1fr)!important}
.word11-home{width:min(960px,calc(100vw - 28px));display:grid;gap:24px}.home-brand{text-align:center;color:#fff}.home-brand span{font-size:clamp(2.2rem,8vw,5rem);font-weight:900;letter-spacing:.08em}.home-brand strong{display:inline-grid;place-items:center;width:1.15em;height:1.15em;margin-left:.12em;border-radius:.2em;background:#fff;color:var(--red);font-size:clamp(2.2rem,8vw,5rem)}.home-brand p{font-size:1rem}.home-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.key-screen{background:linear-gradient(145deg,#c94f40,#a73632)!important}.key-card{width:auto!important;margin:0!important;align-self:stretch}.key-card .status{min-height:1.2em;margin:8px 0 0}.settings-file-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.settings-file-button.disabled{opacity:.45;pointer-events:none}.rule-settings select,.settings-step select{width:100%;margin-top:6px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.game-identity h1{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-sections{display:grid;gap:8px;margin:12px 0}.settings-step{border:1px solid var(--line);border-radius:10px;background:#fffaf1;overflow:hidden}.settings-step summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px;cursor:pointer;font-weight:800}.settings-step summary small{font-weight:500;color:var(--muted);text-align:right}.settings-step-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 13px 13px}.settings-step-body .settings-columns,.settings-step-body .letter-settings{grid-column:1/-1}.settings-step-body label{min-width:0}
@media(max-width:700px){.home-options{grid-template-columns:1fr}.word11-home{height:100%;overflow:auto;padding:18px 0}.home-brand span,.home-brand strong{font-size:2.4rem}}

/* Final header and control overrides. */
.game-header{width:auto!important;max-width:none!important;margin:-5px -14px 7px!important;padding:5px 14px!important;border:0!important;background:var(--red)!important;color:#fff!important}
.game-header .game-identity .eyebrow{color:#fff!important;opacity:.65}
.game-header .game-identity h1{color:#fff!important}
.game-header .turn-message{border:0!important;background:#22231f!important;color:#fff!important;box-shadow:none!important}
.game-header .settings-open-button{width:34px;height:34px;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;box-shadow:none!important}
.game-header .settings-open-button:hover,.game-header .settings-open-button:focus-visible{border:0!important;background:transparent!important;color:#fff!important;outline:2px solid #ffffff99!important;outline-offset:1px}
@media(max-width:800px){.game-header{margin:-7px -7px 4px!important;padding:5px 7px!important}.game-header .settings-open-button{width:30px;height:30px}}

/* V61: intentional host form and compact player information. */
.host-only-hidden,[hidden]{display:none!important}
.settings-modal-card{width:min(880px,100%);padding:28px 30px}
.settings-heading{align-items:center;margin-bottom:16px}.settings-heading h2{margin:3px 0 4px;font-size:34px}.settings-heading p{margin:0}
.personal-settings{display:grid;grid-template-columns:minmax(190px,.85fr) repeat(2,minmax(180px,1fr));align-items:stretch;gap:12px;padding:14px;border:1px solid #bdd9d4;border-radius:14px;background:#eaf5f3}
.personal-settings>div{align-self:center}.personal-settings>label{display:flex;flex-direction:column;justify-content:center;gap:7px;margin:0;padding:10px 12px;border:1px solid #d8d4ca;border-radius:11px;background:#fffdf9;font-size:13px;font-weight:800}
.personal-settings input[type=number]{width:100%;min-height:38px;padding:7px 10px;border:1px solid #cbbba6;border-radius:8px;background:#fff;font-family:inherit;font-size:15px;font-weight:600;line-height:1.2}
.personal-sound-setting span{display:flex;align-items:center;gap:7px;min-height:38px}.personal-sound-setting input{width:18px;height:18px;margin:0}
.settings-sections{gap:10px;margin:16px 0}.settings-step{border:1px solid #d9cdbb;border-radius:12px;background:#fffaf2;box-shadow:0 1px 0 #fff inset}.settings-step summary{min-height:48px;padding:12px 14px;font-size:16px}.settings-step summary small{max-width:55%;font-size:12px;line-height:1.25}.settings-step[open] summary{border-bottom:1px solid #e4dacb}
.settings-step-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:15px}.settings-step-body>label{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:7px;margin:0;color:#51493f;font-size:13px;font-weight:800}.settings-step-body input[type=number],.settings-step-body select{box-sizing:border-box;width:100%;height:42px;margin:0;padding:8px 11px;border:1px solid #c8b9a5;border-radius:9px;background:#fff;color:#29251f;font-family:inherit;font-size:15px;font-weight:600;line-height:1.2;appearance:auto}.settings-step-body input:focus,.settings-step-body select:focus{border-color:#28766c;outline:3px solid #28766c22}
.settings-step-body .timer-toggle>span{display:flex;align-items:center;gap:8px;min-height:42px}.settings-step-body input[type=checkbox]{width:19px;height:19px;margin:0;accent-color:#28766c}.shared-rack-slots{display:none!important}
.settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-actions>*{box-sizing:border-box;min-height:46px;margin:0;border-radius:10px;font-size:13px;font-weight:800}.settings-actions #save-settings{grid-column:2}.settings-modal-card>.status{margin:9px 4px 0}
.player-room-summary{margin-top:12px;padding:15px;border:1px solid #d8cbb8;border-radius:13px;background:#fffaf2}.player-room-summary-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}.player-room-summary-title p{margin:0}.player-room-summary-title strong{font-size:14px}.player-room-facts{display:grid;grid-template-columns:auto auto minmax(250px,1fr) auto;gap:8px}.player-room-facts>span{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:9px;background:#f0e8dc}.player-room-facts small{color:#756c60;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.player-room-facts b{font-size:13px;white-space:nowrap}
@media(max-width:700px){.settings-modal-card{padding:18px 14px 24px}.settings-heading h2{font-size:28px}.personal-settings{grid-template-columns:1fr 1fr}.personal-settings>div{grid-column:1/-1}.settings-step-body{grid-template-columns:1fr}.settings-step summary small{max-width:48%}.player-room-facts{grid-template-columns:1fr 1fr}.player-room-facts .timing-fact{grid-column:1/-1}.settings-actions{grid-template-columns:1fr 1fr}}

/* One component for every binary game rule. */
.settings-step-body>.game-rule-toggle{display:flex;min-width:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:7px;margin:0;color:#51493f;font-size:13px;font-weight:800}
.game-rule-toggle-control{display:grid;grid-template-columns:19px max-content;align-items:center;justify-content:start;gap:8px;min-height:42px;margin:0}
.game-rule-toggle-control input[type=checkbox]{width:19px;height:19px;margin:0;align-self:center;accent-color:#28766c}

/* V64: pixel-stable board grid and compact player-facing rule summary. */
.board-wrap{display:grid;place-items:center}
.board{grid-auto-flow:row}
.player-rule-summary{margin-top:10px;padding:10px 11px;border:1px solid #e1d6c5;border-radius:10px;background:#f8f2e8}
.player-rule-summary>p{margin:0 0 8px;color:#756c60;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.player-rule-summary>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.player-rule-fact{min-width:0;display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:8px;background:#fffdf9}
.player-rule-fact>i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#a7a198}
.player-rule-fact.enabled>i{background:#42a870}
.player-rule-fact>span{min-width:0;display:flex;flex-direction:column;gap:2px}
.player-rule-fact small{overflow:hidden;color:#5f584e;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.player-rule-fact b{color:#777167;font-size:10px}
.player-rule-fact.enabled b{color:#28766c}
@media(max-width:560px){.player-rule-summary>div{grid-template-columns:1fr}.player-rule-fact small{white-space:normal}}

/* V65: quantities for all three board sizes. */
.settings-columns,.setting-row{grid-template-columns:minmax(82px,1fr) repeat(4,minmax(58px,72px));gap:8px}
.settings-totals{background:#eee3d2;border-top:2px solid #d3c3ac;border-bottom:0;font-size:12px}
.settings-totals strong{padding-left:3px;color:#51493f}.settings-totals output,.settings-totals>span{min-height:36px;display:grid;place-items:center;border:1px solid #d2c3ad;border-radius:8px;background:#e5d7c2;color:#3f3a32;font-weight:900}
@media(max-width:560px){.settings-columns,.setting-row{grid-template-columns:minmax(68px,1fr) repeat(4,minmax(43px,1fr));gap:4px}.settings-columns{padding-inline:7px;font-size:8px}.setting-row{padding-inline:7px}.setting-letter{gap:6px}.setting-letter .bank-tile{width:32px;flex-basis:32px}.setting-row input{min-width:0;padding-inline:3px}.settings-totals strong{font-size:10px}}

/* V67: expanded player utilities and room-link sharing. */
.top-utility-card.without-lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}
.room-link-block{margin:0 0 16px;padding:13px 14px;border:1px solid #d8cbb8;border-radius:13px;background:#fffaf2}.room-link-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.room-link-heading .eyebrow{margin:0 0 2px}.room-link-heading strong{font-family:Georgia,serif;font-size:18px}.room-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.room-link-row input{min-width:0;height:40px;padding:8px 10px;border:1px solid #cbbba6;border-radius:8px;background:#fff;color:#51493f;font:inherit;font-size:13px}.room-link-copy{min-width:78px;padding:8px 13px;border:0;border-radius:8px;background:#28766c;color:#fff;font-size:12px;font-weight:900;cursor:pointer}.room-link-copy:hover,.room-link-copy:focus-visible{background:#205d55;outline:2px solid #28766c44;outline-offset:2px}
@media(max-width:560px){.room-link-block{padding:12px}.room-link-row{grid-template-columns:minmax(0,1fr) 70px}.room-link-row input{font-size:11px}.room-link-copy{min-width:0;padding-inline:9px}}

/* V68: host-only destructive room action. */
.delete-room-button{margin-left:auto;padding:8px 11px;border:1px solid #b9473d;border-radius:8px;background:#fff5f3;color:#a23a32;font-size:11px;font-weight:900;cursor:pointer}.delete-room-button:hover,.delete-room-button:focus-visible{background:#b9473d;color:#fff;outline:2px solid #b9473d44;outline-offset:2px}.delete-room-button:disabled{opacity:.6;cursor:wait}
@media(max-width:560px){.delete-room-button{padding:7px 9px;font-size:10px}.room-link-heading>div{min-width:0}}

/* V71: editable host room name. */
.room-name-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin:0 0 10px}.room-name-form label{min-width:0;padding:0;border:0;background:transparent}.room-name-form input{width:100%;height:40px;margin-top:6px;padding:8px 10px;border:1px solid #cbbba6;border-radius:8px;background:#fff;color:#29251f;font:inherit;font-size:13px}.room-name-form input:focus{border-color:#28766c;outline:3px solid #28766c22}.room-name-form button{height:40px;min-width:78px;padding:8px 13px;border:0;border-radius:8px;background:#28766c;color:#fff;font-size:12px;font-weight:900;cursor:pointer}.room-name-form button:hover{background:#205d55}.room-name-form button:disabled{opacity:.65;cursor:wait}
@media(max-width:560px){.room-name-form{grid-template-columns:minmax(0,1fr) 70px}.room-name-form button{min-width:0;padding-inline:9px}}

/* V66: personal rack-space slider. */
.personal-rack-setting{gap:9px!important}.personal-rack-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.personal-rack-heading output{min-width:30px;padding:3px 7px;border-radius:999px;background:#28766c;color:#fff;font-size:12px;font-weight:900;text-align:center}.personal-rack-setting input[type=range]{width:100%;height:22px;margin:0;padding:0;border:0;background:transparent;accent-color:#28766c;cursor:pointer}.personal-rack-setting input[type=range]:disabled{cursor:not-allowed}

/* V77: clearer bonus labels and two-column mobile player layout. */
.premium-label{font-size:clamp(10px,1.35vw,18px);line-height:1;text-align:center}
.top-player-card.bag-card{justify-content:center;text-align:center}
@media(max-width:700px){
  .premium-label{font-size:clamp(8px,2.5vw,12px)}
  .top-player-strip,.top-player-strip.many-players{
    --player-strip-height:88px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:56px 28px;
    grid-auto-rows:56px;
  }
  .top-player-strip:has(> .top-player-card:nth-child(3)){
    --player-strip-height:148px;
    grid-template-rows:56px 56px 28px;
  }
  .top-player-strip>.top-player-card{grid-row:auto}
  .top-utility-card{grid-column:1/-1;grid-row:-2/-1}
  .top-player-strip:has(> .top-player-card:nth-child(3)) .top-utility-card{grid-row:3}
  .top-utility-card .bag-card{justify-content:center;text-align:center}
}


/* V78: optional personal 3D board view. */
.board-wrap{perspective:none}
.board-wrap .board{transform-origin:center bottom;transition:transform .22s ease,box-shadow .22s ease}
.board-wrap.board-3d{perspective:1000px}
.board-wrap.board-3d .board{transform:rotateX(var(--board-3d-angle,6deg)) translateY(-1px);box-shadow:0 18px 26px rgba(57,42,25,.20),0 4px 8px rgba(57,42,25,.12)}
.personal-board-3d-setting{display:flex;flex-direction:column;gap:8px}.personal-board-3d-controls{display:grid;grid-template-columns:auto minmax(110px,1fr) 34px;align-items:center;gap:10px}.personal-board-3d-controls output{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:700px){.board-wrap.board-3d{perspective:850px}.board-wrap.board-3d .board{transform:rotateX(var(--board-3d-angle,6deg)) translateY(-1px)}}

/* V81: offline player state and host management. */
.top-player-card.offline{opacity:.4}
.top-player-card.offline .top-player-dot{background:#8d8981}
.top-player-offline{margin-left:4px;font-size:7px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.offline-player-manage{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}
.room-host .top-player-card.offline:has(.offline-player-manage):hover{opacity:.58}
.offline-player-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px;background:rgba(35,30,24,.42);backdrop-filter:blur(2px)}
.offline-player-modal.hidden{display:none}
.offline-player-dialog{width:min(360px,calc(100vw - 32px));padding:20px;border:1px solid #d5c6b1;border-radius:15px;background:#fffaf2;box-shadow:0 18px 55px rgba(39,31,23,.28);color:#38342e}
.offline-player-dialog .eyebrow{margin:0 0 3px}.offline-player-dialog h2{margin:0 0 8px;font-family:Georgia,serif;font-size:23px}.offline-player-copy{margin:0 0 17px;color:#625b52;font-size:13px}.offline-player-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.offline-player-actions button{min-height:40px;padding:8px 10px;border:0;border-radius:9px;font-weight:900;cursor:pointer}.offline-skip-button{background:#28766c;color:#fff}.offline-remove-button{background:#aa463c;color:#fff}.offline-cancel-button{grid-column:1/-1;background:#e9e0d3;color:#514b43}.offline-player-actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:700px){.top-player-offline{font-size:6px}.offline-player-dialog{padding:17px}.offline-player-dialog h2{font-size:21px}}
