:root{--bg:#fff8e7;--ink:#2b2118;--accent:#ff6b35;--ok:#2a9d8f;--bad:#d62828}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.screen{flex-direction:column;align-items:center;gap:16px;max-width:480px;min-height:calc(100dvh - 64px);margin:0 auto;padding:16px;display:flex}.btn{border:2px solid var(--ink);min-width:48px;min-height:48px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:12px;padding:0 20px;font-size:1.1rem;font-weight:600}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--big{min-height:64px;padding:0 32px;font-size:1.35rem}.letter{color:var(--accent);font-size:6rem;font-weight:800;line-height:1}.wheel{border-radius:50%;width:260px;height:260px;position:relative}.wheel__disc{border:4px solid var(--ink);background:repeating-conic-gradient(from -13.846deg, #fff 0 27.692deg, #ffe3d6 0 55.385deg);border-radius:50%;width:100%;height:100%;transition:transform 2s cubic-bezier(.2,.8,.3,1);position:relative;overflow:hidden}.wheel__disc span{text-align:center;transform-origin:50% 100%;width:48px;height:50%;margin-left:-24px;padding-top:10px;font-size:.85rem;font-weight:700;position:absolute;top:0;left:50%}.wheel__pointer{border-left:14px solid #0000;border-right:14px solid #0000;border-top:20px solid var(--accent);z-index:1;width:0;height:0;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.timer{font-variant-numeric:tabular-nums;color:var(--ink);font-size:2.5rem;font-weight:700}.timer--low{color:var(--bad);animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.word-list{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;margin:0;padding:0;list-style:none;display:flex}.word-list li{border:1px solid var(--ink);background:#fff;border-radius:999px;padding:4px 12px}.feedback{text-align:center;min-height:1.5em;font-weight:600}.feedback--ok{color:var(--ok)}.feedback--bad{color:var(--bad)}.scribe__count{font-variant-numeric:tabular-nums;font-size:4rem;font-weight:800;line-height:1.1}.score-table{border-collapse:collapse;width:100%;font-size:1rem}.score-table th,.score-table td{border-bottom:1px solid var(--ink);text-align:center;padding:8px}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table__best{background:var(--accent);color:#fff;font-weight:700}.avatar{background:var(--accent);color:#fff;text-align:center;border-radius:50%;width:32px;height:32px;font-weight:700;line-height:32px;display:inline-block}.banner{background:var(--accent);color:#fff;text-align:center;border-radius:12px;width:100%;padding:12px 16px;font-weight:700}.bot-feed{border:2px dashed var(--accent);background:#fffdf5;border-radius:12px;width:100%;padding:8px 12px;font-size:.875rem}.turn-letter{margin:0;font-size:1.1rem;font-weight:700}.turn-letter strong{color:var(--accent);font-size:3rem;line-height:1}.setup-card{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:8px;width:100%;padding:16px;display:flex}.setup-card__title{margin:0;font-size:1.1rem}.setup-card__empty{margin:0}.setup-card .btn{width:100%}[role=radiogroup],[role=group]{flex-direction:column;gap:8px;width:100%;display:flex}.option{border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 12px;font-size:1.1rem;font-weight:600;display:flex}.option input{width:24px;height:24px;accent-color:var(--accent);margin:0}.option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#ffe3d6}.option:has(input:disabled){opacity:.5;cursor:default}.option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:1px}.field{align-items:center;gap:8px;width:100%;min-height:48px;display:flex}.field select{min-height:48px;margin-left:auto;font-size:1rem}.setup-card__select{font-weight:700}.setup-card__select--title{font-size:1.1rem}.setup-card .hint{margin:0}.turn{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:8px;width:100%;padding:12px;display:flex}.turn__head{align-items:center;gap:8px;display:flex}.turn__head .avatar{flex:none}.turn__name{overflow-wrap:break-word;flex:3rem;font-size:1.1rem;font-weight:700}.turn__meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.turn__letter{background:#ffe3d6;border-radius:8px;padding:2px 10px;font-weight:700}.turn__words{overflow-wrap:break-word}.turn__words--none{opacity:.75}.badge{background:var(--accent);color:#fff;border-radius:999px;padding:2px 10px;font-weight:700}.score{color:#b33c0e;flex:none;font-size:1.25rem;font-weight:800}.spin-card{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:12px;display:flex}.spin-card__turn{overflow-wrap:break-word;margin:0;font-size:1.1rem;font-weight:700}.spin-card__letter{font-size:4.5rem}.spin-card__note{text-align:center;margin:0}.spin-status{border-left:6px solid var(--accent);background:#ffe3d6;border-radius:8px;width:100%;margin:0;padding:10px 12px;font-weight:700}.joker-zone{border:2px solid var(--ink);background:#fff;border-radius:12px;width:100%;padding:12px}.joker-zone h2{text-align:center;margin:0 0 12px;font-size:1.2rem}.joker-zone h2+div{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.joker-zone .btn{min-width:0;min-height:48px;padding:0;font-size:1.2rem}.scribe{grid-template-columns:1fr 1fr;justify-items:center;gap:12px;width:100%;display:grid}.scribe__count,.scribe__label{grid-column:1/-1}.scribe .btn{width:100%}input{font-size:1rem}.profile-list{flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.profile-card{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.profile-card__avatar{font-size:2rem;line-height:1}.profile-card__name{overflow-wrap:break-word;flex:3rem;font-size:1.1rem;font-weight:700}.profile-card .btn{padding:0 10px;font-size:.95rem}.btn--danger{border-color:var(--bad);color:var(--bad)}.profile-form{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:16px;display:flex}.profile-form__section{border-top:1px solid var(--ink);flex-direction:column;gap:4px;padding-top:12px;display:flex}.field--stack{flex-direction:column;align-items:stretch;gap:6px;font-weight:700}.field input[type=checkbox]{width:24px;height:24px;accent-color:var(--accent);margin:0}.text-input{border:2px solid var(--ink);min-height:48px;color:var(--ink);background:#fff;border-radius:12px;padding:0 12px;font-weight:400}.text-input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.hint{opacity:.75;margin:0 0 8px 32px;font-size:.875rem}.avatar-picker{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.avatar-picker .btn{min-height:48px;padding:0;font-size:1.6rem;line-height:1}.avatar-picker .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px var(--ink)}.profile-form .btn{width:100%}.profile-form .field select{width:55%}.history-list{flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.history-item{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;align-items:stretch;gap:4px;padding:12px;display:flex}.history-item__winner{overflow-wrap:break-word;font-size:1.1rem;font-weight:700}.history-item__players,.history-item__date{overflow-wrap:break-word;font-size:.95rem}.history-item__date{opacity:.75;font-size:.875rem}.history-item .btn{align-self:flex-end;margin-top:8px;padding:0 10px;font-size:.95rem}.empty-note{text-align:center;margin:0}.settings-card{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:100%;padding:16px;display:flex}.settings-card h2{margin:0;font-size:1.2rem}.settings-card p{margin:0}.settings-card .btn{width:100%}.settings-card .hint{margin:0}.settings-card a{color:#b33c0e;font-weight:700;text-decoration:underline}.settings-link{font-size:1rem}.settings-import{text-align:center;justify-content:center;align-items:center;display:flex;position:relative}.settings-import input{opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.settings-import:focus-within{outline:3px solid var(--accent);outline-offset:1px}.settings-status{border-left:6px solid var(--ok);background:#e6f5f3;border-radius:8px;padding:10px 12px;font-weight:700}.settings-warning{border-left:6px solid var(--bad);background:#fdecec;border-radius:8px;padding:10px 12px;font-weight:700}.gameover__head{text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.gameover__trophy{font-size:3.5rem;line-height:1}.gameover__title{color:#b33c0e;overflow-wrap:break-word;max-width:100%;margin:0;font-size:2.1rem;line-height:1.1}.ranking{counter-reset:rank;flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.ranking__item{border:2px solid var(--ink);counter-increment:rank;background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.ranking__item:before{content:counter(rank);text-align:center;opacity:.6;flex:none;width:1.5rem;font-weight:800}.ranking__item--winner{border-color:var(--accent);background:#ffe3d6;border-width:3px;padding:16px 12px}.ranking__item--winner:before{opacity:1;color:#b33c0e}.ranking__avatar{flex:none;font-size:2rem;line-height:1}.ranking__item--winner .ranking__avatar{font-size:2.5rem}.ranking__name{overflow-wrap:break-word;flex:3rem;font-size:1.1rem;font-weight:700}.ranking__item--winner .ranking__name{font-size:1.3rem}.ranking__sep{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ranking__points{color:#b33c0e;flex:none;font-size:1.25rem;font-weight:800}.ranking__item--winner .ranking__points{font-size:1.5rem}.gameover__table{border:2px solid var(--ink);background:#fff;border-radius:12px;width:100%;overflow-x:auto}.gameover__table .score-table{font-size:.95rem}.gameover__table .score-table th,.gameover__table .score-table td{white-space:nowrap;padding:8px 6px}.gameover__table .score-table tbody tr:last-child td{border-bottom:0}.gameover__table .score-table th:first-child,.gameover__table .score-table td:first-child{text-overflow:ellipsis;background:#fff;max-width:9rem;padding-left:8px;position:sticky;left:0;overflow:hidden}.gameover__table .score-table th:last-child,.gameover__table .score-table td:last-child{box-shadow:-2px 0 0 var(--ink);background:#fff;font-weight:800;position:sticky;right:0}.gameover__table .score-table__best,.gameover__table .score-table__best td:first-child,.gameover__table .score-table__best td:last-child{color:var(--ink);background:#ffe3d6}.gameover__actions{flex-direction:column;gap:12px;width:100%;display:flex}.gameover__actions .btn{width:100%}
