@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');

:root{font-family:"DM Sans","Segoe UI",sans-serif;color:#303b32;background:#f7f6f0;font-synthesis:none;--green:#2b4937;--muted:#85877b;--line:#e5e5da;--cream:#f7f6f0}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #a77b38;outline-offset:4px}button{transition:background .18s,transform .18s,box-shadow .18s}button svg{flex-shrink:0}a{color:inherit}button:disabled{opacity:.4}button:not(:disabled):active{transform:translateY(1px)}
.site-shell{max-width:1280px;margin:0 auto;padding:0 52px}.topbar{height:96px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;text-decoration:none;font-weight:650;font-size:30px;letter-spacing:-1.6px}.brand-dot{color:#8c9a6e}.brand-mark{display:inline-flex;position:relative;width:37px;height:40px;align-items:center;justify-content:center;margin-right:12px;background:var(--green);color:#f2ecd7;border-radius:7px;box-shadow:0 3px 0 #183523;transform:rotate(-7deg);font:30px Georgia;letter-spacing:-2px;padding-bottom:5px}.brand-mark span{position:absolute;font:9px "DM Sans",sans-serif;bottom:4px;right:5px;letter-spacing:0}.brand-tagline{font-size:9px;letter-spacing:1.6px;color:#878b7f;padding-top:6px}.topbar nav{margin-left:auto;display:flex;gap:26px;align-items:center}.text-button{display:flex;align-items:center;gap:9px;background:none;border:0;font-size:12px;padding:10px 0}.text-button:hover{color:#6e8656}.new-game-button{border:1px solid #cdd2c3;background:transparent;border-radius:7px;display:flex;gap:7px;align-items:center;font-size:12px;padding:10px 15px}.new-game-button:hover{background:#ebeee4}
.intro{display:flex;justify-content:space-between;align-items:center;padding:35px 0 30px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;display:flex;align-items:center;gap:8px;color:#7a8370}.eyebrow>span{width:5px;height:5px;background:#899572;border-radius:50%}h1{font-family:"Libre Caslon Display",Georgia,serif;font-weight:400;font-size:48px;line-height:1.1;letter-spacing:-1.5px;margin:13px 0 0}h1 em{font-style:normal;color:#7b876c;margin-left:12px}.intro-aside{text-align:right;padding-top:18px;flex-shrink:0}.mode-pill{display:inline-flex;align-items:center;gap:8px;font-size:10px;border:1px solid #dedfd3;border-radius:20px;padding:8px 12px;background:#f0f1e8}.mode-pill>span{color:#a4a697;margin:0 2px}.intro-aside p{font-size:10px;color:#929487;margin:10px 1px 0}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start}.play-area{min-width:0}.board-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-label{font-size:9px;font-weight:650;letter-spacing:1.5px}.turn-label{font-size:10px;display:flex;align-items:center;gap:6px;color:#818777}.live-dot{display:inline-block;width:5px;height:5px;background:#77935a;border-radius:50%;flex-shrink:0}.tiny-divider{color:#c3c5b8;margin:0 4px}
.board-frame{padding:9px 15px 15px 8px;background:#e9ebdf;border:1px solid #dde0d1;border-radius:11px;box-shadow:0 3px 0 #d7dbc9,0 8px 24px #36482509}.column-labels{display:grid;grid-template-columns:repeat(15,1fr);padding-left:19px;height:20px;align-items:start;text-align:center;font-size:8px;color:#909781}.board-with-labels{display:flex}.row-labels{width:19px;flex-shrink:0;display:grid;grid-template-rows:repeat(15,1fr);align-items:center;text-align:center;font-size:8px;color:#909781}.board{flex:1;display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:3px;aspect-ratio:1}.square{border:0;border-radius:3px;background:#f7f8ed;position:relative;padding:0;display:flex;align-items:center;justify-content:center;min-width:0;box-shadow:0 1px 1px #38432809}.square:disabled{opacity:1}.square:not(:disabled):hover{box-shadow:inset 0 0 0 2px #728668;background:#e2e8d7}.square.tw{background:#c68372;color:#fff8e9}.square.dw{background:#e6b9a2;color:#915d4b}.square.tl{background:#78999b;color:#f7faf3}.square.dl{background:#c1d4cb;color:#54796d}.premium-label{font-size:8px;font-weight:600;letter-spacing:.5px}.center-star{font-size:24px;color:#a06750}.square.occupied{background:linear-gradient(135deg,#f7e5bd,#e8cb94);box-shadow:0 2px 0 #bca36f,inset 0 1px 0 #fff5dc;color:#3e4733;border:1px solid #dbbd88}.square.draft{background:linear-gradient(135deg,#f8e5b4,#efd29b);box-shadow:0 0 0 2px #5d7751,0 3px 0 #b79b66;z-index:1}.tile-letter{font-size:clamp(13px,1.7vw,24px);font-weight:550;line-height:1}.blank-letter{font-style:italic;color:#687451}.tile-points{position:absolute;right:4px;bottom:2px;font-size:8px;font-weight:500}.board-legend{display:flex;justify-content:center;gap:21px;padding:16px 0 18px}.board-legend>span{display:flex;align-items:center;gap:6px;font-size:9px;color:#828776}.board-legend i{width:8px;height:8px;border-radius:2px}.legend-tw{background:#c68372}.legend-dw{background:#e6b9a2}.legend-tl{background:#78999b}.legend-dl{background:#c1d4cb}
.rack-panel{background:#efeee5;border:1px solid #e2e3d6;border-radius:10px;padding:17px 19px 0}.rack-heading{display:flex;align-items:center;justify-content:space-between}.rack-heading>div{display:flex;align-items:center;gap:12px}.rack-instruction{font-size:9px;color:#8e9181}.rack-count{font-size:9px;color:#8d907e}.rack-play-row{display:flex;gap:25px;align-items:center;padding:19px 0}.tile-rack{display:flex;gap:7px;flex:1;min-width:0}.rack-tile{height:53px;width:46px;flex-shrink:1;border:1px solid #d8c293;border-radius:5px;position:relative;background:linear-gradient(130deg,#f8e9c7,#ecdaaf);box-shadow:0 3px 0 #bda97d,0 5px 7px #57442212;color:#3c4532;font-size:27px;font-weight:500;display:flex;align-items:center;justify-content:center;padding:0;user-select:none;touch-action:manipulation}.rack-tile sub{position:absolute;bottom:6px;right:5px;font-size:9px;line-height:1;font-weight:500}.rack-tile:hover{transform:translateY(-3px);box-shadow:0 3px 0 #bda97d,0 6px 10px #57442225}.rack-tile.selected{transform:translateY(-6px);box-shadow:0 0 0 2px #527049,0 4px 0 #bda97d,0 9px 13px #57442220}.rack-tile.staged{opacity:.28;border-style:dashed;box-shadow:none;background:#e4dfcf}.primary-button{background:var(--green);border:1px solid var(--green);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:16px;color:#fbfaf0;padding:13px 19px;font-weight:500;font-size:12px;white-space:nowrap}.primary-button:not(:disabled):hover{background:#3a5d43;box-shadow:0 3px 10px #203d2718}.play-button{min-height:45px}.rack-actions{border-top:1px solid #dedfd0;display:flex;align-items:center;gap:18px;height:44px}.rack-actions button{background:none;border:0;padding:4px 0;display:flex;align-items:center;gap:6px;font-size:10px;color:#6d7664}.rack-actions button:not(:disabled):hover{color:#293e27}.action-divider{width:1px;height:12px;background:#d6d9c9;margin:0 1px}.move-preview{margin-left:auto;font-size:9px;color:#808672;display:flex;align-items:center;gap:9px}.move-preview strong{font-size:17px;color:#445239}.move-preview small{font-size:9px;font-weight:400}.feedback{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;color:#88917b;font-size:10px;text-align:center;padding:8px 0}.feedback.is-error{color:#a55b41}.save-warning{font-size:11px;color:#9c563e;text-align:center;padding:8px}
.sidebar{display:flex;flex-direction:column;gap:18px;padding-top:26px}.score-card{border:1px solid var(--line);background:#fcfcf7;border-radius:10px;overflow:hidden}.card-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 19px 15px}.card-heading svg{color:#8a9776}.score-card .section-label{font-size:8px;letter-spacing:1.35px}.player-row{margin:0 12px;padding:13px 10px;display:flex;align-items:center;gap:11px;border-radius:7px}.player-row.active{background:#ebefdf}.avatar{height:38px;width:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:17px;flex-shrink:0}.avatar-0{background:#d2ddbd;color:#566842}.avatar-1{background:#e9d6c8;color:#97745e}.player-name{display:flex;flex-direction:column;gap:5px}.player-name strong{font-size:12px;font-weight:600}.player-name>span{font-size:9px;color:#8a907c}.active .player-name>span{color:#748463}.player-score{margin-left:auto;text-align:center;font-size:29px;line-height:1;font-weight:500;letter-spacing:-1px}.player-score>span{display:block;font-size:6px;letter-spacing:1.3px;color:#90957f;margin-top:5px}.score-card-footer{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);margin-top:12px;padding:13px 19px;font-size:9px;color:#748366}.score-card-footer>span:last-child{margin-left:auto;font-size:8px;color:#9b9d90}
.bag-card{position:relative;overflow:hidden;border-radius:9px;background:#ececdf;min-height:121px;padding:20px}.bag-copy>.section-label{font-size:8px}.bag-copy>div{display:flex;align-items:center;gap:12px;margin-top:12px}.bag-copy strong{font-size:36px;font-weight:500;letter-spacing:-1.5px;line-height:1}.bag-copy>div>span{font-size:10px;color:#929581;line-height:1.6}.bag-art{position:absolute;width:108px;height:104px;right:9px;bottom:3px}.history-card{border:1px solid var(--line);border-radius:10px;background:#fafaf4;min-height:230px}.move-count{font-size:8px;color:#959b86;background:#f0f0e7;border-radius:10px;padding:4px 7px}.empty-history{text-align:center;padding:16px 10px 24px}.mini-tiles{display:flex;justify-content:center;gap:3px;margin:0 0 17px}.mini-tiles>span{position:relative;display:flex;align-items:center;justify-content:center;height:32px;width:29px;border:1px solid #dfd9c5;border-radius:4px;background:#f1ebd9;font-size:17px;color:#a59b7d;box-shadow:0 2px 0 #d7cfb8}.mini-tiles>span:first-child{transform:rotate(-13deg) translateY(3px)}.mini-tiles>span:last-child{transform:rotate(12deg) translateY(3px)}.mini-tiles sub{font-size:6px;position:absolute;bottom:4px;right:3px}.empty-history h3{font-family:"Libre Caslon Display",Georgia,serif;font-size:24px;line-height:1.14;font-weight:400;color:#737e65;margin:0 0 11px}.empty-history p{font-size:10px;line-height:1.7;margin:0;color:#9c9f90}.move-list{list-style:none;padding:0 18px;margin:0 0 7px;max-height:250px;overflow:auto}.move-list li{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid #e9eade}.move-avatar{font-size:10px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.move-list li>div{display:flex;flex-direction:column;gap:5px;min-width:0}.move-list strong{font-size:11px;font-weight:600;overflow-wrap:anywhere}.move-list li>div>span{font-size:8px;color:#959b88}.move-list li>div>span>span{margin:0 4px}.move-list b{margin-left:auto;font-size:16px;color:#688253;font-weight:500}.tip-card{display:flex;gap:12px;padding:3px 3px 0}.tip-icon{padding-top:3px;color:#7a8b61}.tip-card .section-label{font-size:7px;letter-spacing:1.1px;color:#889376}.tip-card p{font-family:"Libre Caslon Display",Georgia,serif;font-size:21px;margin:7px 0;color:#5d7050}.tip-card>div>span:last-child{font-size:10px;line-height:1.8;color:#959b88;display:block;max-width:215px}.friendly-note{display:flex;align-items:center;gap:6px;background:none;border:0;border-top:1px solid var(--line);padding:15px 0 0;font-size:8px;color:#8a917f;text-align:left}.friendly-note:hover{color:#43573e}.friendly-note svg:last-child{margin-left:auto}
.site-footer{margin-top:17px;border-top:1px solid var(--line);padding:22px 0 28px;display:flex;justify-content:space-between;color:#9da292;font-size:9px}.footer-script{font-family:Georgia,serif;font-style:italic;color:#6b7d59;font-size:13px}.site-footer>span:last-child{display:flex;align-items:center;gap:15px}.site-footer i{font-size:23px;font-style:normal;color:#8b9876}.handoff{min-height:116px;display:flex;gap:12px;align-items:center}.handoff-icon{background:#dde4cd;padding:11px;border-radius:50%;color:#647953}.handoff strong{font-size:14px;font-weight:550}.handoff p{font-size:11px;color:#899379;margin:6px 0}.handoff .primary-button{margin-left:auto}
.modal-backdrop{position:fixed;inset:0;background:#23332766;backdrop-filter:blur(5px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .2s}.modal{background:var(--cream);border:1px solid #fff9;border-radius:18px;box-shadow:0 24px 100px #14281d38;width:510px;max-width:100%;max-height:90dvh;overflow:auto;position:relative;padding:34px;outline:none}.modal-close{position:absolute;right:18px;top:18px;border:0;background:#e9ebdf;border-radius:50%;width:31px;height:31px;display:flex;align-items:center;justify-content:center}.modal-emblem{display:flex;align-items:center;justify-content:center;background:#e5ead9;color:#657a51;border-radius:50%;height:56px;width:56px;margin-bottom:23px}.modal h2{font-family:"Libre Caslon Display",Georgia,serif;font-size:40px;font-weight:400;line-height:1.08;margin:12px 0 15px;letter-spacing:-.5px}.modal p{font-size:12px;line-height:1.8;color:#818975}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.secondary-button{background:transparent;border:1px solid #cfd5c4;border-radius:6px;padding:12px 18px;font-size:12px}.secondary-button:hover{background:#e8eddd}.modal-primary{width:100%;margin-top:24px}.rules-list{font-size:12px;line-height:1.7;padding-left:21px;color:#818975}.rules-list li{padding-left:5px;margin-top:13px}.rules-list strong{color:#40553b}.swap-rack{display:flex;gap:10px;justify-content:center;padding:20px 0 8px}.alphabet{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:23px}.alphabet .rack-tile{width:100%;height:43px;font-size:22px}.valid.modified:not([type=checkbox]){outline:1px solid #26b050}.invalid{outline:1px solid #e50000}.validation-message{color:#e50000}
@keyframes fade-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1200px){.game-layout{grid-template-columns:minmax(0,710px) 300px;justify-content:space-between}.board{gap:4px}.sidebar{gap:20px}.rack-tile{width:51px;height:55px}}
@media(max-width:1150px){.site-shell{padding:0 32px}.game-layout{gap:25px;grid-template-columns:minmax(0,1fr) 270px}h1{font-size:42px}h1 em{display:block;margin:2px 0 0}.intro{padding:25px 0}.rack-instruction{display:none}.rack-play-row{gap:15px}.rack-tile{font-size:24px;height:46px}.primary-button{padding:12px 14px;font-size:11px;gap:10px}.rack-actions{gap:13px}.bag-art{right:0}.brand-tagline{font-size:8px}.tile-points{font-size:7px;right:3px}}
@media(max-width:850px){.site-shell{padding:0 24px}.brand-tagline{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 230px;gap:20px}.sidebar{gap:15px}.board-frame{padding:7px 9px 9px 4px}.column-labels{padding-left:16px;height:16px;font-size:7px}.row-labels{width:16px;font-size:7px}.board{gap:2px}.premium-label{font-size:6px;letter-spacing:0}.board-legend{gap:10px}.board-legend>span{font-size:7px;gap:4px}.board-legend i{height:6px;width:6px}.center-star{font-size:18px}.rack-panel{padding:14px 12px 0}.rack-play-row{flex-wrap:wrap;gap:16px}.tile-rack{justify-content:center;flex-basis:100%}.rack-tile{height:47px;max-width:45px;flex:1}.play-button{width:100%;min-height:37px}.rack-actions{gap:12px}.rack-actions button{font-size:0;gap:0}.move-preview{font-size:8px}.card-heading{padding:16px 13px 13px}.section-label{font-size:8px}.player-row{margin:0 7px;padding:12px 7px;gap:8px}.avatar{width:31px;height:31px;font-size:15px}.player-name strong{font-size:11px}.player-name>span{font-size:8px}.player-score{font-size:25px}.score-card-footer{padding:12px;font-size:8px}.score-card-footer>span:last-child{font-size:7px}.bag-card{padding:17px 14px}.bag-art{width:88px}.bag-copy strong{font-size:32px}.bag-copy>div{gap:8px}.bag-copy>div>span{font-size:8px}.tip-card .section-label{font-size:6px}.tip-card p{font-size:19px}.tip-card>div>span:last-child{font-size:9px}.friendly-note{font-size:7px;gap:4px}.handoff{flex-wrap:wrap;padding:20px 0}.handoff .primary-button{width:100%}.handoff strong{font-size:12px}}
@media(max-width:650px){.site-shell{padding:0 18px}.topbar{height:76px;gap:10px}.brand{font-size:25px}.brand-mark{width:31px;height:34px;font-size:26px;margin-right:9px}.topbar nav{gap:14px}.text-button{font-size:0;gap:0}.text-button svg{width:21px;height:21px}.new-game-button{font-size:10px;padding:8px 10px;gap:4px}.intro{padding:25px 0 24px;align-items:flex-start}.eyebrow{font-size:7px;letter-spacing:1.5px}h1{font-size:38px;margin-top:12px}.intro-aside{padding-top:0}.mode-pill{font-size:0;gap:0;padding:7px}.mode-pill>span{display:none}.mode-pill svg{width:15px;height:15px}.intro-aside p{display:none}.game-layout{display:flex;flex-direction:column;gap:10px}.play-area{width:100%}.board-topline{margin-bottom:11px}.section-label{font-size:9px}.turn-label{font-size:9px}.board-frame{padding:7px 10px 11px 4px}.board{gap:2px}.premium-label{font-size:6px}.tile-letter{font-size:16px}.tile-points{font-size:6px;bottom:2px;right:2px}.board-legend{justify-content:space-between;padding:15px 6px 18px;gap:5px}.board-legend>span{font-size:8px}.rack-heading .section-label{font-size:8px}.rack-play-row{padding:17px 0 14px;gap:15px}.tile-rack{gap:7px}.rack-tile{height:49px;max-width:49px;font-size:27px}.rack-tile sub{font-size:8px;bottom:5px;right:4px}.play-button{font-size:12px;min-height:42px}.rack-actions{height:43px;gap:14px}.rack-actions button{font-size:9px;gap:5px}.rack-actions button svg{width:14px;height:14px}.move-preview{font-size:8px;gap:5px}.move-preview strong{font-size:15px}.feedback{font-size:9px;line-height:1.6;padding:12px 5px}.sidebar{padding:0;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:14px}.score-card{grid-column:1 / -1}.score-card .card-heading{padding:16px 17px 12px}.player-row{display:inline-flex;width:calc(50% - 12px);margin:0 5px;vertical-align:top;padding:12px 10px;gap:9px}.player-name strong{font-size:11px}.player-name>span{font-size:8px}.player-score{font-size:24px}.avatar{width:30px;height:30px;font-size:14px}.score-card-footer{padding:12px 18px;font-size:9px}.score-card-footer>span:last-child{font-size:8px}.bag-card{min-height:145px;padding:17px;grid-column:1}.bag-art{width:78px;height:80px;right:0;bottom:0;opacity:.8}.bag-copy>div>span{font-size:9px}.bag-copy strong{font-size:32px}.bag-copy>div{position:relative;z-index:1;gap:8px}.history-card{grid-column:1 / -1;grid-row:3;min-height:200px}.tip-card{grid-column:2;grid-row:2;gap:8px;padding-top:11px}.tip-icon svg{width:18px}.tip-card .section-label{font-size:6px;line-height:1.8;display:block;letter-spacing:.8px}.tip-card p{font-size:20px;line-height:1.1;margin:9px 0}.tip-card>div>span:last-child{font-size:9px;line-height:1.6}.friendly-note{grid-column:1 / -1;font-size:9px;padding:12px 0 0}.site-footer{margin-top:24px;padding:20px 0}.site-footer>span:last-child{font-size:0;gap:0}.site-footer i{font-size:22px}.modal{padding:27px 24px}.modal h2{font-size:34px}.modal-backdrop{padding:16px}.rules-list{font-size:11px}.swap-rack{gap:7px}.swap-rack .rack-tile{height:43px;font-size:23px}.alphabet{gap:8px}.alphabet .rack-tile{font-size:20px;height:38px}.handoff .primary-button{width:auto}.handoff{gap:10px}.handoff-icon{padding:8px}.handoff p{font-size:10px}}
.board{grid-template-rows:repeat(15,minmax(0,1fr))}
.square{overflow:hidden}
.language-switch{display:flex;gap:2px;background:#ebede2;border:1px solid #dee2d3;padding:3px;border-radius:7px}
.locale-fr{display:none}
html[lang=fr] .locale-en{display:none}
html[lang=fr] .locale-fr{display:inline}
.language-switch button{border:0;background:transparent;border-radius:4px;font-size:10px;font-weight:600;color:#87917c;padding:6px 8px}
.language-switch button.active{background:#fbfcf5;color:#2b4937;box-shadow:0 1px 3px #28372312}
.language-switch button:not(.active):hover{color:#2b4937;background:#e0e6d5}
.tile-set-note{border-top:1px solid var(--line);padding-top:14px}
.dictionary-form{margin:24px 0}
.dictionary-form label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}
.dictionary-form>div{display:flex;gap:10px}
.dictionary-form input{min-width:0;width:100%;border:1px solid #aebb9f;background:#fffef8;border-radius:6px;padding:12px;font:16px "DM Sans",sans-serif;color:#2b4937}
.dictionary-form input:focus-visible{outline:3px solid #a77b38;outline-offset:2px}
.lookup-result{display:flex;align-items:flex-start;gap:10px;border-radius:8px;padding:15px;font-size:12px;overflow-wrap:anywhere}
.lookup-result.valid-word{background:#dce8c9;color:#2b4937}
.lookup-result.invalid-word{background:#f2ded4;color:#873b28}
.lookup-result svg{flex-shrink:0}
.lookup-result p{margin:7px 0 0;font-size:10px}
.avatar-2{background:#c7dce4;color:#345968}
.avatar-3{background:#ded0e7;color:#654674}
.computer-turn{display:flex;gap:14px;align-items:center;min-height:118px;padding:16px 0}
.computer-avatar{display:flex;align-items:center;justify-content:center;background:#d5dfc7;color:#375335;border-radius:13px;width:52px;height:52px;flex-shrink:0}
.computer-turn strong{font-size:14px;font-weight:600}
.computer-turn p{font-size:11px;margin:7px 0 0;color:#59674e}
.computer-turn .primary-button,.thinking-dots{margin-left:auto}
.thinking-dots{display:flex;gap:5px;padding:0 12px}
.thinking-dots i{height:6px;width:6px;border-radius:50%;background:#5b7647;animation:thinking 1s infinite alternate}
.thinking-dots i:nth-child(2){animation-delay:.25s}.thinking-dots i:nth-child(3){animation-delay:.5s}
@keyframes thinking{from{opacity:.3;transform:translateY(0)}to{opacity:1;transform:translateY(-5px)}}
.setup-count{display:flex;align-items:center;justify-content:space-between;margin:23px 0 17px;font-size:12px;font-weight:600}
.setup-count>div{display:flex;background:#e2e8d8;border-radius:7px;padding:3px;gap:3px}
.setup-count button{background:transparent;border:0;width:37px;height:31px;border-radius:5px;font-weight:600}
.setup-count button.active{background:#2b4937;color:#fff}
.setup-players{border:1px solid #d4ddc7;border-radius:8px;overflow:hidden}
.setup-player{display:flex;gap:10px;align-items:center;padding:12px;background:#f0f2e8;flex-wrap:wrap}
.setup-player+.setup-player{border-top:1px solid #d4ddc7}
.setup-player .avatar{width:29px;height:29px;font:12px "DM Sans",sans-serif}
.setup-player label{font-size:11px;font-weight:600;margin-right:auto}
.setup-player select{font:11px "DM Sans",sans-serif;color:#35482e;border:1px solid #bbc9ae;background:#fffef7;padding:8px;border-radius:5px;min-width:100px}
.setup-player select:focus-visible{outline:3px solid #a77b38;outline-offset:2px}
.setup-player .level-select{min-width:98px}
.modal .setup-error{color:#973c2c;font-weight:600}
:root{--muted:#5c6a51;--line:#d7ddcd}
.brand-tagline,.intro-aside p,.turn-label,.rack-instruction,.rack-count,.board-legend>span,.player-name>span,.player-row.active .player-name>span,.player-score>span,.score-card-footer,.score-card-footer>span:last-child,.bag-copy>div>span,.empty-history p,.move-count,.move-list li>div>span,.tip-card .section-label,.tip-card>div>span:last-child,.friendly-note,.site-footer,.modal p,.rules-list,.move-preview{color:#5b6851}
.eyebrow{color:#556749;font-weight:700}
.section-label{color:#405335}
.board-frame{background:#dce4d0;border-color:#b8c7a7;box-shadow:0 3px 0 #b7c7a5,0 8px 24px #3648250e}
.column-labels,.row-labels{color:#4d6340;font-weight:600}
.square{background:#fbfcf3;box-shadow:0 1px 1px #2a43251c}
.square.tw:not(.occupied),.legend-tw{background:#a65543;color:#fffaf0}
.square.dw:not(.occupied),.legend-dw{background:#e4ac8d;color:#583120}
.square.tl:not(.occupied),.legend-tl{background:#426f72;color:#fff}
.square.dl:not(.occupied),.legend-dl{background:#b6d0c2;color:#244b3b}
.premium-label{font-weight:700}
.square.draft[draggable=true]{cursor:grab}
.square.draft[draggable=true]:active{cursor:grabbing}
.square.draft.selected{box-shadow:inset 0 0 0 2px #2f582e,0 0 0 2px #2f582e,0 3px 0 #ab8950}
.square.occupied:not(.draft){cursor:default}
.rack-tile.staged{opacity:.5}
.center-star{color:#733821}
.rack-panel{background:#e9edde;border-color:#c7d2b9}
.rack-actions{border-color:#cbd5bd}
.rack-actions button{color:#435738;font-weight:550}
.feedback{color:#536b43}
.feedback.is-error,.save-warning{color:#993f2d}
.player-row.active{background:#dce8c9;box-shadow:inset 3px 0 #547141}
.player-score{color:#253f2b}
.score-card,.history-card{border-color:#cdd6bf}
.bag-card{background:#e1e6d3}
.empty-history h3,.tip-card p{color:#485f38}
.mini-tiles>span{color:#6c5d36;border-color:#c9bd9b}
.modal .rules-list{color:#57664c}
.language-switch button{color:#526746}
.new-game-button{border-color:#aebb9f}
@media(max-width:650px){.setup-player{gap:8px;padding:10px}.setup-player select{min-width:94px;font-size:10px}.setup-player .level-select{min-width:90px}.setup-player label{font-size:10px}.computer-turn strong{font-size:12px}.computer-turn p{font-size:10px}.player-row{margin-bottom:5px}}
@media(max-width:360px){.setup-player .level-select{margin-left:37px;flex:1}.rack-actions button,html[lang=fr] .rack-actions button{font-size:0;gap:0}.rack-actions{gap:19px}}
html[lang=fr] .brand-tagline{letter-spacing:1px}
html[lang=fr] .rack-heading>div{gap:9px}
html[lang=fr] .rack-instruction{font-size:8px}
html[lang=fr] .score-card-footer{font-size:8px}
@media(min-width:1200px){.game-layout{grid-template-columns:minmax(0,710px) 300px;gap:40px;justify-content:center}.intro-aside{margin-left:20px}}
@media(max-width:1050px){.brand-tagline{display:none}}
@media(max-width:650px){.topbar nav{gap:9px}.language-switch button{padding:5px 6px;font-size:9px}.brand{font-size:23px}.new-game-button{font-size:0;padding:8px}.new-game-button svg{width:17px;height:17px}.text-button span{display:none}html[lang=fr] .rack-actions{gap:10px}html[lang=fr] .rack-actions button{font-size:8px;gap:3px}html[lang=fr] .player-row{gap:6px;padding:12px 7px}html[lang=fr] .player-name>span{font-size:7px}html[lang=fr] .handoff .primary-button{width:100%}}
@media(max-width:360px){.rack-actions button,html[lang=fr] .rack-actions button{font-size:0;gap:0}.rack-actions,html[lang=fr] .rack-actions{gap:15px}.setup-player .level-select{margin-left:37px;flex:1}.tile-letter{font-size:12px}.tile-points{font-size:5px;right:1px;bottom:1px}.center-star{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
