:root{--hall:#15110e;--oak:#2a2019;--cell:#382c22;--seam:#4f3f31;--bone:#ede3cc;--bone-2:#d6c6a2;--ink:#2b1f15;--text:#ece2cf;--muted:#a6957c;--faint:#a08f77;--gold:#cfa548;--frost:#88a4ae;--moss:#71874f;--ember:#ad472d;--f-display:"Uncial Antiqua","Palatino Linotype",Georgia,serif;--f-body:"Alegreya",Georgia,"Times New Roman",serif;--f-sc:"Alegreya Sans SC","Gill Sans",system-ui,sans-serif;--f-rune:"Noto Sans Runic","Segoe UI Historic","Segoe UI Symbol",serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[hidden]{display:none!important}*,:before,:after{box-sizing:border-box}form.stack{gap:14px;margin:0;display:grid}html{background:var(--hall)}body{background:radial-gradient(ellipse 70% 50% at 30% 28%, color-mix(in oklab,var(--ember) 14%,transparent), transparent 70%), var(--hall);color:var(--text);font-family:var(--f-body);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));min-height:100%;padding-block:22px 48px;font-size:16px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.wrap{gap:22px;max-width:1060px;margin:0 auto;display:grid}.top{flex-wrap:wrap;align-items:end;gap:10px 28px;display:flex}.brand{gap:0;display:grid}h1{font-family:var(--f-display);color:var(--bone);letter-spacing:.01em;margin:0;font-size:clamp(2.2rem,6vw,3.3rem);font-weight:400;line-height:1}h1 span{color:var(--gold)}.runeline{font-family:var(--f-rune);color:var(--gold);letter-spacing:.35em;opacity:.85;margin:4px 0 0;font-size:.95rem}.tag{max-width:44ch;color:var(--muted);flex:280px;min-width:0;margin:0}.top-actions{gap:8px;margin-left:auto;display:flex}.ghost{border:1px solid var(--seam);font-family:var(--f-sc);letter-spacing:.06em;color:var(--text);background:0 0;border-radius:4px;padding:7px 13px;font-weight:500}.ghost:hover{border-color:var(--gold);color:var(--bone)}.hall{grid-template-columns:minmax(0,1fr) minmax(250px,320px);align-items:start;gap:24px;display:grid}@media (width<=860px){.hall{grid-template-columns:minmax(0,1fr)}}.table{gap:14px;min-width:0;display:grid}.board-frame{background:var(--oak);border:1px solid var(--seam);box-shadow:0 20px 50px -20px #000, inset 0 0 0 1px color-mix(in oklab,var(--gold) 10%,transparent);border-radius:6px;padding:8px;container-type:inline-size}.board{aspect-ratio:1;grid-template-columns:repeat(13,minmax(0,1fr));gap:2px;width:100%;max-width:100%;display:grid}.cell{background:var(--cell);aspect-ratio:1;border:0;border-radius:2px;place-items:center;min-width:0;margin:0;padding:0;display:grid;position:relative;overflow:hidden}.cell:hover{filter:brightness(1.15)}.cell .rune{font-family:var(--f-rune);color:var(--bone);opacity:.92;font-size:4.4cqi;line-height:1}.cell .lab{text-align:center;font-family:var(--f-sc);letter-spacing:.04em;color:var(--bone);opacity:.75;font-size:1.55cqi;position:absolute;bottom:.3cqi;left:0;right:0}.p-DL{background:color-mix(in oklab,var(--frost) 32%,var(--cell))}.p-TL{background:color-mix(in oklab,var(--gold) 40%,var(--cell))}.p-DW{background:color-mix(in oklab,var(--moss) 45%,var(--cell))}.p-TW{background:color-mix(in oklab,var(--ember) 58%,var(--cell))}.p-ING{background:color-mix(in oklab,var(--ember) 30%,var(--cell));box-shadow:inset 0 0 0 1px var(--gold)}.p-ING .rune{color:var(--gold);font-size:5cqi}.cell .tile{position:absolute;inset:0}.tile{background:linear-gradient(170deg,var(--bone),var(--bone-2));color:var(--ink);box-shadow:inset 0 -2px 0 color-mix(in oklab,var(--ink) 30%,transparent), 0 1px 2px #0008;font-family:var(--f-display);border-radius:3px;place-items:center;display:grid}.tile b{font-weight:400;line-height:1}.tile i{font-style:normal;font-family:var(--f-sc);font-weight:700;line-height:1;position:absolute;bottom:4%;right:7%}.board .tile b{font-size:4.6cqi}.board .tile i{font-size:1.6cqi}.tile.fresh{box-shadow:inset 0 0 0 2px var(--gold), inset 0 -2px 0 color-mix(in oklab,var(--ink) 30%,transparent)}.tile.blank b{color:var(--ember)}.status{min-height:1.6em;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:.98rem;display:flex}.status .w{font-family:var(--f-display);color:var(--bone);letter-spacing:.03em}.status .pts{font-family:var(--f-sc);color:var(--gold);font-weight:700}.status.err{color:color-mix(in oklab,var(--ember) 60%,var(--text))}.status .unk{color:color-mix(in oklab,var(--ember) 65%,var(--text));font-family:var(--f-display)}.rackrow{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.whose{font-family:var(--f-sc);letter-spacing:.06em;color:var(--muted);font-size:.9rem}.whose b{color:var(--bone);font-weight:700}.rack{--rt:min(54px,calc((100vw - 32px - 18px - 7*6px - 12px)/8));background:var(--oak);border:1px solid var(--seam);min-height:calc(var(--rt) + 16px);border-radius:6px;gap:6px;padding:8px;display:flex}.rack .tile{width:var(--rt);height:var(--rt);border:0;padding:0;transition:transform .12s;position:relative}.rack .tile b{font-size:calc(var(--rt)*.5)}.rack .tile i{font-size:calc(var(--rt)*.2)}.rack .tile.sel{box-shadow:0 0 0 2px var(--gold),0 6px 12px #000a;transform:translateY(-6px)}.rack .tile.swap{outline:2px dashed var(--ember);outline-offset:2px;opacity:.85}.rack .hidden-rack{color:var(--faint);align-self:center;padding:0 8px;font-style:italic}.controls{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--seam);background:color-mix(in oklab,var(--oak) 70%,var(--hall));font-family:var(--f-sc);letter-spacing:.06em;border-radius:4px;padding:8px 14px;font-weight:500}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.on{border-color:var(--ember);color:var(--bone);background:color-mix(in oklab,var(--ember) 30%,var(--oak))}.bench{gap:18px;min-width:0;display:grid}.panel{gap:8px;min-width:0;display:grid}.panel h2{font-family:var(--f-sc);letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.scores{gap:4px;display:grid}.score{border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 10px;display:flex}.score.cur{border-color:var(--seam);background:color-mix(in oklab,var(--oak) 80%,transparent)}.score .nm{font-family:var(--f-display);font-size:1.05rem}.score.cur .nm:before{content:"ᛝ ";font-family:var(--f-rune);color:var(--gold)}.score .sc{font-family:var(--f-sc);font-variant-numeric:tabular-nums;color:var(--bone);font-size:1.1rem;font-weight:700}.bagline{color:var(--muted);font-size:.88rem}.lastword{border-left:2px solid var(--gold);gap:2px;padding:4px 0 4px 12px;display:grid}.lastword .big{font-family:var(--f-display);color:var(--bone);word-break:break-word;font-size:1.6rem;line-height:1.1}.lastword .gloss{font-style:italic}.lastword .src{font-family:var(--f-sc);letter-spacing:.06em;color:var(--muted);font-size:.8rem}.lastword .more{color:var(--muted);font-size:.9rem}.empty-note{color:var(--faint);margin:0;font-size:.95rem;font-style:italic}.log{color:var(--muted);gap:3px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.log li{justify-content:space-between;gap:10px;display:flex}.log .lw{font-family:var(--f-display);color:var(--text);overflow-wrap:anywhere;min-width:0}.log .lp{font-family:var(--f-sc);font-variant-numeric:tabular-nums;color:var(--gold);white-space:nowrap}.legend{gap:6px;font-size:.9rem;display:grid}.leg{grid-template-columns:28px 1fr;align-items:center;gap:10px;display:grid}.leg .sw{width:28px;height:28px;font-family:var(--f-rune);color:var(--bone);border-radius:3px;place-items:center;font-size:1rem;display:grid}.leg b{font-weight:600}.leg span{color:var(--muted)}.rules{color:var(--muted);gap:3px;margin:0;padding-left:1.1em;font-size:.9rem;display:grid}.scrim{background:color-mix(in oklab,var(--hall) 82%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--oak);border:1px solid var(--seam);border-radius:8px;gap:14px;width:min(520px,100%);max-height:100%;padding:22px 22px 20px;display:grid;overflow:auto;box-shadow:0 30px 80px -20px #000}.dialog h3{font-family:var(--f-display);color:var(--bone);text-wrap:balance;margin:0;font-size:1.7rem;font-weight:400;line-height:1.15}.dialog p{color:var(--muted);margin:0}.dialog .row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.field{gap:4px;display:grid}.field label{font-family:var(--f-sc);letter-spacing:.08em;color:var(--muted);font-size:.8rem}.field input[type=text],.search{background:var(--hall);border:1px solid var(--seam);color:var(--text);font:inherit;border-radius:4px;width:100%;padding:8px 10px}.names{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=460px){.names{grid-template-columns:minmax(0,1fr)}}.check{color:var(--text);align-items:flex-start;gap:10px;display:flex}.check input{accent-color:var(--gold);margin-top:5px}.check small{color:var(--muted);display:block}.letters{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.letters button{aspect-ratio:1;border:0;padding:0;font-size:1.3rem;position:relative}.wordlist{gap:6px;max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.wordlist li{border-bottom:1px solid color-mix(in oklab,var(--seam) 60%,transparent);grid-template-columns:minmax(0,9.5em) 1fr;align-items:baseline;gap:12px;padding-bottom:5px;display:grid}.wordlist .ww{font-family:var(--f-display);color:var(--bone);overflow-wrap:anywhere}.wordlist .wg{color:var(--text);font-size:.95rem;font-style:italic}.wordlist .ws{font-style:normal;font-family:var(--f-sc);color:var(--muted);letter-spacing:.05em;font-size:.75rem;display:block}.final{gap:4px;display:grid}.final .score .nm:before{content:none}.final .score:first-child{border-color:var(--gold)}.unklist{font-family:var(--f-display);color:var(--bone);letter-spacing:.03em;font-size:1.4rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}a{color:var(--gold)}.field input[type=email],.field input[type=text],.field input[inputmode=numeric]{background:var(--hall);border:1px solid var(--seam);color:var(--text);font:inherit;border-radius:4px;width:100%;padding:8px 10px}.top-actions{flex-wrap:wrap;align-items:center}.who{font-family:var(--f-sc);letter-spacing:.05em;color:var(--muted);font-size:.85rem}.who b{color:var(--bone);font-weight:700}.doors{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;display:grid}.door{background:var(--oak);border:1px solid var(--seam);border-radius:8px;align-content:start;gap:12px;padding:20px;display:grid}.door h2{font-family:var(--f-display);color:var(--bone);margin:0;font-size:1.5rem;font-weight:400}.door p{color:var(--muted);margin:0}.door .row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.door .row .field{flex:140px}.codein{text-transform:uppercase;letter-spacing:.3em;font-weight:700;font-family:var(--f-sc)!important}.lobby{gap:18px;max-width:640px;display:grid}.roomcode{font-family:var(--f-sc);letter-spacing:.35em;color:var(--gold);margin:0;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:700}.seats{gap:6px;display:grid}.seat{border:1px solid var(--seam);background:color-mix(in oklab,var(--oak) 80%,transparent);border-radius:4px;align-items:center;gap:10px;padding:8px 12px;display:flex}.seat .nm{font-family:var(--f-display);overflow-wrap:anywhere;flex:1;min-width:0;font-size:1.1rem}.seat.empty .nm{color:var(--faint);font-family:var(--f-body);font-size:1rem;font-style:italic}.dot{background:var(--faint);border-radius:50%;flex:none;width:9px;height:9px}.dot.on{background:var(--moss);box-shadow:0 0 0 3px color-mix(in oklab,var(--moss) 30%,transparent)}.score .dot{vertical-align:middle;margin-right:6px;display:inline-block}.tag-sm{font-family:var(--f-sc);letter-spacing:.08em;color:var(--muted);border:1px solid var(--seam);border-radius:3px;padding:1px 6px;font-size:.72rem}.note{color:var(--muted);font-size:.9rem}.ghosting{color:var(--muted);font-size:.9rem;font-style:italic}.ghosting:empty{display:none}.foot{max-width:1060px;color:var(--faint);text-align:center;margin:28px auto 0;font-size:.85rem}.foot a{color:var(--muted)}.cell.cursor{outline:2px solid var(--frost);outline-offset:-2px;z-index:1}.cell.lastp .tile{box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--moss) 80%,var(--bone)), inset 0 -2px 0 color-mix(in oklab,var(--ink) 30%,transparent)}.cell.drop{filter:brightness(1.4)}.drag-ghost{z-index:50;pointer-events:none;width:46px;height:46px;position:fixed;transform:translate(-50%,-60%)scale(1.08);box-shadow:0 10px 24px #000c}.drag-ghost b{font-size:24px}.drag-ghost i{font-size:10px}.rack .tile.dragging,.cell .tile.dragging{opacity:.35}.rack,.board .cell{touch-action:none}.countdown{font-family:var(--f-sc);color:var(--gold);font-weight:700}.toast{background:var(--oak);border:1px solid var(--gold);color:var(--bone);z-index:40;border-radius:6px;max-width:calc(100% - 32px);padding:8px 16px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #000a}.conn-lost{background:color-mix(in oklab,var(--ember) 35%,var(--oak));border:1px solid var(--ember);border-radius:4px;padding:6px 12px;font-size:.92rem}.devcode{font-family:var(--f-sc);color:var(--gold)}.kbd-hint{color:var(--faint);font-size:.82rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.board-frame{width:100%;max-width:max(300px,100svh - 370px)}
