:root{--felt: #1d6a58;--felt-deep: #155246;--felt-light: #27836d;--cream: #fff7e6;--cream-2: #f6ead1;--tile: #fbe7b5;--tile-hi: #fff3d2;--tile-edge: #cf9f4f;--ink: #3b2a14;--ink-2: #6b5538;--ink-soft: rgba(255, 247, 230, .78);--ink-softer: rgba(255, 247, 230, .5);--pop: #ff7a3d;--pop-edge: #c7501a;--sun: #ffd166;--sun-edge: #d9a62e;--dl: #8fd3f4;--tl: #3a86ff;--dw: #ff9fb2;--tw: #e63946;--win: #7fd69a;--font-display: "Baloo 2", "Arial Rounded MT Bold", system-ui, sans-serif;--font-ui: "Nunito", "Segoe UI", system-ui, sans-serif;--board-gap: 2px;--board-w: min(100vw - 20px, 560px, 100dvh - 330px);--cell: calc((var(--board-w) - 14 * var(--board-gap) - 8px) / 15);--radius: 16px;--ease-pop: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-ui);color:var(--cream);background:var(--felt);background-image:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.1),transparent 60%),repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 6px);min-height:100dvh;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input{font:inherit}a{color:inherit}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em}.muted{color:var(--ink-soft)}.small{font-size:13px}.center{text-align:center}@keyframes pop-in{0%{opacity:0;transform:scale(.85) translateY(8px)}to{opacity:1;transform:none}}@keyframes drop-in{0%{transform:scale(1.5) translateY(-14px);opacity:0}60%{transform:scale(.94);opacity:1}to{transform:none}}@keyframes slide-in{0%{transform:translateY(40px) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}@keyframes shake-a{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}@keyframes shake-b{10%,90%{transform:translate(2px)}20%,80%{transform:translate(-4px)}30%,50%,70%{transform:translate(7px)}40%,60%{transform:translate(-7px)}}@keyframes float-up{0%{opacity:0;transform:translate(-50%) scale(.6)}15%{opacity:1;transform:translate(-50%,-14px) scale(1.15)}to{opacity:0;transform:translate(-50%,-90px) scale(1)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.55}}@keyframes glow-last{0%{box-shadow:0 2px 0 var(--tile-edge),0 0 #ffd166e6}to{box-shadow:0 2px 0 var(--tile-edge),0 0 0 10px #ffd16600}}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes toast-in{0%{opacity:0;transform:translateY(-16px) scale(.9)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes count-bump{0%{transform:scale(1)}40%{transform:scale(1.35);color:var(--sun)}to{transform:scale(1)}}@keyframes word-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.pop-in{animation:pop-in .35s var(--ease-pop) both}.drop-in{animation:drop-in .32s var(--ease-pop) both}.slide-in{animation:slide-in .45s var(--ease-pop) both}.do-shake.shake-a{animation:shake-a .5s cubic-bezier(.36,.07,.19,.97) both}.do-shake.shake-b{animation:shake-b .5s cubic-bezier(.36,.07,.19,.97) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tile{position:relative;display:grid;place-items:center;background:linear-gradient(180deg,var(--tile-hi),var(--tile));color:var(--ink);border-radius:18%;box-shadow:0 3px 0 var(--tile-edge),0 4px 6px #00000040;font-family:var(--font-display);font-weight:800;-webkit-user-select:none;user-select:none;touch-action:none}.tile-letter{line-height:1;transform:translateY(-4%)}.tile-value{position:absolute;right:9%;bottom:7%;font-family:var(--font-ui);font-weight:800;line-height:1}.tile-board{width:100%;height:100%;border-radius:16%;box-shadow:0 2px 0 var(--tile-edge),0 2px 3px #0000004d}.tile-board .tile-letter{font-size:calc(var(--cell) * .58)}.tile-board .tile-value{font-size:calc(var(--cell) * .26);right:7%;bottom:4%}.tile-rack{width:46px;height:50px}.tile-rack .tile-letter{font-size:28px}.tile-rack .tile-value{font-size:11px}.tile-mini{width:22px;height:24px;border-radius:5px;box-shadow:0 2px 0 var(--tile-edge)}.tile-mini .tile-letter{font-size:14px}.tile-mini .tile-value{display:none}.tile-isblank{color:#8a6a3a;background:linear-gradient(180deg,#fff9ec,#f3e3bf)}.tile-isblank .tile-letter:after{content:""}.tile-pending{outline:3px solid var(--sun);outline-offset:-1px;z-index:2;cursor:grab}.tile-pending:active{cursor:grabbing}.tile-last{animation:glow-last 1.6s ease-out 2;background:linear-gradient(180deg,#fff7dc,#ffe6a3)}.board{width:var(--board-w);margin:0 auto;display:grid;grid-template-columns:repeat(15,1fr);gap:var(--board-gap);padding:4px;background:var(--felt-deep);border-radius:12px;box-shadow:inset 0 2px 8px #00000073,0 1px #ffffff14;touch-action:manipulation;position:relative;transition:transform .22s var(--ease-pop);will-change:transform}.board.is-zoomed{z-index:30;box-shadow:inset 0 2px 8px #00000073,0 18px 40px #00000073}.board.is-zoomed .cell-target{box-shadow:inset 0 0 0 1px #ffffff59}.cell{aspect-ratio:1;position:relative;display:grid;place-items:center;background:var(--felt-light);border-radius:14%;transition:transform .15s,background-color .2s,box-shadow .2s}.cell-label{font-family:var(--font-ui);font-weight:800;font-size:calc(var(--cell) * .34);line-height:1;color:#ffffff8c;letter-spacing:-.02em}.cell-DL{background:var(--dl)}.cell-DL .cell-label{color:#0a325aa6}.cell-TL{background:var(--tl)}.cell-TL .cell-label{color:#ffffffd9}.cell-DW{background:var(--dw)}.cell-DW .cell-label{color:#6e1432a6}.cell-TW{background:var(--tw)}.cell-TW .cell-label{color:#ffffffe6}.cell-star .cell-label{font-size:calc(var(--cell) * .6);color:#6e1432b3}.cell-target:hover{transform:scale(1.08);box-shadow:0 0 0 2px var(--sun);z-index:1}.is-my-turn .cell-target{box-shadow:inset 0 0 0 1px #ffffff40}.cell-inword{box-shadow:0 0 0 2px var(--sun);z-index:1}.cell-drop{z-index:3;transform:scale(1.12);background:#fff6d6;box-shadow:0 0 0 3px var(--pop),0 0 0 6px #ff7a3d59,0 6px 14px #00000059}.tile-held{transform:scale(1.18);outline:3px solid var(--pop);outline-offset:-1px;box-shadow:0 5px 0 var(--tile-edge),0 12px 18px #00000073;z-index:4}.board.is-zoomed .cell-drop{transform:scale(1.08)}.game{padding:max(10px,env(safe-area-inset-top)) 10px calc(24px + env(safe-area-inset-bottom));max-width:580px;margin:0 auto}.game-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.back{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;text-decoration:none;font-size:30px;line-height:1;font-family:var(--font-display);background:#ffffff1a;flex:none;padding-bottom:4px}.players{flex:1;display:flex;gap:8px;justify-content:center;min-width:0}.player{position:relative;display:flex;flex-direction:column;align-items:center;min-width:78px;padding:6px 12px 4px;border-radius:14px;background:#0000002e;transition:background .3s,transform .3s}.player.is-active{background:var(--cream);color:var(--ink);transform:translateY(-2px);box-shadow:0 4px 0 var(--tile-edge)}.player.is-winner{background:var(--sun);color:var(--ink);box-shadow:0 4px 0 var(--sun-edge)}.player.is-out{opacity:.5;text-decoration:line-through}.player-name{font-size:12px;font-weight:800;opacity:.8;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-score{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1.05;display:inline-block}.player-score.is-counting{animation:count-bump .5s var(--ease-pop)}.turn-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border-radius:50%;background:var(--pop);box-shadow:0 0 0 3px var(--felt);animation:pulse 1.4s ease-in-out infinite}.bag{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;border:0;cursor:pointer;background:#ffffff1a;color:var(--cream)}.legend-btn{flex:none;width:46px;height:46px;border-radius:12px;border:0;cursor:pointer;background:#ffffff1a;color:var(--cream);font-family:var(--font-display);font-weight:800;font-size:24px;line-height:1}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.legend li{display:flex;align-items:center;gap:14px}.legend li>div{display:flex;flex-direction:column;gap:2px}.legend li b{font-size:16px}.legend li span:last-child{font-size:14px;color:var(--ink-2)}.legend-cell{--cell: 44px;width:44px;height:44px;flex:none;border-radius:10px;display:grid;place-items:center;aspect-ratio:auto}.legend-cell .cell-label{font-size:15px}.legend-cell.cell-star .cell-label{font-size:26px}.legend-tile{background:none}.legend-tile .tile-mini{width:36px;height:40px;font-size:20px}.legend-bingo{background:var(--sun);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:17px;box-shadow:0 3px 0 var(--sun-edge)}.legend-note{margin:16px 0 0;line-height:1.45}.legend-values{margin-top:12px}.legend-values summary{cursor:pointer;font-weight:800;color:var(--ink-2);padding:6px 0}.legend-letters{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;margin-top:8px}.legend-letters span{display:flex;justify-content:space-between;padding:4px 8px;border-radius:8px;background:#3b2a140f;font-size:14px}.legend-letters b{font-family:var(--font-display)}.bag-count{font-family:var(--font-display);font-weight:800;font-size:18px;line-height:1}.bag-label{font-size:9px;font-weight:800;opacity:.7;text-transform:lowercase}.status-line{text-align:center;font-family:var(--font-display);font-weight:700;font-size:17px;margin:4px 0 10px;animation:pop-in .4s var(--ease-pop) both}.status-line.is-hot{color:var(--sun)}.status-line.is-win{color:var(--win);font-size:22px}.banner{position:fixed;left:50%;top:24%;transform:translate(-50%);z-index:50;background:var(--sun);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:24px;padding:14px 26px;border-radius:20px;box-shadow:0 6px 0 var(--sun-edge),0 14px 30px #00000059;animation:pop-in .4s var(--ease-pop) both,wiggle .6s ease-in-out .4s 2}.preview{min-height:36px;display:flex;align-items:center;justify-content:center;margin:10px 0 6px;text-align:center}.preview-hint{font-size:14px;color:var(--ink-soft)}.preview-words{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.word-chip{background:var(--cream);color:var(--ink);border-radius:999px;padding:4px 12px;font-weight:800;font-size:14px;box-shadow:0 2px 0 var(--tile-edge)}.word-chip b{color:var(--pop-edge);margin-left:2px}.chip-bingo{background:linear-gradient(90deg,var(--sun),#fff1b8,var(--sun));background-size:200% 100%;animation:pop-in .35s var(--ease-pop) both,word-sweep 1.4s linear infinite}.rack{display:flex;gap:6px;justify-content:center;align-items:flex-end;padding:12px 10px 10px;margin:0 auto;width:min(100%,420px);background:linear-gradient(180deg,#8a5a2b,#6b4420);border-radius:14px;box-shadow:inset 0 3px 6px #00000073,0 4px #4a2e14;min-height:72px;touch-action:none}.rack-tile{cursor:grab;transition:transform .18s var(--ease-pop),box-shadow .18s}.rack-tile:hover{transform:translateY(-3px)}.rack-tile.is-selected{transform:translateY(-10px) scale(1.08) rotate(-3deg);box-shadow:0 6px 0 var(--tile-edge),0 14px 18px #00000059;animation:breathe 1.2s ease-in-out infinite}.rack-tile.is-idle{cursor:default}.rack-tile.is-picked{transform:translateY(-8px);outline:3px solid var(--pop)}.rack.is-swapping .rack-tile{cursor:pointer}.rack-slot{width:46px;height:50px;border-radius:9px;background:#0003;box-shadow:inset 0 2px 4px #0000004d}.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:scale(1.15) rotate(-4deg);filter:drop-shadow(0 12px 14px rgba(0,0,0,.4))}.drag-ghost.is-touch{transform:scale(1.35) rotate(-3deg);filter:drop-shadow(0 22px 18px rgba(0,0,0,.45))}.controls{display:flex;gap:8px;align-items:center;justify-content:center;margin:12px auto 0;width:min(100%,460px)}.controls-note{flex:1;text-align:center;font-size:14px;color:var(--ink-soft)}.play-btn{margin-left:auto;min-width:118px}.play-score{font-family:var(--font-display);font-size:1.15em;margin-left:4px}.final{text-align:center;margin:18px auto 0;padding:20px;background:var(--cream);color:var(--ink);border-radius:20px;width:min(100%,420px);box-shadow:0 5px 0 var(--tile-edge)}.final.is-win{background:var(--sun);box-shadow:0 5px 0 var(--sun-edge)}.final h2{font-size:28px}.final-scores{list-style:none;padding:0;margin:12px 0 16px}.final-scores li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(0,0,0,.08)}.final-scores li span:first-child{flex:1;text-align:left;font-weight:800}.final-scores b{font-family:var(--font-display);font-size:22px}.final-rack{display:flex;gap:3px}.history{margin:18px auto 0;width:min(100%,460px);font-size:14px}.history ul{list-style:none;margin:0;padding:0}.history li{display:flex;gap:10px;padding:7px 10px;border-radius:10px}.history li:nth-child(odd){background:#0000001f}.h-who{width:64px;font-weight:800;opacity:.8;flex:none}.h-what{flex:1;font-weight:700;letter-spacing:.02em}.h-score{font-family:var(--font-display);font-weight:800;color:var(--sun)}.link-btn{background:none;border:0;color:var(--ink-soft);font-weight:800;padding:10px;cursor:pointer;width:100%}.float-score{position:fixed;z-index:60;pointer-events:none;font-family:var(--font-display);font-weight:800;font-size:30px;color:var(--sun);text-shadow:0 2px 0 var(--pop-edge),0 4px 12px rgba(0,0,0,.4);animation:float-up 1.5s ease-out both}.float-score.is-big{font-size:38px;color:#fff;text-shadow:0 3px 0 var(--pop),0 6px 16px rgba(0,0,0,.5)}.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:55}.letter-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.letter-pick{aspect-ratio:1;border:0;border-radius:12px;cursor:pointer;background:linear-gradient(180deg,var(--tile-hi),var(--tile));color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:24px;box-shadow:0 3px 0 var(--tile-edge);transition:transform .1s}.letter-pick:active{transform:translateY(3px);box-shadow:0 0 0 var(--tile-edge)}.lookup{display:flex;gap:8px}.lookup input{flex:1}.lookup-result{font-weight:800;margin:0;padding:10px 14px;border-radius:12px}.lookup-result.is-yes{background:#7fd69a40;color:#1b6b36}.lookup-result.is-no{background:#e6394626;color:#a51d2a}.btn{border:0;cursor:pointer;border-radius:14px;padding:10px 16px;font-weight:800;font-size:15px;line-height:1.2;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:transform .08s,box-shadow .08s,opacity .2s;color:var(--cream);background:#ffffff1f}.btn:disabled{opacity:.45;cursor:default}.btn-big{padding:14px 24px;font-size:18px;border-radius:18px}.btn-primary{background:var(--pop);color:#fff;box-shadow:0 4px 0 var(--pop-edge)}.btn-primary:not(:disabled):active{transform:translateY(4px);box-shadow:0 0 0 var(--pop-edge)}.btn-ghost{background:#ffffff1f}.btn-ghost:not(:disabled):active{background:#ffffff38;transform:translateY(1px)}.btn-danger{background:var(--tw);color:#fff;box-shadow:0 4px #9c1f2a}.btn-danger:not(:disabled):active{transform:translateY(4px);box-shadow:none}.sheet .btn-ghost{background:#3b2a1414;color:var(--ink)}.sheet .btn-secondary{background:#3b2a141a;color:var(--ink)}.icon-btn{border:0;background:#3b2a141a;color:var(--ink);width:44px;border-radius:12px;font-size:22px;cursor:pointer}.btn:focus-visible,.icon-btn:focus-visible,.back:focus-visible,.bag:focus-visible,.letter-pick:focus-visible,input:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.segmented{display:flex;background:#3b2a1414;border-radius:14px;padding:4px;gap:4px}.segmented button{flex:1;border:0;background:transparent;color:var(--ink-2);font-weight:800;padding:10px;border-radius:11px;cursor:pointer;transition:background .15s,color .15s,transform .15s}.segmented button.is-on{background:#fff;color:var(--ink);box-shadow:0 2px 0 var(--tile-edge)}.field em{font-style:normal;font-weight:700;opacity:.6;margin-left:4px}.people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:40dvh;overflow:auto}.person{width:100%;display:flex;align-items:center;gap:12px;border:2px solid rgba(59,42,20,.12);background:#fff;color:var(--ink);padding:8px 12px 8px 8px;border-radius:16px;cursor:pointer;font-weight:800;font-size:16px;text-align:left;transition:border-color .15s,background .15s,transform .15s var(--ease-pop)}.person:active{transform:scale(.98)}.person.is-on{border-color:var(--pop);background:#fff1e8}.person-name{flex:1}.person-check{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#3b2a1414;color:#fff;font-size:16px;transition:background .15s,transform .2s var(--ease-pop)}.person.is-on .person-check{background:var(--pop);transform:scale(1.1)}.sheet input[type=password],.login-card input[type=password]{width:100%;padding:13px 14px;border-radius:14px;border:2px solid rgba(59,42,20,.15);background:#fff;color:var(--ink);font-size:16px;font-weight:700;outline:none}.danger-link{color:#a51d2a;font-size:13px}.danger-zone{background:#fff0f1;border:2px solid rgba(230,57,70,.25);border-radius:16px;padding:14px}.danger-zone p{margin:0;color:#7a1e27}.stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-weight:800;font-size:14px}.field-row{display:flex;gap:8px}.field-row input{flex:1;min-width:0}input[type=email],input[type=text],input:not([type]){width:100%;padding:13px 14px;border-radius:14px;border:2px solid rgba(59,42,20,.15);background:#fff;color:var(--ink);font-size:16px;font-weight:700;outline:none;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--pop);box-shadow:0 0 0 4px #ff7a3d33}.switch-row{display:flex;align-items:center;gap:12px;font-weight:800;padding:6px 0;cursor:pointer}.switch-row>span:first-child{flex:1}.switch-row input{position:absolute;opacity:0;width:0;height:0}.switch{width:50px;height:30px;border-radius:999px;background:#3b2a1433;position:relative;transition:background .2s;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000040;transition:transform .2s var(--ease-pop)}.switch-row input:checked+.switch{background:var(--felt-light)}.switch-row input:checked+.switch:after{transform:translate(20px)}.switch-row input:focus-visible+.switch{outline:3px solid var(--sun)}.sheet-backdrop{position:fixed;inset:0;z-index:80;background:#0a1e198c;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .2s}.sheet-backdrop.is-open{opacity:1}.sheet{width:min(100%,520px);background:var(--cream);color:var(--ink);border-radius:24px 24px 0 0;padding:10px 20px calc(24px + env(safe-area-inset-bottom));max-height:88dvh;overflow:auto;transform:translateY(100%);transition:transform .25s var(--ease-pop)}.is-open .sheet{transform:none}.sheet-handle{width:44px;height:5px;border-radius:3px;background:#3b2a1433;margin:0 auto 14px}.sheet-title{font-size:24px;margin-bottom:14px}.sheet .muted,.sheet .field{color:var(--ink-2)}.settings{margin-top:20px;padding-top:16px;border-top:1px solid rgba(59,42,20,.12)}.toaster{position:fixed;top:max(12px,env(safe-area-inset-top));left:0;right:0;z-index:90;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{background:var(--cream);color:var(--ink);font-weight:800;padding:12px 18px;border-radius:16px;box-shadow:0 4px 0 var(--tile-edge),0 10px 30px #00000059;max-width:min(92vw,440px);text-align:center;animation:toast-in .35s var(--ease-pop) both}.toast-error{background:#ffe3e6;box-shadow:0 4px 0 var(--tw),0 10px 30px #00000059}.toast-success{background:#e2f8e9;box-shadow:0 4px #3fae66,0 10px 30px #00000059}.wordmark{display:flex;gap:5px}.wordmark-tile{animation:slide-in .5s var(--ease-pop) both}.wordmark .tile-mini{width:26px;height:28px}.wordmark .tile-mini .tile-letter{font-size:17px}.splash{min-height:100dvh;display:grid;place-items:center}.splash-dot{width:36px;height:36px;margin:40px auto;border-radius:50%;border:4px solid rgba(255,255,255,.25);border-top-color:var(--sun);animation:spin .8s linear infinite}.login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:18px}.login .wordmark .tile-rack{width:54px;height:60px}.login .wordmark .tile-rack .tile-letter{font-size:34px}.login-tagline{margin:0;text-align:center;font-size:17px;color:var(--ink-soft);max-width:300px}.card{background:var(--cream);color:var(--ink);border-radius:22px;padding:22px;box-shadow:0 6px 0 var(--tile-edge),0 16px 40px #0000004d}.login-card{width:min(100%,400px);display:flex;flex-direction:column;gap:14px}.login-card h2{font-size:24px}.login-card p{margin:0;line-height:1.5;color:var(--ink-2)}.login-card .field{color:var(--ink-2)}.login-hint{font-size:13px;text-align:center}.dev-link{font-size:13px;background:#fff1c4;padding:8px 10px;border-radius:10px}.home{max-width:560px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px 110px}.home-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.me-chip{display:flex;align-items:center;gap:8px;border:0;cursor:pointer;background:#ffffff1f;color:var(--cream);font-weight:800;padding:6px 12px 6px 6px;border-radius:999px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--sun);color:var(--ink);display:grid;place-items:center;font-family:var(--font-display);font-weight:800}.empty{text-align:center;padding:40px 20px;display:flex;flex-direction:column;gap:14px;align-items:center}.empty h2{font-size:28px}.empty p{margin:0;color:var(--ink-soft);max-width:320px;line-height:1.5}.game-section{margin-bottom:24px}.game-section h2{font-size:20px;margin-bottom:10px;display:flex;align-items:center;gap:8px}.game-section .count{font-family:var(--font-ui);font-size:13px;background:#ffffff26;border-radius:999px;padding:2px 9px}.game-section.is-hot h2{color:var(--sun)}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.game-card-link{display:block;text-decoration:none;background:var(--cream);color:var(--ink);border-radius:18px;padding:14px 16px;box-shadow:0 4px 0 var(--tile-edge);transition:transform .12s,box-shadow .12s}.game-card-link:active{transform:translateY(3px);box-shadow:0 1px 0 var(--tile-edge)}.is-hot .game-card-link{box-shadow:0 4px 0 var(--sun-edge),0 0 0 3px var(--sun)}.game-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.vs{font-weight:800;font-size:15px;color:var(--ink-2)}.pill{font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;background:#3b2a141a}.pill-hot{background:var(--pop);color:#fff;animation:breathe 1.4s ease-in-out infinite}.pill-win{background:var(--win);color:#113d22}.scoreline{display:flex;align-items:baseline;gap:10px;margin:6px 0 4px;font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1}.scoreline .dash{color:var(--ink-2);opacity:.5;font-size:22px}.score{opacity:.6}.score.is-leading{opacity:1}.game-card-foot{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:var(--ink-2)}.game-card-foot .muted{color:#3b2a1480}.fab{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;border:0;cursor:pointer;background:var(--pop);color:#fff;font-weight:800;font-size:17px;padding:14px 24px 14px 18px;border-radius:999px;box-shadow:0 5px 0 var(--pop-edge),0 14px 30px #00000059;display:flex;align-items:center;gap:8px;transition:transform .08s,box-shadow .08s}.fab:active{transform:translate(-50%) translateY(5px);box-shadow:0 0 0 var(--pop-edge)}.fab-plus{font-family:var(--font-display);font-size:26px;line-height:1}@media(max-width:400px){.rack{gap:5px;padding:10px 6px 8px}.tile-rack,.rack-slot{width:43px;height:47px}.tile-rack .tile-letter{font-size:26px}.controls{gap:6px}.btn{padding:10px 12px}}@media(min-width:600px){.tile-rack{width:52px;height:56px}.tile-rack .tile-letter{font-size:31px}.rack-slot{width:52px;height:56px}}
