/* inter-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'SozWar Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./fonts/inter-cyrillic-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* inter-cyrillic-wght-normal */
@font-face {
  font-family: 'SozWar Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./fonts/inter-cyrillic-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* inter-latin-ext-wght-normal */
@font-face {
  font-family: 'SozWar Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./fonts/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* inter-latin-wght-normal */
@font-face {
  font-family: 'SozWar Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./fonts/inter-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}


:root{--ink:#142f2b;--paper:#f5f4ed;--green:#174f43;--lime:#daec91;--line:#dcded2;--muted:#738079;--tile:#fffbeb;--gold:#d6b965;font-family:'SozWar Inter',Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bd982f;outline-offset:3px}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{max-width:1240px;margin:auto;padding:26px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:27px;font-weight:800;letter-spacing:-1px}.brand-light{font-weight:400}.brand small{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:500;margin-top:3px}.brand-mark{height:44px;width:44px;position:relative;background:var(--green);color:var(--lime);border-radius:10px;display:grid;place-items:center;font-size:31px;box-shadow:0 3px 0 #0b342a;transform:rotate(-6deg)}.brand-mark span{position:absolute;bottom:4px;right:6px;font-size:10px}main{max-width:1176px;margin:auto;padding:36px 0 50px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.1px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-2px;font-size:56px;line-height:1.1;font-weight:600}h2{font-size:28px;line-height:1.18;letter-spacing:-.8px}h3{font-size:14px}.quiet{background:transparent;border:1px solid var(--line);border-radius:9px;padding:11px 16px;font-size:12px;color:var(--ink)}.primary{background:var(--green);color:#fff;border-radius:9px;font-weight:600;padding:15px 20px;box-shadow:0 3px 0 #0c372e}.primary:hover{background:#23644e}.secondary{background:#e9ece2;border:1px solid #d5dbcd;border-radius:9px;padding:13px 10px;color:var(--ink);font-size:12px}.large{width:100%;padding:18px}.welcome{text-align:center;max-width:650px;margin:36px auto 70px}.welcome h1{font-size:76px;margin:24px 0}.welcome em{font-style:normal;color:var(--green)}.welcome>p{font-size:17px;line-height:1.65;color:var(--muted);max-width:480px;margin:20px auto}.welcome .large{width:240px;display:flex;justify-content:space-between;margin:36px auto 0}.sample-tiles{display:flex;gap:9px;justify-content:center;margin:45px 0}.sample-tiles>span{position:relative;width:58px;height:64px;display:grid;place-items:center;background:#eee3be;border:1px solid #ded0a3;border-bottom:5px solid #c8b888;border-radius:8px;font-size:29px;font-weight:700;transform:rotate(-4deg)}.sample-tiles>span:nth-child(even){transform:rotate(5deg);background:#e1e8d0;border-color:#c7d3af}.sample-tiles sub{position:absolute;font-size:10px;right:7px;bottom:5px}.game-header{display:flex;justify-content:space-between;align-items:center;margin:0 0 28px}.game-title{font-size:30px;letter-spacing:-1px;margin:8px 0 0}.game-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(230px,1fr);gap:34px}.scoreboard{display:flex;align-items:center;gap:16px;margin-bottom:18px}.score-card{display:flex;flex:1;align-items:center;justify-content:space-between;border:1px solid var(--line);background:#eeefe6;padding:14px 20px;border-radius:11px}.score-card.active{background:var(--green);color:white;border-color:var(--green)}.score-card span{font-size:13px}.score-card strong{font-size:28px;font-variant-numeric:tabular-nums}.versus{font-size:10px;letter-spacing:1px;color:var(--muted)}.board-shell{border-radius:14px;background:#163e35;padding:13px;box-shadow:0 8px 24px #123e3515}.board{display:grid;gap:4px;aspect-ratio:1;width:100%}.board.n9{grid-template-columns:repeat(9,minmax(0,1fr))}.board.n15{grid-template-columns:repeat(15,minmax(0,1fr));gap:3px}.cell{position:relative;border-radius:4px;background:#e5e8d7;color:#8c9b8e;padding:0;min-width:0;min-height:0;aspect-ratio:1;font-size:clamp(8px,1.2vw,12px);font-weight:600;display:grid;place-items:center}.cell:hover{filter:brightness(1.08)}.bonus-2L{background:#c0dbda;color:#397270}.bonus-3L{background:#87b3b0;color:#1d5653}.bonus-2W{background:#dfc9a1;color:#977032}.bonus-3W{background:#bf846c;color:#6c3529}.cell.occupied,.cell.pending{background:var(--tile);color:var(--ink);font-size:clamp(13px,2.7vw,29px);font-weight:700;box-shadow:0 2px 0 #c6b987}.cell.pending{background:var(--lime);outline:2px solid #eef9be;outline-offset:-2px}.cell sub{position:absolute;font-size:9px;right:4px;bottom:3px;font-weight:500}.n15 .cell.occupied,.n15 .cell.pending{font-size:clamp(10px,2vw,21px)}.n15 .cell sub{font-size:7px;right:2px;bottom:1px}.board-meta{display:flex;justify-content:space-between;font-size:11px;margin:14px 2px;color:var(--muted)}#turn-label{font-weight:700;color:var(--green)}.rack-panel{background:#fffefa;border:1px solid var(--line);padding:20px;border-radius:13px}.rack-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:16px}.text-button{padding:0;background:none;color:var(--green);font-size:12px}.rack{display:flex;gap:8px;justify-content:center;min-height:56px}.rack-tile{position:relative;width:calc((100% - 48px)/7);max-width:65px;aspect-ratio:1;background:#efe6c8;border:1px solid #ded0a4;border-bottom:4px solid #cbbb89;border-radius:7px;font-size:27px;font-weight:600;color:var(--ink)}.rack-tile sub{font-size:10px;position:absolute;bottom:4px;right:5px}.rack-tile.selected{transform:translateY(-6px);background:var(--lime);border-color:#9bb45c;box-shadow:0 3px 12px #8fa15733}.rack-tile.used{opacity:.18}.hint{text-align:center;font-size:11px;color:var(--muted);margin:16px 0}.actions{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}.status-panel{background:#e8eddf;border-radius:12px;padding:26px;margin-bottom:18px}.status-panel h2{margin:20px 0 12px;font-size:27px}.status-panel p{font-size:13px;line-height:1.7;color:#6c7c70}.status-panel .idle{margin-bottom:0;font-size:11px}.side-card{padding:24px;border:1px solid var(--line);border-radius:12px;margin-bottom:18px}.legend{display:grid;grid-template-columns:32px 1fr;gap:12px 14px;align-items:center;font-size:12px}.legend>span:nth-child(odd){padding:8px 4px;text-align:center;border-radius:4px;font-size:10px;font-weight:700}.history-card{max-height:420px;overflow:auto}#history{list-style:none;margin:0;padding:0}#history li{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:14px 0;font-size:12px;line-height:1.5}#history small{display:block;color:var(--muted);font-size:10px}#history b{font-variant-numeric:tabular-nums;white-space:nowrap}.notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 24px);background:#142f2b;color:white;padding:16px 18px;border-radius:11px;box-shadow:0 8px 32px #0003;z-index:20;display:flex;align-items:center;gap:15px;font-size:13px}.notice button{color:var(--lime);background:transparent;padding:4px;font-size:12px}.notice #dismiss{font-size:23px}footer{max-width:1176px;margin:auto;padding:24px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}footer b{margin:0 8px}dialog{border:1px solid var(--line);border-radius:18px;padding:32px;width:440px;max-width:calc(100vw - 30px);color:var(--ink);background:var(--paper);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#102e2a99;backdrop-filter:blur(5px)}dialog p{font-size:14px;line-height:1.8}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.close-dialog{background:transparent;color:var(--muted);font-size:27px;padding:0}fieldset{border:0;padding:0;margin:24px 0}legend,.field-label{font-size:12px;font-weight:600;display:block;margin-bottom:10px}.size-options{display:flex;gap:12px}.size-options label{flex:1}.size-options input{position:absolute;opacity:0}.size-options span{display:block;border:1px solid var(--line);border-radius:10px;padding:20px;background:#fffefa}.size-options input:checked+span{border:2px solid var(--green);padding:19px;background:#eaf0df}.size-options input:focus-visible+span{outline:3px solid #bd982f}.size-options b{display:block;font-size:25px}.size-options small{font-size:11px;color:var(--muted)}select,input[type=text],input[type=password],input[type=number],textarea{border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:12px;color:var(--ink);max-width:100%}select{width:100%}.muted{color:var(--muted);font-size:12px!important}.admin-layout{max-width:1050px}.admin-card{background:#fffefa;padding:24px;border:1px solid var(--line);border-radius:12px;margin-bottom:24px}.admin-card form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.admin-card label{font-size:12px;display:grid;gap:6px}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table td,.admin-table th{padding:10px 6px;border-bottom:1px solid var(--line);text-align:left}.admin-table input[type=number]{width:75px}.admin-scroll{overflow:auto}.admin-card textarea{width:100%;font-family:monospace}.admin-card details{margin:12px 0}.admin-error{padding:16px;background:#f2d8d0;border-radius:9px}.admin-success{padding:16px;background:#e1edcc;border-radius:9px}
@media(min-width:1450px){main{max-width:1120px}.game-layout{grid-template-columns:680px 1fr}}@media(max-width:1230px){main{padding:30px 24px 40px}footer{margin:0 24px}.game-layout{grid-template-columns:minmax(0,1fr) 260px;gap:24px}}@media(max-width:860px){.game-layout{grid-template-columns:minmax(0,1fr)}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.status-panel{grid-column:1/-1;display:none}.side-card{margin:0}.game-layout{max-width:680px;margin:auto}.cell.occupied,.cell.pending{font-size:clamp(17px,4.5vw,29px)}.n15 .cell.occupied,.n15 .cell.pending{font-size:clamp(11px,2.9vw,22px)}}@media(max-width:520px){.topbar{padding:18px 14px}.brand{font-size:23px}.brand small{font-size:8px}.brand-mark{width:37px;height:37px;font-size:26px}.topbar>.quiet{font-size:10px;padding:10px}.welcome{margin:35px 0}.welcome h1{font-size:51px;letter-spacing:-2px}.welcome>p{font-size:15px}.sample-tiles{gap:6px}.sample-tiles>span{width:43px;height:50px;font-size:23px}.game-header{margin-bottom:20px;gap:6px}.game-title{font-size:22px;letter-spacing:-.9px}.eyebrow{font-size:8px}.game-header .quiet{font-size:10px;padding:10px;white-space:nowrap}main{padding:25px 10px 30px}.scoreboard{gap:10px;margin-bottom:12px}.score-card{padding:11px 14px}.score-card span{font-size:11px}.score-card strong{font-size:24px}.board-shell{padding:7px;border-radius:9px}.board{gap:3px}.board.n15{gap:2px}.cell{font-size:8px;border-radius:2px}.n15 .cell{font-size:6px}.cell sub{font-size:7px;right:2px;bottom:1px}.n15 .cell sub{font-size:5px;right:1px;bottom:0}.rack-panel{padding:15px 10px}.rack{gap:5px;min-height:43px}.rack-tile{width:calc((100% - 30px)/7);font-size:22px}.rack-tile sub{font-size:8px}.actions{grid-template-columns:1fr 1fr}.actions .primary{grid-column:1/-1}.actions button{padding:13px;font-size:12px}.side-card{padding:17px}.legend{gap:9px;font-size:10px;grid-template-columns:27px 1fr}h3{font-size:12px}footer{margin:0 14px;font-size:9px}dialog{padding:24px}.notice{flex-wrap:wrap;gap:9px}.notice #notice-text{flex:1;min-width:190px}.admin-table input[type=number]{width:58px;padding:8px}}

.starter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 2px 14px;font-size:12px}.starter-bar .muted{margin-left:auto;font-size:10px!important}.word-link{background:transparent;color:var(--green);padding:1px 0;border-bottom:1px dotted #6a927e;font:inherit;font-weight:600;cursor:pointer}.word-link:hover{color:#9c7029}.source-credit{margin:8px 0 0;font-size:11px}#meaning-dialog{width:620px;max-height:85vh;overflow:auto}.definition-entry+.definition-entry{border-top:2px solid var(--line);padding-top:22px;margin-top:25px}.definition-sense+.definition-sense{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.pos-label{display:inline-block;padding:5px 9px;border-radius:5px;background:#e2edd6;color:var(--green);font-size:12px}.definition-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8!important;margin:14px 0}.definition-source{font-size:11px!important;color:var(--muted);line-height:1.6!important}.definition-sense details{font-size:12px}.definition-sense summary{cursor:pointer}.cell.occupied{cursor:help}@media(max-width:520px){.starter-bar{font-size:11px;gap:7px}.source-credit{font-size:9px;max-width:245px}#meaning-dialog{padding:20px}}

/* v2.1: size the game by viewport height as well as width. */
.playing .topbar{max-width:1200px;padding:12px 20px}
.playing main{max-width:1200px;padding:14px 20px 24px}
.playing .game-header{margin-bottom:12px}
.playing .game-title{font-size:23px;margin-top:4px}
.playing .scoreboard{gap:10px;margin-bottom:8px}
.playing .score-card{padding:8px 14px}
.playing .score-card strong{font-size:24px}
.playing .starter-bar{margin-bottom:8px;gap:6px}
.playing .board-shell{padding:8px}
.playing .board-meta{margin:8px 2px}
.playing .board{container-type:inline-size;gap:3px}
.playing .cell{font-size:clamp(7px,1.8cqw,12px)}
.playing .cell.occupied,.playing .cell.pending{font-size:clamp(16px,5cqw,32px)}
.playing .n15 .cell{font-size:clamp(6px,1.4cqw,10px)}
.playing .n15 .cell.occupied,.playing .n15 .cell.pending{font-size:clamp(12px,3.6cqw,24px)}
.playing .n15{gap:2px}
.playing .rack-panel{padding:16px 12px;margin-bottom:14px}
.playing .rack-top{margin-bottom:12px}
.playing .rack{gap:5px;min-height:0}
.playing .rack-tile{width:calc((100% - 30px)/7);font-size:clamp(19px,2.3vw,26px)}
.playing .hint{margin:10px 0;line-height:1.5}
.playing .actions{grid-template-columns:1fr 1fr}
.playing .actions .primary{grid-column:1/-1}
.playing .actions button{padding:11px 8px;font-size:12px;min-height:40px}
.playing .status-panel{padding:14px;margin-bottom:12px}
.playing .status-panel .eyebrow{display:none}
.playing .status-panel h2{font-size:20px;margin:0 0 6px}
.playing .status-panel p{margin-bottom:6px}
.playing .side-card{padding:14px;margin-bottom:12px}
.playing .legend{grid-template-columns:28px 1fr 28px 1fr;gap:8px;font-size:11px}
.playing .history-card{max-height:200px}
.playing footer{max-width:1160px;padding:14px 0}
@media(min-width:760px){
 .playing .game-layout{grid-template-columns:minmax(0,min(680px,calc(100dvh - 225px))) minmax(260px,340px);justify-content:center;gap:22px;max-width:none;align-items:start}
 .playing aside{display:block;min-width:0}
 .playing .status-panel{display:block}
 .playing .play-area{min-width:0}
}
@media(max-width:759px){
 .playing .topbar{padding:8px 12px}
 .playing .brand{font-size:21px}.playing .brand-mark{width:32px;height:32px;font-size:23px}
 .playing main{padding:10px 8px 20px}
 .playing .game-header{margin-bottom:8px}.playing .game-title{font-size:19px}
 .playing .game-layout{display:block;max-width:520px;margin:auto}
 .playing .score-card{padding:6px 10px}.playing .score-card strong{font-size:21px}
 .playing .starter-bar{font-size:11px}.playing .starter-bar .muted{font-size:9px!important}
 .playing .board-shell{padding:5px;border-radius:9px}
 .playing .rack-panel{padding:10px 8px}
 .playing .rack-tile{font-size:23px;max-width:52px}
 .playing .rack-top{margin-bottom:9px}
 .playing .hint{font-size:10px;margin:7px 0}
 .playing .actions{grid-template-columns:1.1fr 1fr 1fr;gap:5px}
 .playing .actions .primary{grid-column:auto}
 .playing .actions button{font-size:11px;padding:8px 3px}
 .playing aside{display:block}.playing .status-panel{display:none}
 .playing .history-card{max-height:220px}
 .playing .cell sub{font-size:7px;right:2px;bottom:1px}
 .playing .n15 .cell sub{font-size:5px;right:1px;bottom:0}
}
@media(min-width:760px) and (max-height:560px){
 .playing .topbar{padding:6px 16px}.playing .brand small{display:none}
 .playing main{padding-top:8px}.playing .game-title{display:none}
 .playing .game-header{margin-bottom:6px}
 .playing .game-layout{grid-template-columns:minmax(0,calc(100dvh - 170px)) minmax(260px,340px);gap:16px}
}
dialog{max-height:90dvh;overflow:auto}
@media(min-width:760px){.playing .game-layout{grid-template-columns:minmax(0,min(680px,calc(100dvh - 250px))) minmax(260px,340px)}}
@media(min-width:760px) and (max-height:560px){
 .playing .topbar{padding:4px 16px}.playing .brand-mark{width:28px;height:28px;font-size:22px}
 .playing .brand{font-size:21px}.playing .quiet{padding:6px 10px;font-size:11px}
 .playing main{padding-top:4px}.playing .game-header{margin-bottom:4px}
 .playing .game-layout{grid-template-columns:minmax(0,calc(100dvh - 160px)) minmax(260px,340px)}
 .playing .score-card{padding:4px 6px}.playing .score-card span{font-size:10px}.playing .score-card strong{font-size:18px}
 .playing .scoreboard{gap:5px;margin-bottom:5px}
 .playing .starter-bar{flex-wrap:nowrap;font-size:10px;margin-bottom:5px}.playing .starter-bar .muted{display:none}
 .playing .board-meta{font-size:10px;margin:5px 0}
}
@media(max-width:759px){
 .playing .game-title{display:none}
 .playing .board-shell{width:min(100%,max(280px,calc(100dvh - 370px)));margin-inline:auto}
 .playing .rack-tile{max-width:44px}
}

/* Always-visible rules, including touch devices. */
.visible-rules ul{padding-left:18px;margin:0}.visible-rules li{font-size:12px;line-height:1.65;margin:0 0 11px}.visible-rules li:last-child{margin-bottom:0}
.visible-rules strong{color:var(--ink)}.rules-version-note{font-size:12px;background:#fff0c9;padding:10px;border-radius:7px}
.meaning-word-list{display:flex;flex-wrap:wrap;gap:9px}.meaning-word-list button{min-height:44px;font-size:15px}
#meanings-button{font-size:11px;min-height:28px;text-decoration:underline;text-underline-offset:3px;touch-action:manipulation}
.cell.occupied{touch-action:manipulation}.board-meta{align-items:center;gap:6px;flex-wrap:wrap}
@media(max-width:759px){.playing .visible-rules{display:block}.visible-rules li{font-size:13px}.playing .board-shell{width:min(100%,max(280px,calc(100dvh - 390px)))}#meanings-button{font-size:10px}}

/* Dedicated right sidebar for the rules. */
@media(min-width:1100px){
 .playing main{max-width:1580px}
 .playing .topbar{max-width:1580px}
 .playing .game-layout{grid-template-columns:minmax(0,min(680px,calc(100dvh - 250px))) minmax(250px,290px) minmax(270px,330px);gap:20px;align-items:start}
 .playing .game-layout>.visible-rules{grid-column:3;position:sticky;top:16px;max-height:calc(100dvh - 155px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin:0;padding:18px}
 .playing .visible-rules h3{font-size:16px;margin-bottom:16px}
 .playing .visible-rules li{font-size:13px;line-height:1.65}
 .playing footer{max-width:1540px;margin-inline:20px}
}

/* v2.5: readable results, mobile progress and separate letter/score areas. */
.game-result{border:2px solid #718078;background:#eef1eb;border-radius:14px;padding:20px 24px;margin:0 0 18px;color:#233a32}
.game-result.win{color:#12552e;background:#e5f5e9;border-color:#398752}
.game-result.loss{color:#9b2424;background:#fff0ee;border-color:#c8514c}
.game-result .result-kicker{font-size:16px;font-weight:800;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}
.game-result h2{font-size:clamp(27px,3vw,40px);font-weight:900;line-height:1.15;margin-bottom:12px;letter-spacing:-.5px}
.game-result .result-score{font-size:clamp(19px,2vw,26px);font-weight:800;font-variant-numeric:tabular-nums}
.game-result p{line-height:1.55;margin-bottom:8px}.game-result p:last-child{margin:0}
#suggest-hint{font-size:12px;line-height:1.5;max-width:480px}
.notice:has(#suggest:not([hidden])){flex-wrap:wrap;max-width:min(580px,calc(100vw - 24px))}
.playing .status-panel{display:block}
.playing .cell.occupied,.playing .cell.pending{display:block;line-height:1;isolation:isolate}
.playing .cell .tile-letter{position:absolute;left:4%;top:10%;width:72%;height:64%;display:grid;place-items:center;font-size:clamp(14px,4.6cqw,29px);line-height:1}
.playing .cell sub{position:absolute;right:3%;bottom:4%;font-size:clamp(8px,1.9cqw,12px);font-weight:800;line-height:1;color:#243b30;letter-spacing:-.3px}
.playing .n15 .cell .tile-letter{left:0;top:5%;width:70%;height:63%;font-size:clamp(10px,2.8cqw,20px)}
.playing .n15 .cell sub{right:2%;bottom:3%;font-size:clamp(7px,1.6cqw,10px);line-height:1}
.playing .rack-tile{padding:0;line-height:1;container-type:inline-size}
.playing .rack-tile .tile-letter{position:absolute;top:8%;left:4%;width:72%;height:65%;display:grid;place-items:center;font-size:clamp(17px,57cqw,28px);line-height:1}
.playing .rack-tile sub{right:4%;bottom:5%;font-size:clamp(9px,25cqw,12px);font-weight:800;line-height:1;color:#243b30}
@media(max-width:759px){
 .playing .board-shell{width:100%}
 .playing .game-result{padding:16px;margin-bottom:14px}
 .playing .status-panel{margin-top:8px}
 .playing .game-result p{font-size:14px}.playing .game-result .result-score{font-size:20px}
}
/* Reserve a full bottom row for the score, including two-digit values. */
.playing .cell .tile-letter{top:0;left:0;width:100%;height:calc(100% - clamp(8px,1.9cqw,12px))}
.playing .cell sub{bottom:0}
.playing .n15 .cell .tile-letter{top:0;left:0;width:100%;height:calc(100% - clamp(7px,1.6cqw,10px));font-size:clamp(9px,2.8cqw,20px)}
.playing .n15 .cell sub{bottom:0}

/* Shared navigation between the two word games. */
.game-tabs{display:flex;gap:5px;align-items:center}.game-tabs a{display:block;padding:9px 13px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:650}.game-tabs a[aria-current=page]{background:var(--green);color:#fff;border-color:var(--green)}.topbar-actions{display:flex;align-items:center;gap:10px}.dilmar-entry{margin:26px auto 0!important;font-size:14px!important}.dilmar-entry a{color:var(--green);text-decoration:underline;text-underline-offset:3px}@media(max-width:520px){.game-tabs a{font-size:11px;padding:8px 10px}.topbar-actions{gap:5px;flex-wrap:wrap;justify-content:flex-end}.playing .topbar{gap:8px}.topbar-actions>.quiet{font-size:10px;padding:8px}}

/* Visible new-game action and contextual move instructions. */
body:not(.dilmar-page)>.topbar{position:sticky;top:0;z-index:15;background:var(--paper);gap:12px}
#new-button{order:3;min-height:44px;padding:12px 16px;font-size:13px;white-space:nowrap;flex-shrink:0;background:var(--green);color:#fff;box-shadow:0 3px 0 #0c372e}
#new-button:hover{background:#23644e}
.playing #hint{padding:12px;border:1px solid #bccf9f;border-left:4px solid var(--green);border-radius:8px;background:#edf3df;color:#244534;text-align:left;font-size:13px;font-weight:650;line-height:1.6;margin:12px 0}
@media(max-width:600px){
 body:not(.dilmar-page)>.topbar{padding:9px 10px;align-items:center}
 body:not(.dilmar-page) .topbar-actions{display:grid;grid-template-columns:auto auto;gap:7px;justify-items:stretch}
 body:not(.dilmar-page) .topbar-actions .game-tabs{grid-column:1/-1;justify-content:flex-end}
 body:not(.dilmar-page) .topbar-actions #new-button{grid-column:2;grid-row:2;font-size:12px;padding:10px;min-height:44px}
 body:not(.dilmar-page) .topbar-actions #rules-button{grid-column:1;grid-row:2;font-size:10px;padding:7px}
 body:not(.dilmar-page) .brand{font-size:20px;gap:7px;min-width:0}
 body:not(.dilmar-page) .brand-mark{display:none}
 body:not(.dilmar-page) .brand small{font-size:7px;letter-spacing:.6px}
 .playing #hint{font-size:12px;padding:10px}
}
