:root{--bg: #f5f2ea;--surface: #ffffff;--ink: #23201b;--muted: #6b6357;--line: #ddd5c6;--accent: #7a1f2b;--accent-ink: #ffffff;--tw: #d9534f;--dw: #e8a29b;--tl: #4a80b4;--dl: #a9c7e0;--plain: #e7dfce;--tile: #f2d9a8;--tile-edge: #c9a86b;--board-frame: #2f5d52;font-family:Segoe UI,system-ui,-apple-system,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.banner{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--accent);color:var(--accent-ink)}.banner-brand{font-weight:700;font-size:1.15rem;letter-spacing:.04em}.banner-nav{display:flex;gap:.5rem}.banner-link{color:var(--accent-ink);text-decoration:none;padding:.35rem .8rem;border-radius:999px;font-size:.95rem}.banner-link:hover{background:#ffffff26}.banner-link--active{background:#ffffff38;font-weight:600}.page{max-width:1100px;margin:0 auto;padding:1.5rem}.prose{max-width:640px;line-height:1.6}.prose h1{margin-top:0}.prose a{color:var(--accent)}.player-choices{border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;max-width:260px}.player-choice{display:flex;align-items:center;gap:.6rem;cursor:pointer}.rule-section{border:1px solid var(--line);border-radius:10px;padding:.75rem 1.25rem 1rem;margin:0 0 1rem;max-width:480px;display:flex;flex-direction:column;gap:.75rem}.rule-section legend{font-weight:700;padding:0 .4rem}.rule-row{display:flex;flex-direction:column;gap:.35rem}.rule-row-title{font-size:.85rem;font-weight:600;color:var(--muted)}.rule-row-options{display:flex;flex-wrap:wrap;gap:.4rem 1rem}.rule-option{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.95rem}.rule-option input:disabled+span{color:var(--muted);opacity:.6}.rule-checkbox{font-weight:600}.form-warning{color:#9a6700;background:#fff4d6;border:1px solid #e8c766;border-radius:8px;padding:.5rem .75rem;font-size:.9rem;max-width:480px}.button{margin-top:1.25rem;background:var(--accent);color:var(--accent-ink);border:none;border-radius:8px;padding:.6rem 1.4rem;font-size:1rem;cursor:pointer}.button:disabled{opacity:.55;cursor:default}.button--ghost{background:transparent;color:var(--accent);border:1px solid var(--accent);margin-top:0;padding:.4rem .9rem;font-size:.9rem}.link-button{background:none;border:none;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:.9rem;padding:0}.link-button:disabled{opacity:.5;cursor:default}.form-error{color:var(--tw);font-size:.9rem}.game{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}@media(max-width:900px){.game{grid-template-columns:1fr}}.game-heading{display:flex;align-items:center;gap:.6rem}.game-heading h1{margin:0 0 .75rem;font-size:1.4rem}.game-id{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--surface);border:1px solid var(--line);padding:0 .4rem;border-radius:6px}.ruleset-badge{align-self:flex-start;background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;margin-bottom:.75rem}.conn-dot{width:10px;height:10px;border-radius:50%;background:#e0a800;margin-bottom:.75rem;animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.3}}.board{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;background:var(--board-frame);padding:6px;border-radius:8px;aspect-ratio:1 / 1;width:100%;max-width:620px;-webkit-user-select:none;user-select:none}.board--disabled{opacity:.85}.cell{position:relative;border:none;padding:0;margin:0;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:700;color:#ffffffd9;cursor:pointer;border-radius:2px}.cell:disabled{cursor:default}.cell--plain{background:var(--plain)}.cell--tw{background:var(--tw)}.cell--dw{background:var(--dw)}.cell--tl{background:var(--tl)}.cell--dl{background:var(--dl)}.cell--dw.cell--center{background:var(--dw)}.cell-premium{font-size:.5rem;letter-spacing:-.03em}.cell--plain .cell-premium,.cell--dl .cell-premium,.cell--dw .cell-premium{color:#00000073}.cell-star{font-size:.9rem;color:#00000080}.cell--anchor{outline:3px solid #1b7f3b;outline-offset:-3px;z-index:2}.cell--path{outline:2px solid rgba(27,127,59,.6);outline-offset:-2px}.tile{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tile);border:1px solid var(--tile-edge);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--ink);box-shadow:inset 0 -2px #0000001f}.tile-letter{font-size:.95rem;font-weight:800;line-height:1;text-transform:uppercase}.tile-value{position:absolute;right:1px;bottom:0;font-size:.42rem;font-weight:700;color:var(--muted)}.tile-blank-label{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:.32rem;letter-spacing:.02em;color:var(--muted);text-transform:lowercase}.tile--blank .tile-letter{color:#9a9488}.tile--ghost{background:#fbeecb;border-style:dashed;opacity:.9}.entry{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem;max-width:620px}.entry-hint{font-size:.9rem;color:var(--muted)}kbd{background:var(--surface);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 .35rem;font-family:inherit;font-size:.85em}.entry-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.dir-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.dir-toggle button{border:none;background:var(--surface);padding:.5rem .7rem;cursor:pointer;font-size:.85rem}.dir-toggle button.is-active{background:var(--accent);color:var(--accent-ink)}.dir-toggle--locked{opacity:.7}.dir-toggle button:disabled{cursor:default}.entry-input{flex:1;min-width:200px;padding:.55rem .7rem;font-size:1rem;letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--line);border-radius:8px}.entry-row .button{margin-top:0}.entry-status{min-height:1.2rem;font-size:.88rem}.projected{color:var(--muted)}.projected strong{color:var(--ink)}.skip-menu{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.9rem;padding:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:8px}.entry-error{margin:0}.game-over{margin-top:1rem;font-weight:600}.game-side{display:flex;flex-direction:column;gap:1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1rem}.panel h2{margin:0 0 .6rem;font-size:1rem}.panel--muted{background:transparent}.scoreboard{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.scoreboard li{display:flex;justify-content:space-between;padding:.35rem .5rem;border-radius:6px}.scoreboard li.is-current{background:#eef6ef;font-weight:600;outline:1px solid #b9dcc0}.scoreboard .score{font-variant-numeric:tabular-nums}.log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:320px;overflow-y:auto}.log-row{display:grid;grid-template-columns:4.5rem minmax(0,1fr) 2.6rem 2.6rem;gap:.4rem;align-items:baseline;padding:.3rem .4rem;border-radius:6px;font-size:.88rem}.log-word{overflow:hidden;text-overflow:ellipsis}.log-points,.log-total{text-align:right}.log-row:nth-child(odd){background:#00000008}.log-player{color:var(--muted)}.log-word{font-weight:600;text-transform:uppercase;letter-spacing:.03em}.log-row--exchange .log-word,.log-row--challenge_lost .log-word{font-weight:400;font-style:italic;text-transform:none;letter-spacing:0;color:var(--muted)}.log-points{color:var(--muted);font-variant-numeric:tabular-nums}.log-total{font-weight:700;font-variant-numeric:tabular-nums}.log-empty,.log-row--play .log-word:empty:before{color:var(--muted)}.tile-counts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(2.3rem,1fr));gap:.3rem}.tile-count{display:flex;flex-direction:column;align-items:center;gap:.05rem;padding:.25rem .1rem;background:var(--plain);border:1px solid var(--tile-edge);border-radius:4px}.tile-count-letter{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em}.tile-count-n{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--muted)}.tile-count-n--neg{color:var(--tw);font-weight:700}.share-url{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;word-break:break-all;background:var(--surface);border:1px solid var(--line);padding:.4rem;border-radius:6px}.share-note{font-size:.8rem;color:var(--muted)}
