:root{--bg: #f5f1e6;--paper: #ffffff;--ink: #1f1a16;--muted: #7a7167;--line: #e3dccc;--line-soft: #efeadd;--accent: #2c5e3a;--accent-soft: rgba(44, 94, 58, .12);--warn: #b03a2e;--warn-soft: #fbeae7;--good: #166534;--good-soft: #dcfce7;--tile-bg: linear-gradient(180deg, #fffefa 0%, #fbf4dc 100%);--tile-border: #6b4a22;--tile-shadow: 0 1px 1px rgba(0, 0, 0, .22), inset 0 -2px 0 rgba(0, 0, 0, .07), inset 0 1px 0 rgba(255, 255, 255, .7);--felt-bg: radial-gradient(ellipse at top left, #e8c596 0%, #ddb47e 50%, #c89a64 100%);--felt-border: #a37b4a;--felt-inset: inset 0 0 26px rgba(60, 30, 10, .08);--felt-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.10  0 0 0 0 0.05  0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>");--shadow-sm: 0 1px 2px rgba(31, 26, 22, .06);--shadow-md: 0 1px 2px rgba(31, 26, 22, .05), 0 6px 20px rgba(31, 26, 22, .04);--serif: "Iowan Old Style", "Palatino Linotype", "Palatino", Georgia, serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.4;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input{font:inherit}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:1rem}body.in-game .app{align-items:stretch;justify-content:stretch;padding:0;min-height:100vh}.placeholder{text-align:center}.placeholder h1{margin:0 0 .5rem;font-size:2.5rem}.muted{color:var(--muted);font-size:.875rem}.center{text-align:center}button.primary{padding:.55rem 1.1rem;border:none;border-radius:.375rem;background:var(--ink);color:#fffaf0;font-weight:600;letter-spacing:.01em;transition:background .12s ease}button.primary:hover:not(:disabled){background:#2d251f}button.primary:disabled{background:#c8c0b3;color:#fff;cursor:not-allowed}button.secondary{padding:.5rem 1rem;border:1px solid var(--line);border-radius:.375rem;background:var(--paper);color:var(--ink)}button.secondary:hover:not(:disabled){background:var(--bg)}.link-button{border:none;background:transparent;color:var(--muted);font-size:.78rem;padding:0}.link-button:hover{text-decoration:underline}.game-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.game-header-actions-row{display:flex;align-items:center;gap:.45rem}.motion-toggle{font-variant-numeric:tabular-nums;letter-spacing:.02em}.motion-toggle.on{color:var(--accent);font-weight:600}.game-pin{display:inline-flex;align-items:center;gap:.3rem;border:none;background:transparent;padding:0;font-size:.78rem;color:var(--muted);cursor:pointer}.game-pin .muted{color:var(--muted)}.game-pin-num{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.06em}.game-pin:hover .game-pin-num{text-decoration:underline}.form-error{margin:0;padding:.5rem .75rem;background:var(--warn-soft);color:var(--warn);border-radius:.375rem;font-size:.875rem}.form-hint{margin:0;padding:.5rem .75rem;background:var(--good-soft);color:var(--good);border-radius:.375rem;font-size:.875rem}.auth-screen{width:100%;max-width:22rem}.auth-screen h1{text-align:center;margin:0 0 1.5rem;font-family:var(--serif);font-size:2.75rem;letter-spacing:.02em}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:1rem}.tab{flex:1;padding:.5rem;border:none;background:transparent;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-bottom-color:var(--ink)}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--muted)}.auth-form input{padding:.55rem .75rem;border:1px solid var(--line);border-radius:.375rem;background:var(--paper)}.auth-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.auth-form button[type=submit]{margin-top:.5rem;padding:.65rem;border:none;border-radius:.375rem;background:var(--ink);color:#fffaf0;font-weight:600}.auth-form button[type=submit]:disabled{background:#c8c0b3;cursor:not-allowed}.field-hint{font-size:.8rem;margin:-.25rem 0 0}.field-hint.error{color:var(--warn)}.home-screen{width:100%;max-width:28rem;display:flex;flex-direction:column;gap:1rem}.home-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.home-header h1{margin:0;font-family:var(--serif);font-size:2.25rem}.home-card{background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:1rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--shadow-sm)}.home-card h2{margin:0;font-size:1.05rem;font-weight:600}.home-card form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.5rem;min-width:0}.home-card form input{min-width:0;padding:.5rem .75rem;border:1px solid var(--line);border-radius:.375rem;font-variant-numeric:tabular-nums;letter-spacing:.15em;font-size:1.125rem;text-align:center;background:var(--bg)}.home-card form button{white-space:nowrap}.home-error{margin:0}.home-header-controls{display:flex;align-items:center;gap:.75rem}.public-games-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;max-height:16rem;overflow-y:auto}.public-game-row{margin:0}.public-game-row-button{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:baseline;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.375rem;background:var(--bg);text-align:left;cursor:pointer;font-size:.95rem}.public-game-row-button:hover:not(:disabled){background:var(--paper);border-color:var(--ink)}.public-game-row.full .public-game-row-button{opacity:.55;cursor:not-allowed}.public-game-host{font-weight:500}.public-game-meta,.public-game-status{font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--ink-muted, var(--ink))}.public-games-empty{margin:0;padding:.6rem 0;text-align:center}.pin-join-form{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}.pin-join-label{font-size:.85rem;color:var(--ink-muted, var(--ink))}.pin-join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.5rem;min-width:0}.pin-join-row input{min-width:0;padding:.5rem .75rem;border:1px solid var(--line);border-radius:.375rem;font-variant-numeric:tabular-nums;letter-spacing:.15em;font-size:1.125rem;text-align:center;background:var(--bg)}.pin-join-row button{white-space:nowrap}.tier-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;flex-shrink:0}.lobby-screen{width:100%;max-width:28rem;display:flex;flex-direction:column;gap:1rem}.lobby-header{display:flex;flex-direction:column;align-items:center;gap:.25rem}.pin-display{font-family:var(--serif);font-size:3rem;font-weight:700;letter-spacing:.25em;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.5rem 1.5rem;font-variant-numeric:tabular-nums;color:var(--ink);box-shadow:var(--shadow-sm)}.pin-display:hover{background:var(--bg)}.roster{list-style:none;margin:0;padding:0;overflow:hidden}.roster-row{display:flex;align-items:center;gap:.5rem;padding:.6rem 0}.roster-row+.roster-row{border-top:1px solid var(--line-soft)}.roster-row.empty{justify-content:center;font-style:italic;color:var(--muted)}.player-name{flex:1}.badge{font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.125rem .4rem;border-radius:.25rem;background:var(--line);color:var(--ink)}.badge.host{background:var(--accent-soft);color:var(--accent)}.lobby-section,.lobby-settings{display:flex;flex-direction:column;gap:.7rem;padding:.85rem;border:1px solid var(--line);border-radius:.5rem;background:var(--paper);box-shadow:var(--shadow-sm)}.settings-screen{width:100%;max-width:28rem;display:flex;flex-direction:column;gap:1rem;align-items:stretch}.settings-screen-header{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.settings-screen-header h1{margin:0;font-family:var(--serif);font-size:1.75rem;font-weight:700}.settings-screen-header p{margin:0;font-size:.9rem}.settings-screen-card{display:flex;flex-direction:column;gap:.7rem;padding:1rem;border:1px solid var(--line);border-radius:.5rem;background:var(--paper);box-shadow:var(--shadow-sm)}.settings-screen-actions{display:flex;justify-content:center;gap:.75rem}.settings-screen-actions .primary,.settings-screen-actions .secondary{min-width:8rem}.settings-reset{align-self:center;font-size:.8rem}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding-bottom:.65rem;border-bottom:1px solid var(--line-soft)}.section-heading h2{margin:0;font-size:1rem;font-weight:700}.settings-field{display:grid;grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);grid-template-areas:"label control" ".     hint";align-items:center;column-gap:.75rem;row-gap:.15rem;font-size:.9rem}.settings-field+.settings-field{padding-top:.7rem;border-top:1px solid var(--line-soft)}.settings-field-label{grid-area:label;color:var(--muted)}.settings-picker{grid-area:control;display:flex;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:.4rem;overflow:hidden;box-shadow:0 1px #1f1a1605}.settings-notch{flex:1 1 0;min-width:0;padding:.42rem .3rem;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-family:var(--sans);font-weight:500;font-size:.82rem;font-variant-numeric:tabular-nums;letter-spacing:.01em;cursor:pointer;text-align:center;white-space:normal;word-break:keep-all;transition:background .1s ease,color .1s ease,box-shadow .12s ease}.settings-notch:last-child{border-right:0}.settings-notch:hover:not(:disabled):not(.selected){background:#1f1a160a;color:var(--ink)}.settings-notch.selected{background:var(--bg);color:var(--ink);font-weight:600;box-shadow:inset 0 1px 2px #1f1a161f,inset 1px 0 #1f1a160f,inset -1px 0 #1f1a160f}.settings-notch:disabled{opacity:.5;cursor:not-allowed}.settings-notch:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-field-hint{grid-area:hint;justify-self:end;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.lobby-actions{display:flex;flex-direction:column;gap:.5rem}.game-screen{position:relative;width:100%;margin:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "felt" "submit";height:100vh;height:100dvh;background:var(--bg)}.game-main{display:contents}.game-header{grid-area:top;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;min-height:1.65rem;padding:.5rem 1rem;background:var(--bg);border-bottom:1px solid var(--line);color:var(--muted)}.big-num{font-family:var(--serif);font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.turn-info{display:flex;align-items:baseline;gap:.35rem;font-size:.82rem}.turn-info.my-turn{color:var(--accent);font-weight:600}.your-turn-badge{align-self:flex-end;display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:.35rem;background:var(--accent);color:#fffaf0;font-size:.86rem;font-weight:800;letter-spacing:.12em;box-shadow:0 1px 3px #1f1a162e;animation:your-turn-badge-pulse 1.4s ease-in-out infinite}.player-zone.tl .your-turn-badge,.player-zone.bl .your-turn-badge{align-self:flex-start}@keyframes your-turn-badge-pulse{0%,to{box-shadow:0 1px 3px #1f1a162e,0 0 #2c5e3a00;transform:translateY(0)}50%{box-shadow:0 1px 3px #1f1a162e,0 0 0 7px #2c5e3a2e;transform:translateY(-1px)}}body[data-reduce-motion="1"] .your-turn-badge{animation:none}.deadline{font-variant-numeric:tabular-nums;font-weight:600;background:var(--bg);padding:.05rem .35rem;border-radius:.25rem}.disconnect-wait{display:flex;align-items:center;gap:.55rem;padding:.2rem .45rem;border:1px solid #b45309;border-radius:.375rem;background:#fff7ed;color:#7c2d12;font-weight:700}.disconnect-spinner{width:1rem;height:1rem;border:2px solid rgba(124,45,18,.25);border-top-color:#7c2d12;border-radius:999px;animation:spin .85s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.felt{grid-area:felt;position:relative;isolation:isolate;background:var(--felt-bg);border-top:1px solid var(--felt-border);border-bottom:1px solid var(--felt-border);box-shadow:var(--felt-inset);overflow:hidden;min-height:0;--table-tile-w: clamp(1.82rem, calc(1.2rem + 1.35vw) , 2.75rem);--table-tile-h: calc(var(--table-tile-w) * 1.08);--table-tile-font: calc(var(--table-tile-w) * .56);--word-tile-w: var(--table-tile-w)}.felt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:var(--felt-grain);background-size:220px 220px;mix-blend-mode:multiply;opacity:.35;z-index:0}.tiles{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(70%,64rem);height:min(70%,36rem);overflow:visible;container-type:size;z-index:1}.tiles .muted{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.player-zone{position:absolute;display:flex;flex-direction:column;gap:.4rem;font-size:.875rem;color:var(--ink);z-index:3;pointer-events:none}.player-zone>*{pointer-events:auto}.player-zone.tl{top:.7rem;left:.85rem}.player-zone.bl{bottom:.7rem;left:.85rem}.player-zone.tr{top:.7rem;right:.85rem;align-items:flex-end;text-align:right}.player-zone.br{bottom:.7rem;right:.85rem;align-items:flex-end;text-align:right}.game-screen.pcount-1 .player-zone.bl,.game-screen.pcount-2 .player-zone.bl,.game-screen.pcount-2 .player-zone.tr,.game-screen.pcount-3 .player-zone.bl{left:.85rem;right:.85rem;width:auto}.game-screen.pcount-3 .player-zone.tl,.game-screen.pcount-3 .player-zone.tr,.game-screen.pcount-4 .player-zone{width:calc(50% - 1.275rem)}.player-zone-header{display:flex;align-items:baseline;gap:.45rem;width:100%;padding:0 .1rem .3rem;border-bottom:1px solid rgba(31,26,22,.22);font-weight:600;min-width:0}.player-zone.tr .player-zone-header,.player-zone.br .player-zone-header{justify-content:flex-end}.player-zone.tl .player-zone-header,.player-zone.tr .player-zone-header{border-bottom:0;padding-bottom:0}.player-zone.tl,.player-zone.tr{padding-bottom:.3rem;border-bottom:1px solid rgba(31,26,22,.22)}.player-zone .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;min-width:0;max-width:100%}.player-zone .score{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:1.2rem;margin:0;flex:0 0 auto}.player-zone.tl .player-zone-header,.player-zone.bl .player-zone-header{justify-content:flex-start}.player-zone.active .player-zone-header{border-bottom-color:var(--accent);background:var(--accent-soft);border-radius:.3rem .3rem 0 0;box-shadow:inset 0 -1px 0 var(--accent)}.player-zone.active .player-name{color:var(--accent);font-weight:700}.player-zone.greyed{opacity:.55}.player-zone .word-zone{position:relative;width:100%;min-width:0;--word-tile-size: var(--word-tile-w)}.tile{position:absolute;display:flex;align-items:center;justify-content:center;width:var(--table-tile-w);height:var(--table-tile-h);background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.3rem;box-shadow:var(--tile-shadow);font-family:var(--sans);font-weight:700;font-size:var(--table-tile-font);color:var(--ink);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;--tile-rot-active: var(--tile-rot, 0deg);--tile-lift: 0px;--tile-scale: 1;transform-origin:center;transform:translate(-50%,-50%) rotate(var(--tile-rot-active)) translateY(var(--tile-lift)) scale(var(--tile-scale));transition:transform .12s cubic-bezier(.2,.8,.2,1),filter .12s cubic-bezier(.2,.8,.2,1)}.tile:active{cursor:grabbing}.tile:hover{--tile-rot-active: 0deg;--tile-lift: -1px;--tile-scale: 1.045;filter:drop-shadow(0 2px 2px rgba(31,26,22,.16));z-index:20}.tile.dragging,.tile.dragging:hover{--tile-rot-active: 0deg;--tile-lift: -3px;--tile-scale: 1.06;filter:drop-shadow(0 6px 10px rgba(31,26,22,.28));z-index:50;cursor:grabbing}@keyframes tile-flip-in{0%{opacity:0;filter:brightness(1.15)}60%{opacity:1;filter:brightness(1.08)}to{opacity:1;filter:brightness(1)}}.tile.fresh{animation:tile-flip-in .28s cubic-bezier(.2,.8,.2,1)}.tile.recent-flip{box-shadow:inset 0 0 16px 4px #e1f0d7d9,inset 0 0 0 1px #b4c8aa99,0 0 22px 6px #dcebd2bf,var(--tile-shadow)}.tile.recent-flip:not(.fresh){animation:recent-flip-pulse 2.2s ease-in-out infinite}@keyframes recent-flip-pulse{0%,to{box-shadow:inset 0 0 14px 4px #e1f0d7b3,inset 0 0 0 1px #b4c8aa8c,0 0 22px 5px #dcebd299,var(--tile-shadow)}50%{box-shadow:inset 0 0 26px 8px #e1f0d7f5,inset 0 0 0 1px #b4c8aabd,0 0 38px 12px #dcebd2eb,var(--tile-shadow)}}body[data-reduce-motion="1"] .tile.fresh,body[data-reduce-motion="1"] .tile.recent-flip,body[data-reduce-motion="1"] .wf-pip{animation:none}@media (prefers-reduced-motion: reduce){.tile.fresh,.tile.recent-flip,.wf-pip{animation:none}}.submit-row{grid-area:submit;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;background:var(--bg);border:0;border-top:1px solid var(--line);border-radius:0;padding:.55rem 1rem;box-shadow:none}.submit-row form{display:flex;min-width:0}.word-input-shell{position:relative;flex:1 1 auto;display:flex;align-items:center;min-width:0}.word-input-shell input{flex:1 1 auto;min-width:0;padding:.6rem 3.6rem .6rem 1.2rem;height:3rem;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:1.15rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--paper)}.word-input-shell input:focus{outline:2px solid var(--accent);outline-offset:-1px}.word-input-shell input.input-notice{border-color:var(--warn);color:var(--warn);letter-spacing:normal;text-transform:none}.word-input-shell input.input-notice::placeholder{color:var(--warn);opacity:1}.submit-row button,.flip-btn{white-space:nowrap}.flip-btn.icon-btn.my-turn{animation:flip-pulse 1.4s ease-in-out infinite;border-radius:.4rem}@keyframes flip-pulse{0%,to{filter:drop-shadow(0 0 0 rgba(44,94,58,0))}50%{filter:drop-shadow(0 0 6px rgba(44,94,58,.55))}}body[data-reduce-motion="1"] .flip-btn.icon-btn.my-turn{animation:none}.bag-empty-actions{display:flex;align-items:center;gap:.45rem}.fill-bag-btn{height:3rem}.submit-row .icon-btn,.submit-row .chat-toggle{width:3rem;height:3rem;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .14s cubic-bezier(.2,.8,.2,1),filter .14s cubic-bezier(.2,.8,.2,1)}.submit-row .icon-btn:hover:not(:disabled),.submit-row .chat-toggle:hover{transform:translateY(-1px) scale(1.06);filter:drop-shadow(0 2px 2px rgba(31,26,22,.16))}.submit-row .submit-btn.icon-btn{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);width:2.5rem;height:2.5rem;border-radius:999px;background:var(--felt-bg);border:1px solid var(--felt-border);color:var(--ink);overflow:hidden;isolation:isolate}.submit-row .submit-btn.icon-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--felt-grain);background-size:220px 220px;mix-blend-mode:multiply;opacity:.35;pointer-events:none;border-radius:inherit;z-index:0}.submit-row .submit-btn.icon-btn .btn-icon{width:1.4rem;height:1.4rem;position:relative;z-index:1}.submit-row .submit-btn.icon-btn:disabled{opacity:.55}.submit-row .submit-btn.icon-btn:hover:not(:disabled){transform:translateY(calc(-50% - 1px)) scale(1.06)}.submit-row .flip-btn.icon-btn,.submit-row .flip-btn.icon-btn:hover,.submit-row .flip-btn.icon-btn:focus,.submit-row .flip-btn.icon-btn:active{background:transparent;border:0;border-radius:0;color:var(--ink)}.submit-row .flip-btn.icon-btn:disabled{opacity:.55}.submit-row .flip-btn.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.375rem}.submit-row .chat-toggle:hover,.submit-row .chat-toggle:focus,.submit-row .chat-toggle:active{background:transparent}.flip-glyph-tile{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.6rem;background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.3rem;box-shadow:var(--tile-shadow);font-family:var(--sans);font-weight:700;font-size:1.55rem;line-height:1;color:var(--ink);transform:rotate(7deg);-webkit-user-select:none;user-select:none}.btn-icon{display:block}@media (max-width: 40rem){.app{padding:.75rem}body.in-game .app{padding:0}button.primary{padding:.5rem .75rem}.home-header{align-items:flex-start;gap:.5rem}.home-header h1{font-size:2rem}.home-card{padding:.75rem}.home-card form{gap:.4rem}.home-card form input{padding:.45rem .55rem;font-size:1rem;letter-spacing:.08em}.submit-row{gap:.35rem;padding:.4rem}.submit-row form{gap:.35rem}.submit-row form input{padding:.48rem .55rem;font-size:1rem;letter-spacing:.035em}.submit-row button{padding:.48rem .65rem}.bag-empty-actions{gap:.3rem}}@media (max-width: 30rem){.game-header{gap:.35rem;font-size:.82rem;padding:.4rem .6rem}.game-header-actions{gap:.32rem}.submit-row{grid-template-columns:minmax(0,1fr) auto auto;gap:.25rem;padding:.3rem .45rem}.submit-row form{min-width:0}.word-input-shell input{height:2.4rem;padding:.42rem 2.85rem .42rem .85rem;font-size:.95rem;letter-spacing:.02em}.submit-row .icon-btn,.submit-row .chat-toggle{width:2.4rem;height:2.4rem}.bag-empty-actions{flex-direction:column;align-items:stretch}.bag-empty-actions button{height:auto;padding:.38rem .5rem;font-size:.78rem}.submit-row .submit-btn.icon-btn{right:.2rem;width:2rem;height:2rem}.submit-row .submit-btn.icon-btn .btn-icon{width:1.1rem;height:1.1rem}.flip-glyph-tile{width:2rem;height:2.15rem;font-size:1.25rem;border-radius:.24rem}.chat-icon{width:1.2rem;height:1.2rem}}.score{margin-left:auto;font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:1.25rem}.word-tiles-anchor{position:absolute;left:0;top:0;transform:translate3d(var(--wt-tx, 0px),var(--wt-ty, 0px),0)}.word-tiles-anchor.dragging{z-index:50}.word-tiles{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:0;position:relative;transform-origin:center;cursor:grab;touch-action:none;transition:transform .12s cubic-bezier(.2,.8,.2,1),filter .12s cubic-bezier(.2,.8,.2,1)}.word-tiles[data-anim-state=idle]:hover,.word-tiles[data-anim-state=idle]:focus-visible{transform:translateY(-1px) scale(1.045);filter:drop-shadow(0 2px 2px rgba(31,26,22,.16));z-index:20}.word-tiles-anchor.dragging .word-tiles{cursor:grabbing;transform:translateY(-3px) scale(1.06);filter:drop-shadow(0 6px 10px rgba(31,26,22,.28))}.word-tiles:has(.word-definition-tip){cursor:help}.word-definition-tip{position:fixed;width:max-content;max-width:min(18rem,calc(100vw - 2rem));padding:.45rem .6rem;background:#1f1a16f0;color:#fffaf0;border-radius:.375rem;box-shadow:0 8px 24px #1f1a1638;font-family:var(--sans);font-size:.78rem;font-weight:500;line-height:1.25;letter-spacing:0;text-align:left;white-space:normal;opacity:0;pointer-events:none;transform:scale(.98);transform-origin:top left;transition:opacity .9s ease,transform .9s ease;z-index:100}.word-definition-tip.visible{opacity:1;transform:scale(1);transition:opacity .11s ease,transform .11s ease}.word-tile{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--word-tile-size);height:calc(var(--word-tile-size) * 1.08);background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.3rem;box-shadow:var(--tile-shadow);font-family:var(--sans);font-weight:700;font-size:calc(var(--word-tile-size) * .56);color:var(--ink);-webkit-user-select:none;user-select:none}.word-zone[data-shrunk="1"] .word-tile:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:#6b4a2247}.word-zone[data-shrunk="1"] .word-tile:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:#6b4a2247}.tile.claimed{background:linear-gradient(#2c5e3a52,#2c5e3a52),var(--tile-bg);border-color:var(--accent);box-shadow:var(--tile-shadow),0 0 6px #2c5e3a73;color:var(--ink);z-index:5}.word-tiles.claimed .word-tile{background:linear-gradient(#2c5e3a52,#2c5e3a52),var(--tile-bg);border-color:var(--accent)}.word-tiles.claimed{filter:drop-shadow(0 0 4px rgba(44,94,58,.4))}body[data-input-mode=tap]{--word-tile-w: clamp(.9rem, calc(.6rem + .6vw) , 1.15rem)}body[data-input-mode=tap] .submit-row{background:linear-gradient(#0000002e,#0000002e),var(--felt-bg);border-top:1px solid rgba(0,0,0,.22);padding:.6rem .85rem calc(.6rem + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr);gap:0}body[data-input-mode=tap] .word-zone .word-tile:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:#6b4a2247}body[data-input-mode=tap] .word-zone .word-tile:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:#6b4a2247}.compose-dock{flex:1 1 auto;display:flex;align-items:center;gap:.6rem;padding:0;background:transparent;border:0;box-shadow:none;min-height:3.4rem}.compose-row{flex:1 1 auto;min-width:0;position:relative;overflow:hidden}.compose-letter{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;left:0;top:0;margin:0;padding:0;background:#fbf4dc;border:1px solid #d8c79a;border-radius:.3rem;box-shadow:none;color:var(--ink);font-family:var(--sans);font-weight:700;line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:grab;transition:transform .16s cubic-bezier(.2,.8,.2,1);touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform}.compose-letter.dragging{cursor:grabbing;z-index:100;transition:none;box-shadow:0 12px 22px #1f1a1659;border-color:var(--ink)}.compose-dock-actions{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}.compose-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.6rem;height:2.6rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 4px #1f1a162e,0 0 0 1px #0000000a inset;transition:transform 90ms ease,box-shadow .12s ease}.compose-action:active:not(:disabled){transform:translateY(1px)}.compose-action:disabled{cursor:not-allowed;opacity:.45}.compose-action .btn-icon{width:1.15rem;height:1.15rem}.compose-cancel{background:var(--warn);border:0;color:var(--paper)}.compose-submit{background:var(--accent);border:0;color:var(--paper)}.floater>.floater-flip,.floater>.floater-chat .chat-toggle,.floater>.floater-pill{width:100%;height:100%;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--paper);cursor:grab;box-shadow:0 8px 16px #1f1a1638,0 1px 3px #1f1a1629;transition:transform .1s ease,box-shadow .12s ease}.floater>.floater-flip:active,.floater>.floater-chat .chat-toggle:active,.floater>.floater-pill:active{transform:scale(.96)}.floater-chat{width:100%;height:100%}.floater-chat .chat-strip{display:block;width:100%;height:100%}.floater-chat .chat-toggle{background:#3d6f7a}.floater-chat .chat-icon{width:1.45rem;height:1.45rem}.floater-chat .chat-unread-dot{top:6%;right:6%}.floater-flip{background:#c9743f}.floater-flip.my-turn{background:var(--accent)}.floater-flip:disabled{opacity:.55;cursor:not-allowed}.floater-flip .btn-icon{width:1.5rem;height:1.5rem}.flip-glyph-question{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:700;font-size:1.7rem;line-height:1;color:inherit;-webkit-user-select:none;user-select:none}.floater-pill{border-radius:1.2rem!important;font-family:var(--sans);font-weight:700;font-size:.86rem;letter-spacing:.04em;padding:0 .9rem;background:var(--accent);color:var(--paper)}.floater-pill:disabled{opacity:.55;cursor:not-allowed}.chat-strip{position:relative;display:flex;align-items:stretch}.chat-toggle{position:relative;background:transparent;border:0;color:var(--ink);cursor:pointer}.chat-toggle:hover .chat-icon{color:var(--accent)}.chat-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.375rem}.chat-icon{display:block;width:2rem;height:2rem;color:var(--ink)}.chat-strip .chat-panel{position:absolute;bottom:calc(100% + .45rem);right:0;width:clamp(16rem,28vw,22rem);max-width:calc(100vw - 1rem);max-height:min(60vh,22rem);background:var(--paper);border:1px solid var(--line);border-radius:.5rem;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-md);z-index:30;opacity:1;transform:translateY(0);transform-origin:bottom right;animation:chat-panel-rise .13s cubic-bezier(.2,.8,.2,1) both;will-change:transform,opacity}.chat-strip.collapsed .chat-panel{display:none}.chat-strip.closing .chat-panel{display:flex;animation:chat-panel-fall .11s cubic-bezier(.4,0,1,1) both;visibility:hidden;pointer-events:none}body[data-reduce-motion="1"] .chat-strip .chat-panel{transform:none;animation:chat-panel-fade 80ms linear both}body[data-reduce-motion="1"] .chat-strip.closing .chat-panel{transform:none;animation:chat-panel-fade-out 80ms linear both}@media (prefers-reduced-motion: reduce){.chat-strip .chat-panel{transform:none;animation:chat-panel-fade 80ms linear both}.chat-strip.closing .chat-panel{transform:none;animation:chat-panel-fade-out 80ms linear both}}@keyframes chat-panel-rise{0%{opacity:0;transform:translateY(1.1rem) scaleY(.98)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes chat-panel-fall{0%{opacity:1;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(1.1rem) scaleY(.98)}}@keyframes chat-panel-fade{0%{opacity:0}to{opacity:1}}@keyframes chat-panel-fade-out{0%{opacity:1}to{opacity:0}}.chat-compose{border-top:1px solid var(--line-soft);padding:.45rem .55rem;background:var(--bg)}.chat-input-shell input{height:2.4rem;padding:.45rem 3rem .45rem .85rem;font-size:.9rem;letter-spacing:.02em;text-transform:none}.chat-input-shell .submit-btn.icon-btn{width:2rem;height:2rem;right:.2rem}.chat-input-shell .submit-btn.icon-btn .btn-icon{width:1.1rem;height:1.1rem}.chat-header{padding:.3rem .5rem;border-bottom:1px solid var(--line-soft);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}.chat-popup{position:fixed;z-index:60;max-width:min(260px,70vw);padding:.65rem 1rem;background:var(--paper, #fffefa);color:var(--ink, #2a2a2a);border:2px solid color-mix(in srgb,var(--ink, #2a2a2a) 78%,transparent);border-radius:22px;box-shadow:0 4px 12px #0000001f;font-size:.9rem;line-height:1.3;word-wrap:break-word;overflow-wrap:anywhere;pointer-events:none;animation:chat-popup-float 5s ease-out forwards}.chat-popup:before,.chat-popup:after{content:"";position:absolute;width:0;height:0;border-style:solid;border-color:transparent}.chat-popup.tail-down-left:before,.chat-popup.tail-down-right:before{border-width:16px 12px 0 12px;border-top-color:color-mix(in srgb,var(--ink, #2a2a2a) 78%,transparent);bottom:-16px}.chat-popup.tail-up-left:before,.chat-popup.tail-up-right:before{border-width:0 12px 16px 12px;border-bottom-color:color-mix(in srgb,var(--ink, #2a2a2a) 78%,transparent);top:-16px}.chat-popup.tail-down-left:before,.chat-popup.tail-up-left:before{left:22px}.chat-popup.tail-down-right:before,.chat-popup.tail-up-right:before{right:22px}.chat-popup.tail-down-left:after,.chat-popup.tail-down-right:after{border-width:13px 9px 0 9px;border-top-color:var(--paper, #fffefa);bottom:-12px}.chat-popup.tail-up-left:after,.chat-popup.tail-up-right:after{border-width:0 9px 13px 9px;border-bottom-color:var(--paper, #fffefa);top:-12px}.chat-popup.tail-down-left:after,.chat-popup.tail-up-left:after{left:25px}.chat-popup.tail-down-right:after,.chat-popup.tail-up-right:after{right:25px}.chat-popup.short-tail.tail-down-left:before,.chat-popup.short-tail.tail-down-right:before{border-width:10px 7px 0 7px;bottom:-10px}.chat-popup.short-tail.tail-up-left:before,.chat-popup.short-tail.tail-up-right:before{border-width:0 7px 10px 7px;top:-10px}.chat-popup.short-tail.tail-down-left:after,.chat-popup.short-tail.tail-down-right:after{border-width:8px 5px 0 5px;bottom:-7px}.chat-popup.short-tail.tail-up-left:after,.chat-popup.short-tail.tail-up-right:after{border-width:0 5px 8px 5px;top:-7px}.chat-popup.short-tail.tail-down-left:before,.chat-popup.short-tail.tail-up-left:before{left:16px}.chat-popup.short-tail.tail-down-right:before,.chat-popup.short-tail.tail-up-right:before{right:16px}.chat-popup.short-tail.tail-down-left:after,.chat-popup.short-tail.tail-up-left:after{left:18px}.chat-popup.short-tail.tail-down-right:after,.chat-popup.short-tail.tail-up-right:after{right:18px}.chat-popup.ultra-short-tail.tail-down-left:before,.chat-popup.ultra-short-tail.tail-down-right:before,.chat-popup.ultra-short-tail.tail-up-left:before,.chat-popup.ultra-short-tail.tail-up-right:before{left:50%;right:auto;transform:translate(-50%)}.chat-popup.ultra-short-tail.tail-down-left:after,.chat-popup.ultra-short-tail.tail-down-right:after,.chat-popup.ultra-short-tail.tail-up-left:after,.chat-popup.ultra-short-tail.tail-up-right:after{left:50%;right:auto;transform:translate(-50%)}@keyframes chat-popup-float{0%{opacity:0;transform:translateY(6px)}8%{opacity:.75;transform:translateY(0)}55%{opacity:.75;transform:translateY(-34px)}to{opacity:0;transform:translateY(-78px)}}body[data-reduce-motion="1"] .chat-popup{animation:chat-popup-fade 5s linear forwards}@media (prefers-reduced-motion: reduce){.chat-popup{animation:chat-popup-fade 5s linear forwards}}@keyframes chat-popup-fade{0%,88%{opacity:.75;transform:none}to{opacity:0;transform:none}}.invalid-guess-popup{position:fixed;z-index:61;max-width:min(220px,58vw);padding:.45rem .75rem;background:#b4232f;color:#fff8f6;border:2px solid #7f1d1d;border-radius:.45rem;box-shadow:0 4px 12px #7f1d1d38;font-family:var(--serif);font-size:.92rem;font-weight:800;line-height:1.1;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;pointer-events:none;animation:invalid-guess-shake 5s ease-out forwards}@keyframes invalid-guess-shake{0%{opacity:0;transform:translate(0) scale(.96)}4%{opacity:.96;transform:translate(0) scale(1)}6%{opacity:.96;transform:translate(-8px) rotate(-1.2deg)}8%{opacity:.96;transform:translate(8px) rotate(1.2deg)}10%{opacity:.96;transform:translate(-6px) rotate(-.9deg)}12%{opacity:.96;transform:translate(6px) rotate(.9deg)}14%{opacity:.96;transform:translate(-3px) rotate(-.5deg)}16%{opacity:.96;transform:translate(0) rotate(0)}55%{opacity:.96;transform:translateY(-34px)}to{opacity:0;transform:translateY(-78px)}}body[data-reduce-motion="1"] .invalid-guess-popup{animation:invalid-guess-fade 5s linear forwards}@media (prefers-reduced-motion: reduce){.invalid-guess-popup{animation:invalid-guess-fade 5s linear forwards}}@keyframes invalid-guess-fade{0%,72%{opacity:.96;transform:none}to{opacity:0;transform:none}}.chat-unread-dot{position:absolute;top:-4px;right:-4px;width:.62rem;height:.62rem;background:var(--warn);border-radius:999px;border:2px solid var(--paper);box-shadow:0 0 0 1px #b03a2e59}.chat-log{flex:1;overflow-y:auto;padding:.35rem .5rem;display:flex;flex-direction:column;gap:.22rem;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.chat-log[hidden]{display:none}.chat-log::-webkit-scrollbar{width:6px}.chat-log::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.chat-empty{margin:0;text-align:center;font-size:.72rem}.chat-empty kbd{font-family:var(--serif);font-weight:700;background:var(--bg);border:1px solid var(--line);border-radius:.2rem;padding:0 .25rem}.chat-line{margin:0;font-size:.76rem;line-height:1.22;word-wrap:break-word;overflow-wrap:anywhere}.chat-name{font-family:var(--serif);font-weight:700;margin-right:.28rem}.chat-log-name{font-family:var(--serif);font-weight:700;font-style:normal}.chat-word{font-weight:800;color:var(--ink)}.chat-name-color-0{color:#2c5e3a}.chat-name-color-1{color:#7c3aed}.chat-name-color-2{color:#0f766e}.chat-name-color-3{color:#b45309}.chat-name-color-4{color:#2563eb}.chat-name-color-5{color:#be123c}.chat-name-color-6{color:#6d28d9}.chat-name-color-7{color:#047857}.chat-body{color:var(--ink)}.chat-line.system{color:var(--muted);font-style:italic}.chat-line.system .chat-body{color:inherit}@media (max-width: 30rem){.chat-strip .chat-panel{width:clamp(13rem,92vw,18rem)}}.word-formation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}.wf-letter{position:fixed;display:inline-flex;align-items:center;justify-content:center;width:var(--wf-letter-w, var(--table-tile-w));height:var(--wf-letter-h, var(--table-tile-h));padding:0;font-family:var(--sans);font-size:calc(var(--wf-letter-h, var(--table-tile-h)) * .6);font-weight:700;color:var(--ink);background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.25rem;box-shadow:0 0 0 1px #ffffff59 inset,0 0 18px #6c5ce766,var(--tile-shadow);filter:brightness(1.04);will-change:left,top,transform,opacity,filter,translate,scale,rotate;transition-property:left,top,transform,opacity,filter,box-shadow,translate,scale,rotate;transition-timing-function:cubic-bezier(.22,.78,.18,1)}.wf-letter.wf-phase-hover,.wf-letter.wf-phase-charge{border-color:#db3434e6;background:color-mix(in srgb,var(--tile-bg) 82%,#e44747 18%);animation:wf-letter-enchant-hover .12s ease-in-out infinite alternate}.wf-letter.wf-phase-rush{border-color:#db3434e6;background:color-mix(in srgb,var(--tile-bg) 84%,#e44747 16%);box-shadow:0 0 0 1px #ffffff8c inset,0 0 26px #db343494,0 0 40px #ffca5759,var(--tile-shadow);filter:brightness(1.15) saturate(1.15)}.wf-letter.wf-phase-burst,.wf-letter.wf-phase-spell,.wf-letter.wf-phase-done{translate:0 0;box-shadow:0 0 24px #ffffffe6,0 0 42px #ffca57a6;filter:brightness(1.35) saturate(1.2)}.wf-letter.wf-origin-source.wf-phase-burst,.wf-letter.wf-origin-source.wf-phase-spell,.wf-letter.wf-origin-source.wf-phase-done{box-shadow:0 0 0 1px #ffffff8c inset,0 0 24px #db34348c,var(--tile-shadow);filter:brightness(1.12) saturate(1.08)}@keyframes wf-letter-enchant-hover{0%{translate:0 0;scale:1.02;rotate:-.8deg;filter:brightness(1.03);box-shadow:0 0 0 1px #ffffff59 inset,0 0 14px #db34346b,var(--tile-shadow)}to{translate:0 -3px;scale:1.08;rotate:.8deg;filter:brightness(1.16) saturate(1.08);box-shadow:0 0 0 1px #ffffff8c inset,0 0 24px #db34349e,0 0 34px #ffca5747,var(--tile-shadow)}}.wf-puff{position:fixed;pointer-events:none;width:5.8rem;height:4.8rem;margin-left:-2.9rem;margin-top:-2.4rem;opacity:0;filter:drop-shadow(0 3px 0 rgba(74,64,57,.16));animation:wf-puff-pop .36s steps(2,end) forwards}.wf-puff:before,.wf-puff:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 22% 55%,rgba(250,250,244,.98) 0 23%,transparent 24%),radial-gradient(circle at 38% 33%,rgba(238,235,222,.98) 0 25%,transparent 26%),radial-gradient(circle at 57% 54%,rgba(248,246,236,1) 0 28%,transparent 29%),radial-gradient(circle at 74% 36%,rgba(226,221,207,.98) 0 22%,transparent 23%),radial-gradient(circle at 82% 64%,rgba(244,241,229,.98) 0 20%,transparent 21%)}.wf-puff:after{transform:rotate(18deg) scale(.82);opacity:.92}@keyframes wf-puff-pop{0%{opacity:0;transform:scale(.35) rotate(-4deg)}18%{opacity:1;transform:scale(1.08) rotate(2deg)}55%{opacity:.96;transform:scale(1.32) rotate(-1deg)}to{opacity:0;transform:scale(1.72) rotate(4deg)}}.wf-formed-word{position:fixed;display:inline-flex;align-items:center;justify-content:center;gap:.125rem;transform:translate(-50%,-50%) scale(1.04);transition-property:left,top,transform;transition-timing-function:cubic-bezier(.18,.86,.22,1);filter:drop-shadow(0 0 18px rgba(219,52,52,.38))}.wf-formed-transfer{transform:translate(-50%,-50%) scale(1)}.wf-formed-tile{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.46rem;background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.18rem;font-family:var(--sans);font-size:.92rem;font-weight:700;color:var(--ink);box-shadow:0 0 0 1px #ffffff6b inset,0 0 16px #ffca5757,var(--tile-shadow)}.word-tile{opacity:1;transition:opacity .14s cubic-bezier(.2,.8,.2,1),transform .14s cubic-bezier(.2,.8,.2,1);transition-delay:0ms}.word-tiles[data-anim-state=revealing] .word-tile{opacity:0;transform:scale(.6) translateY(6px);transition-duration:0ms;transition-delay:0ms}.word-tiles[data-anim-state=snapping] .word-tile{opacity:0;transform:scale(.85);transition:opacity .1s ease-in,transform .1s ease-in;transition-delay:0ms}body[data-reduce-motion="1"] .word-tile,body[data-reduce-motion="1"] .word-tiles,body[data-reduce-motion="1"] .wf-letter,body[data-reduce-motion="1"] .wf-puff{transition:none;animation:none}body[data-reduce-motion="1"] .word-tiles[data-anim-state=idle]:hover{transform:none;filter:none}@media (prefers-reduced-motion: reduce){.word-tile,.word-tiles,.wf-letter{transition:none;animation:none}.word-tiles[data-anim-state=idle]:hover{transform:none;filter:none}.wf-puff{animation:none}}.wf-pip{position:fixed;font-family:var(--sans);font-size:1rem;font-weight:700;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:999px;padding:.05rem .5rem;box-shadow:var(--shadow-sm);animation:wf-pip-pop .6s cubic-bezier(.2,.8,.2,1) forwards;transform:translate(-25%,-50%);opacity:0}.wf-pip-loss{color:#c92a2a;border-color:#c92a2a;background:color-mix(in srgb,var(--paper) 86%,#ff6b6b 14%);box-shadow:0 0 0 1px #ffffff6b inset,0 0 18px #c92a2a38,var(--shadow-sm)}@keyframes wf-pip-pop{0%{opacity:0;transform:translate(-25%,-50%) scale(.7)}20%{opacity:1;transform:translate(-25%,-50%) scale(1.08)}60%{opacity:1;transform:translate(-25%,-65%) scale(1)}to{opacity:0;transform:translate(-25%,-95%) scale(.98)}}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1rem;background:#1f1a1638;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.modal-panel{width:min(100%,28rem);max-height:min(86dvh,42rem);overflow:auto;display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;box-shadow:0 18px 55px #1f1a163d}.modal-panel h2{margin:0;font-family:var(--serif);font-size:1.7rem;text-align:center}.confirm-panel{width:min(100%,22rem);text-align:center}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.confirm-panel .modal-actions,.end-panel .modal-actions{justify-content:center}.word-summary-list{display:flex;flex-direction:column;gap:.75rem}.word-summary-player{border:1px solid var(--line);border-radius:.5rem;overflow:hidden}.word-summary-player header{display:flex;align-items:baseline;gap:.75rem;padding:.55rem .75rem;border-bottom:1px solid var(--line-soft);background:var(--bg);font-weight:600}.word-summary-player header .score{margin-left:auto}.word-summary-player p{margin:0;padding:.75rem}.word-summary-words{display:flex;flex-wrap:wrap;gap:.4rem;padding:.65rem .75rem .75rem}.word-summary-chip{padding:.18rem .42rem;border:1px solid var(--tile-border);border-radius:.3rem;background:var(--tile-bg);box-shadow:var(--tile-shadow);font-weight:700;font-size:.82rem;letter-spacing:.04em}.end-screen{width:100%;max-width:28rem;display:flex;flex-direction:column;gap:1rem;text-align:center}.end-screen h1{margin:0;font-family:var(--serif);font-size:2rem}.winner-banner{font-family:var(--serif);font-size:1.35rem;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;box-shadow:var(--shadow-sm)}.standings{list-style:none;margin:0;padding:0;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;overflow:hidden;box-shadow:var(--shadow-sm)}.standing{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-top:1px solid var(--line-soft)}.standing:first-child{border-top:none}.standing.winner{background:var(--accent-soft)}.standing .rank{font-weight:700;width:1.25rem;color:var(--muted)}.standing .score{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600}.player-name-cell{display:inline-flex;align-items:baseline;gap:.35rem;flex:1;min-width:0}.rating-trigger{position:relative;display:inline-flex;align-items:baseline;gap:.35rem}.rating-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2.1rem;padding:0 .4rem;height:1.1rem;border-radius:.55rem;font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;background:var(--line);color:var(--ink);-webkit-user-select:none;user-select:none}.rating-rookie{background:#e6dfd0;color:#4a4036}.rating-novice{background:#d4e2d6;color:#1f4533}.rating-intermediate{background:#b7d7e8;color:#1d3a52}.rating-master{background:#d6c1e6;color:#3d2154}.rating-grandmaster{background:#f1d089;color:#5c3a0a}.rating-popover{position:fixed;top:-9999px;left:-9999px;z-index:1000;min-width:12rem;display:flex;flex-direction:column;gap:.25rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.4rem;background:var(--paper);box-shadow:var(--shadow-md);font-size:.78rem;cursor:default;white-space:normal}.rating-popover-name{font-weight:700;padding-bottom:.3rem;border-bottom:1px solid var(--line-soft)}.rating-popover-row{display:flex;justify-content:space-between;gap:.75rem}.rating-popover-row>span:last-child{font-variant-numeric:tabular-nums}.rating-popover-error{color:var(--warn)}.rating-class{display:inline-block;padding:0 .35rem;border-radius:.3rem;font-weight:700;font-size:.72rem}.rating-popover .shimmer{display:inline-block;min-width:1.5rem;background:var(--line-soft);border-radius:.2rem;color:transparent;animation:shimmer 1.2s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.rating-delta{font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums;padding:0 .35rem;border-radius:.3rem;letter-spacing:.01em;animation:rating-delta-in .42s ease-out both}.rating-delta.gain{color:var(--good);background:var(--good-soft)}.rating-delta.loss{color:var(--warn);background:var(--warn-soft)}.rating-delta.neutral{color:var(--muted);background:var(--line-soft)}@keyframes rating-delta-in{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:none}}.roster-row .player-name-cell{flex:1}.leaderboard-screen,.profile-screen{width:100%;max-width:56rem;display:flex;flex-direction:column;gap:1rem}.game-summary-screen{max-width:min(100%,76rem);gap:.75rem}.board-header{display:flex;align-items:baseline;justify-content:flex-start;gap:1rem}.board-header h1{margin:0;font-family:var(--serif);font-size:1.85rem}.board-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;overflow:hidden;box-shadow:var(--shadow-sm)}.board-table th,.board-table td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid var(--line-soft);font-size:.92rem}.board-table tr:last-child td{border-bottom:0}.board-table th{background:var(--bg);color:var(--muted);font-weight:600;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.board-table .rank,.board-table .num{text-align:right;font-variant-numeric:tabular-nums}.board-table .rank{width:3.6rem}.replay-summary-table{border-collapse:collapse;font-size:.95rem}.replay-summary-table th,.replay-summary-table td{padding:.3rem .85rem .3rem 0;text-align:left}.replay-summary-table th{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--line)}.replay-summary-table td.num{font-variant-numeric:tabular-nums;font-weight:600}.replay-summary-table td.result{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;color:var(--muted)}.replay-summary-table td.result.winner{color:var(--good)}.leaderboard-medal{display:inline-block;width:.65rem;height:.65rem;margin-right:.45rem;border-radius:999px;vertical-align:.05em;border:1px solid rgba(31,26,22,.18)}.leaderboard-medal.medal-1{background:#d4af37}.leaderboard-medal.medal-2{background:#b8b8b8}.leaderboard-medal.medal-3{background:#cd7f32}.board-row{cursor:pointer;transition:background 80ms ease}.board-row:hover,.board-row:focus{background:var(--line-soft);outline:none}.board-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.board-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.profile-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:1rem;box-shadow:var(--shadow-sm)}.profile-stat{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start}.profile-stat .big-num{font-family:var(--serif);font-size:1.6rem;font-variant-numeric:tabular-nums;font-weight:600}.rating-chart{background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.75rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.5rem}.rating-chart.empty{padding:1.5rem 1rem;text-align:center;font-style:italic}.rating-chart-periods{display:flex;gap:.35rem;flex-wrap:wrap}.chart-period{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:.18rem .65rem;font-size:.78rem;letter-spacing:.02em;cursor:pointer}.chart-period:hover{color:var(--ink)}.chart-period.active{background:var(--ink);color:#fffaf0;border-color:var(--ink)}.rating-chart-svg{width:100%;height:auto;display:block}.chart-axis{stroke:var(--line);stroke-width:1}.chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;transition:stroke-width .12s ease}.rating-chart-svg.hovering .chart-line{stroke-width:3.25}.chart-label{fill:var(--muted);font-size:11px}.rating-chart-svg{cursor:crosshair}.chart-hover-line{stroke:color-mix(in srgb,var(--accent) 60%,transparent);stroke-width:1;stroke-dasharray:2 3}.chart-hover-dot{fill:var(--paper);stroke:var(--accent);stroke-width:2}.chart-tooltip-bg{fill:var(--ink);fill-opacity:.92}.chart-tooltip-rating{fill:#fffaf0;font-family:var(--serif);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.chart-tooltip-date{fill:#fffaf0b3;font-size:11px}.profile-games h2{margin:.5rem 0;font-family:var(--serif);font-size:1.25rem}.profile-games-list{list-style:none;margin:0;padding:0;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;overflow:hidden;box-shadow:var(--shadow-sm)}.game-row{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto auto;gap:.75rem;align-items:baseline;padding:.55rem .85rem;border-bottom:1px solid var(--line-soft);font-size:.9rem}.game-row-name{color:var(--ink)}.game-row-name.winner,.game-row-players .link-inline.winner{font-weight:700}.game-row:last-child{border-bottom:0}.game-row-result{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem}.game-row.win .game-row-result{color:var(--good)}.game-row.tie .game-row-result{color:var(--accent)}.game-row.second .game-row-result{color:#6f7a85}.game-row.third .game-row-result{color:#a86b3c}.game-row.loss .game-row-result{color:var(--muted)}.game-row.clickable{cursor:pointer;transition:background 80ms ease}.game-row.clickable:hover,.game-row.clickable:focus{background:var(--line-soft);outline:none}.game-row.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.replay-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:.75rem;align-items:end;background:linear-gradient(180deg,var(--paper) 0%,#fffdf8 100%);border:1px solid var(--line);border-radius:.5rem;padding:.85rem .95rem;box-shadow:var(--shadow-sm)}.replay-header-main{min-width:0;display:flex;flex-direction:column;gap:.55rem}.replay-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.replay-header h1{margin:0;font-family:var(--serif);font-size:1.55rem;line-height:1.1}.replay-scoreline{display:flex;flex-wrap:wrap;gap:.45rem}.replay-score-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .6rem;border-radius:999px;background:var(--bg);border:1px solid var(--line);box-shadow:inset 0 1px #ffffffa6;font-size:.86rem;font-variant-numeric:tabular-nums}.replay-score-pill.winner{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 22%,var(--line))}.replay-score-name{color:var(--muted)}.replay-header-side{display:flex;flex-direction:column;gap:.55rem}.replay-result-card,.replay-meta-grid>div{display:flex;flex-direction:column;gap:.15rem;background:var(--bg);border:1px solid var(--line);border-radius:.55rem;padding:.65rem .75rem}.replay-result-card strong{font-size:1rem}.replay-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.replay-meta-grid strong{font-variant-numeric:tabular-nums}.replay-controls{display:block;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.65rem;box-shadow:var(--shadow-sm)}.replay-toolbar{display:grid;grid-template-columns:auto auto auto;align-items:center;justify-content:center;gap:.45rem}.replay-button-group{display:inline-flex;align-items:center;gap:.35rem}.transport-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;width:2.35rem;height:2.35rem;padding:0;border-radius:.375rem;border:1px solid #b9ad9a;background:var(--paper);color:var(--ink);box-shadow:none;flex:0 0 auto;transition:background 80ms ease,border-color 80ms ease,color 80ms ease}.transport-icon{display:block;width:1.45rem;height:1.45rem;color:var(--ink);fill:none;stroke:currentColor;stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round;overflow:visible;pointer-events:none}.transport-icon-fill{fill:currentColor;stroke:none}.transport-btn.secondary:hover:not(:disabled),.transport-btn.secondary:focus-visible{background:var(--line-soft);border-color:#958774}.transport-btn.play-btn{width:2.35rem;height:2.35rem;border-radius:.375rem;background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 36%,var(--line));color:var(--accent);box-shadow:none}.transport-btn.play-btn .transport-icon{color:var(--accent)}.transport-btn.play-btn:hover:not(:disabled),.transport-btn.play-btn:focus-visible{background:color-mix(in srgb,var(--accent) 18%,var(--paper));border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}.transport-btn.play-btn.playing{background:color-mix(in srgb,var(--accent) 18%,var(--paper));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}.transport-btn.play-btn.playing .transport-icon{color:var(--accent)}.transport-btn:disabled{cursor:not-allowed;color:#8c8175;background:#eee8dc;border-color:#d8cebd;opacity:1}.transport-btn:disabled .transport-icon{color:#8c8175}.replay-stepbox{grid-column:1 / -1;min-width:0;display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.1rem 0 0;line-height:1.1}.replay-step{font-variant-numeric:tabular-nums;font-size:.9rem}.replay-timeline{grid-column:1 / -1;position:relative;isolation:isolate;z-index:5;min-height:1.8rem;display:flex;align-items:center;min-width:0}.replay-timeline-track{position:absolute;z-index:1;left:.55rem;right:.55rem;top:50%;transform:translateY(-50%);height:.52rem;border-radius:999px;background:linear-gradient(180deg,var(--line-soft),var(--line));overflow:visible;pointer-events:none}.replay-timeline-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--accent-soft),color-mix(in srgb,var(--accent) 42%,white))}.replay-timeline-thumb{position:absolute;z-index:4;top:50%;width:1.1rem;height:1.1rem;border-radius:50%;transform:translate(-50%,-50%);background:var(--paper);border:2px solid var(--good);box-shadow:0 1px 2px #1f1a162e;pointer-events:none}.replay-slider{position:absolute;z-index:8;top:0;right:0;bottom:0;left:0;width:100%;margin:0;background:transparent;accent-color:var(--accent);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1.8rem;cursor:pointer}.replay-slider::-webkit-slider-runnable-track{height:.52rem;background:transparent}.replay-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.1rem;height:1.1rem;margin-top:-.29rem;border-radius:50%;background:transparent;border:0}.replay-slider::-moz-range-track{height:.7rem;background:transparent;border:0}.replay-slider::-moz-range-thumb{width:1.2rem;height:1.2rem;border-radius:50%;background:transparent;border:0}.replay-event{font-style:italic;font-size:.95rem;min-height:1.3em}.replay-table{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.75rem 1rem;box-shadow:var(--shadow-sm)}.replay-table-letters{display:flex;flex-wrap:wrap;gap:.25rem}.replay-tile{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.9rem;padding:0 .3rem;background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:.3rem;font-family:var(--serif);font-weight:700;letter-spacing:.04em;box-shadow:var(--tile-shadow)}.replay-standings{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem}.replay-player{background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.6rem .85rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.4rem}.replay-player>header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;border-bottom:1px solid var(--line-soft);padding-bottom:.3rem;font-weight:600}.replay-player>header .score{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:1.15rem}.replay-words{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}.replay-words li{display:inline-flex}.replay-word-btn{background:var(--bg);border:1px solid var(--line-soft);border-radius:.3rem;padding:.1rem .45rem;font:inherit;font-size:.82rem;letter-spacing:.04em;color:var(--ink);cursor:pointer;transition:background 80ms ease,border-color 80ms ease}.replay-word-btn:hover:not(:disabled){background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.replay-word-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.replay-word-btn:disabled{cursor:default}.replay-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,20rem);gap:.75rem;align-items:start}.replay-main,.replay-side{display:flex;flex-direction:column;gap:.75rem;min-width:0}.event-log{background:var(--paper);border:1px solid var(--line);border-radius:.5rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;max-height:32rem}.event-log .replay-controls{border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:var(--paper)}.event-log-header{display:flex;justify-content:space-between;align-items:baseline;padding:.55rem .85rem;background:var(--bg);border-bottom:1px solid var(--line);font-weight:600;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.event-log-empty{padding:1rem;margin:0;font-size:.85rem}.event-log-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}.event-log-entry{border-bottom:1px solid var(--line-soft)}.event-log-entry:last-child{border-bottom:0}.event-log-entry.current{background:var(--accent-soft);border-left:3px solid var(--accent)}.event-log-btn{display:flex;width:100%;align-items:flex-start;gap:.45rem;padding:.36rem .65rem;background:transparent;border:0;text-align:left;font:inherit;font-size:.8rem;line-height:1.25;color:var(--ink);cursor:pointer}.event-log-btn:hover{background:var(--line-soft)}.event-log-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.event-log-kind{font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.06rem .28rem;border-radius:.25rem;flex-shrink:0;margin:0 .05rem}.event-log-kind.kind-C{background:var(--good-soft);color:var(--good)}.event-log-kind.kind-G{background:#7080c42e;color:#2f4188}.event-log-kind.kind-S{background:var(--warn-soft);color:var(--warn)}.event-log-text{min-width:0;display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.2rem;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.event-log-text strong{font-weight:800}@media (max-width: 800px){.replay-header{grid-template-columns:minmax(0,1fr)}.replay-toolbar{grid-template-columns:auto auto auto 1fr;gap:.45rem}.replay-timeline{grid-column:1 / -1;grid-row:2;order:2}.replay-stepbox{grid-column:4;grid-row:1;min-width:4rem}.replay-grid{grid-template-columns:minmax(0,1fr)}.event-log{max-height:18rem}}.game-row-opponents{min-width:0}.game-row-score{font-variant-numeric:tabular-nums}.game-row-delta{font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem}.game-row-delta.up{color:var(--good)}.game-row-delta.down{color:var(--warn)}.game-row-date{font-size:.78rem}.link-inline{border:0;background:transparent;padding:0;font:inherit;color:var(--ink);text-decoration:underline dotted;cursor:pointer}.link-inline:hover{color:var(--accent)}@media (max-width: 600px){.game-row{grid-template-columns:1fr auto;grid-auto-rows:auto}.game-row-opponents{grid-column:1 / -1}.game-row-score{grid-column:1 / 2}.game-row-delta{grid-column:2 / 3;text-align:right}.game-row-date{grid-column:1 / -1}}body[data-input-mode=tap] .app{padding:.4rem}body[data-input-mode=tap] .lobby-screen{max-width:100%;width:100%;gap:.6rem;padding:0}body[data-input-mode=tap] .lobby-header{gap:.15rem}body[data-input-mode=tap] .pin-display{font-size:2rem;letter-spacing:.18em;padding:.3rem 1rem;border-radius:.4rem}body[data-input-mode=tap] .lobby-settings{padding:.55rem .5rem;gap:.45rem;border-radius:.4rem}body[data-input-mode=tap] .section-heading{padding-bottom:.35rem}body[data-input-mode=tap] .section-heading h2{font-size:.92rem}body[data-input-mode=tap] .settings-field{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;font-size:.82rem}body[data-input-mode=tap] .settings-field+.settings-field{padding-top:.45rem}body[data-input-mode=tap] .settings-field-label{font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}body[data-input-mode=tap] .settings-notch{padding:.4rem .3rem;font-size:.8rem}body[data-input-mode=tap] .settings-field-hint{font-size:.7rem;align-self:flex-end}body[data-input-mode=tap] .lobby-actions{gap:.4rem}body[data-input-mode=tap] .roster-row{padding:.32rem .5rem;font-size:.86rem;gap:.4rem}body[data-input-mode=tap] .roster-row .badge{font-size:.6rem;padding:.08rem .4rem}body[data-input-mode=tap] .leaderboard-screen,body[data-input-mode=tap] .profile-screen{max-width:100%;width:100%;gap:.6rem;padding:0}body[data-input-mode=tap] .board-header{gap:.55rem}body[data-input-mode=tap] .board-header h1{font-size:1.3rem}body[data-input-mode=tap] .board-table{table-layout:fixed;width:100%}body[data-input-mode=tap] .board-table th,body[data-input-mode=tap] .board-table td{padding:.32rem .35rem;font-size:.76rem}body[data-input-mode=tap] .board-table th{font-size:.6rem;letter-spacing:.02em}body[data-input-mode=tap] .board-table th:nth-child(1),body[data-input-mode=tap] .board-table td:nth-child(1){width:2.1rem}body[data-input-mode=tap] .board-table th:nth-child(3),body[data-input-mode=tap] .board-table td:nth-child(3){width:3rem}body[data-input-mode=tap] .board-table th:nth-child(5),body[data-input-mode=tap] .board-table td:nth-child(5){width:3.6rem}body[data-input-mode=tap] .board-table thead th:nth-child(4),body[data-input-mode=tap] .board-table tbody td:nth-child(4){display:none}body[data-input-mode=tap] .board-table td:nth-child(2) .player-name{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}body[data-input-mode=tap] .leaderboard-medal{width:.45rem;height:.45rem;margin-right:.25rem}body[data-input-mode=tap] .rating-chip{font-size:.58rem;padding:.05rem .28rem}body[data-input-mode=tap] .board-pagination{gap:.45rem;font-size:.78rem}body[data-input-mode=tap] .board-pagination button{padding:.35rem .7rem;font-size:.78rem}
