:root{--badge-l1: #b06a3b;--badge-l2: #8c99a3;--badge-l3: #c99a12;--badge-l4: #138a5a;--color-bg: #f2fbf4;--color-surface: #ffffff;--color-surface-2: #e4f5e8;--color-text: #14301f;--color-text-muted: #4b6b57;--color-primary: #2f9e5b;--color-primary-strong: #1f7a44;--color-primary-contrast: #ffffff;--color-accent: #f6c445;--color-danger: #d64545;--color-warning: #d9a400;--color-tile: #ffffff;--color-tile-border: #bfe0c9;--color-tile-active: #ffe58a;--color-tile-valid: #9be7b5;--color-tile-invalid: #f6b3b3;--color-tile-duplicate: #ffe58a;--color-tile-hint: #cfe0ff;--color-hint: #4f7dd1;--color-heat-plenty: #9cc3ff;--color-heat-some: #ffe066;--color-heat-few: #ff7a6b;--color-heat-strong: #d9622b;--color-path: #2f9e5b;--radius: 14px;--radius-sm: 8px;--shadow: 0 2px 10px rgba(20, 48, 31, .1);--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--color-focus: #1f7a44;--color-primary-button: #227f46;--color-warning-text: #8a6400;--pie-mine: #2f9e5b;--pie-others: #d9a400;--pie-third: #4f7dd1;--pie-track: #dcebe0;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--color-bg: #0f1d15;--color-surface: #182b20;--color-surface-2: #22392c;--color-text: #eaf7ee;--color-text-muted: #a6c4b1;--color-primary: #3fbf70;--color-primary-strong: #63d68d;--color-primary-contrast: #0f1d15;--color-tile: #22392c;--color-tile-border: #35533f;--color-tile-active: #7a6a1f;--color-tile-valid: #2f7a4b;--color-tile-invalid: #7a2f2f;--color-tile-duplicate: #7a6a1f;--color-tile-hint: #2f4a7a;--color-hint: #8fb3f0;--color-heat-plenty: #2f5a9e;--color-heat-some: #8a7414;--color-heat-few: #a83232;--color-heat-strong: #f08a4b;--shadow: 0 2px 10px rgba(0, 0, 0, .4);--color-focus: #f6c445;--color-primary-button: #3fbf70;--color-warning-text: #d9a400;--pie-mine: #34a862;--pie-others: #b88a10;--pie-third: #6f9ae6;--pie-track: #2c4536}}*{box-sizing:border-box}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html{font-family:var(--font);-webkit-text-size-adjust:100%;overscroll-behavior:none}body{margin:0;background:var(--color-bg);color:var(--color-text);min-height:100svh;-webkit-tap-highlight-color:transparent}#root{min-height:100svh;display:flex;flex-direction:column}h1,h2,h3{margin:0;line-height:1.15}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--color-primary-strong)}.screen{flex:1;display:flex;flex-direction:column;width:100%;max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top) + 1rem) calc(env(safe-area-inset-right) + 1rem) calc(env(safe-area-inset-bottom) + 1rem) calc(env(safe-area-inset-left) + 1rem);gap:1rem}.screen-header{display:flex;align-items:center;gap:.75rem;min-height:2.5rem}.screen-header h1{font-size:1.35rem;flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:var(--radius);padding:.9rem 1.2rem;font-weight:700;font-size:1rem;background:var(--color-surface-2);color:var(--color-text);transition:transform .08s ease,background .15s ease;text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:default;pointer-events:none}.btn-primary{background:var(--color-primary-button);color:var(--color-primary-contrast)}.btn-primary:not(:disabled):hover{background:var(--color-primary-strong)}.btn-lg{font-size:1.15rem;padding:1.1rem 1.4rem}.btn-ghost{background:transparent;padding:.5rem .75rem}.btn-icon{width:2.5rem;height:2.5rem;padding:0;border-radius:50%}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;align-items:center;gap:.75rem}.field{display:flex;flex-direction:column;gap:.35rem}.muted{color:var(--color-text-muted)}.text-danger{color:var(--color-danger)}.label{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.spacer{flex:1}.footer-note{text-align:center;font-size:.8rem}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10}.modal{background:var(--color-bg);border-radius:var(--radius);padding:1rem;width:100%;max-width:26rem;display:flex;flex-direction:column;gap:.75rem}.modal .word-title{text-align:center;font-size:1.5rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.modal-actions{justify-content:center;flex-wrap:wrap}.update-prompt h2,.replaced-notice h2{font-size:1.25rem}.crash-detail{max-width:100%;overflow-x:auto;font-size:.8rem;color:var(--color-danger);text-align:left}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;text-align:center}.spinner{width:2.2rem;height:2.2rem;border-radius:50%;border:4px solid var(--color-surface-2);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.top-note{margin:0;text-align:center}.grow{flex:1}.full-width{width:100%}.text-center{text-align:center}.text-small{font-size:.85rem}.break-all{word-break:break-all}.row-center{justify-content:center}.row-between{justify-content:space-between}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--color-surface-2);border-radius:var(--radius);padding:4px}.segmented button{border:0;border-radius:calc(var(--radius) - 4px);padding:.7rem .25rem;background:transparent;font-weight:700}.segmented button[aria-pressed=true]{background:var(--color-surface);box-shadow:var(--shadow);color:var(--color-primary-strong)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}.switch-row input{width:1.4rem;height:1.4rem;accent-color:var(--color-primary)}.segmented.dense button{padding-inline:.15rem;font-size:.92rem;white-space:nowrap}.segmented.compact{display:inline-grid}.segmented.compact button{padding:.4rem .7rem;font-size:.85rem}.text-input{font:inherit;font-size:1.1rem;padding:.75rem .9rem;border-radius:var(--radius-sm);border:2px solid var(--color-tile-border);background:var(--color-surface);color:var(--color-text);width:100%}.text-input:focus{outline:none;border-color:var(--color-primary)}.code-input{text-align:center;font-size:1.8rem;font-weight:800;letter-spacing:.4em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.profile-chip{align-self:center;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem .35rem .4rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow);text-decoration:none;color:var(--color-text);font-weight:700}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.avatar-choice{border:3px solid transparent;border-radius:50%;padding:0;background:transparent;line-height:0}.avatar-choice .avatar{width:100%;height:auto}.avatar-choice.selected{border-color:var(--color-primary)}.avatar{border-radius:50%}.qr{border-radius:var(--radius-sm);background:#fff;padding:6px}.qr-placeholder{border-radius:var(--radius-sm);background:var(--color-surface-2)}.qr-modal{align-items:center}.badge{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:999px;background:var(--color-accent);color:#14301f}.badge.muted{background:var(--color-surface-2);color:var(--color-text-muted)}.stats-card{display:flex;flex-direction:column;gap:.6rem}.stats-head{display:flex;align-items:center;gap:.5rem}.stats-head .stats-toggle{flex:1;min-width:0}.stats-refresh{flex:none;width:2.25rem;height:2.25rem;font-size:1.1rem;background:var(--color-surface-2)}.stats-refresh:disabled{opacity:.85}.stats-refresh .spinning{display:inline-block;animation:spin .8s linear infinite}.stats-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.stats-toggle .label{flex:1}.stats-summary{font-size:.9rem;white-space:nowrap;font-variant-numeric:tabular-nums}.stats-head .chevron{flex:none;display:flex;align-items:center;justify-content:center;width:1.5rem;height:2.25rem;margin-right:-.25rem;font-size:1.6rem;line-height:1;color:var(--color-text-muted);cursor:pointer;transform:rotate(-90deg);transition:transform .15s ease}.stats-head .chevron.open{width:2.25rem;margin-right:-.5rem;transform:none}.stats-body{display:flex;align-items:center;gap:1rem}.pie{flex:none}.pie-track{stroke:var(--pie-track)}.pie-mine{stroke:var(--pie-mine)}.pie-others{stroke:var(--pie-others)}.pie-gap{stroke:var(--color-surface)}.stats-legend{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.stats-row{display:grid;grid-template-columns:.75rem 1fr auto;align-items:center;gap:.5rem;font-size:.95rem}.stats-row.total{border-top:1px solid var(--color-surface-2);padding-top:.2rem;margin-top:.1rem}.stats-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.swatch{width:.75rem;height:.75rem;border-radius:3px}.swatch.pie-mine{background:var(--pie-mine)}.swatch.pie-others{background:var(--pie-others)}.swatch.pie-track{background:var(--pie-track)}.stats-total{font-size:.85rem}.btn-share{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .8rem}.btn-share .qr-icon{flex:none}.lang-switch{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow)}.lang-switch-option{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;padding:.2rem;border-radius:999px;background:transparent;font-weight:700;line-height:0;transition:opacity .15s ease,transform .15s ease}.lang-switch-option[aria-pressed=false]{opacity:.55}.lang-switch-option[aria-pressed=false]:hover{opacity:.85}.lang-switch-option[aria-pressed=true]{opacity:1;transform:scale(1.08)}.lang-switch-flag{display:inline-flex;width:1.75rem;height:1.75rem;border-radius:50%;overflow:hidden;box-shadow:inset 0 0 0 1px #14301f26}.lang-switch-flag .flag{width:100%;height:100%;display:block}.lang-switch-option[aria-pressed=true] .lang-switch-flag{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.home{position:relative}.home-lang{position:absolute;top:calc(env(safe-area-inset-top) + .75rem);right:calc(env(safe-area-inset-right) + .75rem);z-index:1}.home-corner{position:absolute;top:calc(env(safe-area-inset-top) + .75rem);left:calc(env(safe-area-inset-left) + .75rem);z-index:1;display:inline-flex;gap:.25rem;padding:.25rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow)}.corner-btn{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;border-radius:50%;color:var(--color-text);transition:background .15s ease}.corner-btn:hover,.corner-btn:focus-visible{background:var(--color-surface-2)}.home-install{align-self:center;margin-top:2.85rem;display:inline-flex;align-items:center;gap:.35rem;height:2.25rem;padding:0 .9rem 0 .7rem;border:0;border-radius:999px;background:var(--color-primary-button);color:var(--color-primary-contrast);box-shadow:var(--shadow);font:inherit;font-size:.85rem;font-weight:700;white-space:nowrap;transition:background .15s ease}.home-install:hover,.home-install:focus-visible{background:var(--color-primary-strong)}.home-install+.hero{padding-top:.25rem}.install-steps{margin:0;padding-left:1.4rem;display:flex;flex-direction:column;gap:.5rem;line-height:1.4}.install-share-icon{vertical-align:-.25em;color:var(--color-hint)}.install-note{margin:0;font-size:.9rem}.lang-switch-names{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--radius);background:var(--color-surface-2);box-shadow:none}.lang-switch-names .lang-switch-option{flex-direction:column;gap:.3rem;padding:.5rem .25rem;border-radius:calc(var(--radius) - 4px);font-size:.9rem;line-height:1.2;transform:none}.lang-switch-names .lang-switch-option[aria-pressed=true]{background:var(--color-surface);box-shadow:var(--shadow);color:var(--color-primary-strong);transform:none}.lang-switch-names .lang-switch-flag{width:1.4rem;height:1.4rem}@media(prefers-reduced-motion:reduce){.lang-switch-option{transition:none}}.share-grid-title,.modal-title{margin:0;font-size:1.2rem;text-align:center}.daily-ranking-sub{margin:0;font-size:.9rem;line-height:1.35}.daily-ranking{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem;max-height:50svh;overflow-y:auto}.daily-ranking-row{display:flex;align-items:baseline;gap:.5rem;padding:.3rem .5rem;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.daily-ranking-row[data-own=true]{background:var(--color-surface-2);font-weight:700}.daily-ranking-rank{min-width:2.2rem;text-align:right;color:var(--color-text-muted)}.daily-ranking-score{flex:1}.daily-ranking-count{font-size:.85rem}.daily-ranking-you{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary-strong)}.daily-ranking-more{font-size:.85rem;justify-content:center}.daily-ranking-note{margin:0;font-size:.85rem}.share-progress{gap:.5rem;cursor:pointer}.share-progress input{width:1.2rem;height:1.2rem;accent-color:var(--color-primary-button)}.share-url{font-size:.8rem}.hero{text-align:center;padding:2rem 0 1rem}.hero .logo{font-size:4rem;line-height:1}.hero h1{font-size:2.2rem;color:var(--color-primary-strong);margin-top:.5rem}.hero p{margin-top:.5rem}.continue-card{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.continue-card .flag{border-radius:6px;flex-shrink:0}.continue-card .btn{flex-shrink:0}.daily-card{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.daily-head{display:flex;align-items:center;gap:.75rem}.daily-head .flag{border-radius:6px;flex-shrink:0}.daily-head .btn{flex-shrink:0}.daily-date{font-size:.85rem;text-transform:capitalize}.daily-result{display:flex;flex-direction:column;gap:.2rem;padding-top:.5rem;border-top:1px solid var(--color-surface-2)}.daily-score{margin:0;font-weight:800;font-size:1.1rem;color:var(--color-primary-strong);font-variant-numeric:tabular-nums}.daily-line,.daily-note{margin:0;font-size:.9rem;line-height:1.3}.daily-note{font-size:.8rem}.daily-place{display:flex;align-items:center;gap:.5rem}.daily-place .daily-line{flex:1}.daily-ranking-btn{flex:none;padding:.35rem .5rem}.daily-langs{display:flex;align-items:center;gap:.4rem}.daily-lang{position:relative;display:inline-flex;align-items:center;justify-content:center;border:0;padding:.15rem;border-radius:999px;background:transparent;line-height:0;transition:opacity .15s ease,transform .15s ease}.daily-lang[aria-pressed=false]{opacity:.5}.daily-lang[aria-pressed=false]:hover{opacity:.8}.daily-lang[aria-pressed=true]{opacity:1;transform:scale(1.1)}.daily-lang-flag{display:inline-flex;width:1.4rem;height:1.4rem;border-radius:50%;overflow:hidden;box-shadow:inset 0 0 0 1px #14301f26}.daily-lang-flag .flag{width:100%;height:100%}.daily-lang-done{position:absolute;right:-.1rem;bottom:-.1rem;display:inline-flex;align-items:center;justify-content:center;width:.85rem;height:.85rem;border-radius:50%;background:var(--color-primary-strong);color:var(--color-surface);font-size:.55rem;line-height:1}.daily-streak{margin:0;font-size:.9rem;font-weight:700}.menu{display:flex;flex-direction:column;gap:.75rem}.menu .btn{width:100%}.offline-note{text-align:center;font-size:.9rem}.home-demo{display:flex;flex-direction:column;align-items:center;gap:.5rem}.home-demo-word{display:flex;justify-content:center;gap:.05em;min-height:1.6rem;font-size:1.35rem;font-weight:800;letter-spacing:.08em;color:var(--color-primary-strong)}.home-demo-word span{animation:demo-letter-in .18s ease-out}@keyframes demo-letter-in{0%{opacity:0;transform:translateY(.35em) scale(.7)}to{opacity:1;transform:none}}.home-demo-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:8.5rem;aspect-ratio:1}.home-demo-grid .tile{border-width:1.5px;border-radius:6px;font-size:1rem;transition:background-color .15s,border-color .15s,transform .15s}.home-demo-grid .tile.multi{font-size:.8rem}.home-demo-grid[data-scrambling] .tile{color:var(--color-text-muted)}.home-demo-grid .path-overlay polyline{stroke-width:2.5}@media(max-height:900px){.hero{padding:1rem 0 .5rem}.hero .logo{font-size:3.25rem}.home-demo-word{min-height:1.4rem;font-size:1.15rem}.home-demo-grid{width:7rem}}@media(max-height:840px){.hero{padding:.5rem 0 .25rem}.home-demo{gap:.25rem}.home-demo-grid{width:6.5rem}}@media(max-height:760px){.home-demo,.home-demo-link{display:none}}.home-demo-link{display:block;align-self:center;color:inherit;text-decoration:none;border-radius:var(--radius);padding:.25rem 1rem;-webkit-tap-highlight-color:transparent}.home-demo-link:active .home-demo-grid{transform:scale(.97)}.home-demo-hint{font-size:.75rem;color:var(--color-text-muted);text-align:center}.server-stats-body{display:flex;flex-direction:column;gap:.85rem;padding-top:.25rem}.server-stats .live-pill{align-self:flex-start}.live-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;color:var(--color-primary-strong);white-space:nowrap}.live-pill:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--color-primary);animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{box-shadow:0 0 #2f9e5b73}50%{box-shadow:0 0 0 5px #2f9e5b00}}@media(prefers-reduced-motion:reduce){.live-pill:before{animation:none}}.big-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .75rem}.big-stat .value{font-size:1.6rem;font-weight:800;line-height:1.1;color:var(--color-primary-strong);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.big-stat .name{font-size:.75rem;color:var(--color-text-muted)}.record-list{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.3rem .75rem;margin:0;padding-top:.6rem;border-top:1px solid var(--color-surface-2);font-size:.9rem}.record-list dt{color:var(--color-text-muted)}.record-list dd{margin:0;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-list dd.wrap{white-space:normal;overflow-wrap:anywhere}.record-word{text-transform:uppercase;letter-spacing:.04em}.trend,.share{display:flex;flex-direction:column;gap:.35rem}.trend{padding-top:.6rem;border-top:1px solid var(--color-surface-2)}.trend-head,.share-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.85rem}.trend-head strong{font-variant-numeric:tabular-nums}.sparkline{display:block;width:100%;height:32px}.sparkline rect{fill:var(--pie-mine)}.sparkline rect.today{fill:var(--pie-others)}.share-legend{font-variant-numeric:tabular-nums;text-align:right}.share-bar{display:flex;gap:2px;height:.55rem;border-radius:999px;overflow:hidden;background:var(--pie-track)}.share-seg{display:block;flex-basis:0;min-width:3px}.share-seg.seg-0{background:var(--pie-mine)}.share-seg.seg-1{background:var(--pie-others)}.share-seg.seg-2{background:var(--pie-third)}.server-stats-note{font-size:.8rem;line-height:1.4}.changelog-head{justify-content:space-between;align-items:baseline}.changelog-version h2{font-size:1.1rem;margin:0}.changelog-title{font-weight:500;margin-left:.5rem}.changelog-date{font-size:.8rem}.changelog-items{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.35rem}.explore-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem}.explore-controls .segmented{display:inline-grid}.explore-controls .segmented button{padding:.5rem .75rem;font-size:.9rem}.explore-rescramble,.explore-play{padding:.55rem .9rem}.explore-word{display:flex;align-items:baseline;justify-content:center;gap:.5rem;min-height:2rem;font-size:1.5rem;font-weight:900;letter-spacing:.08em;color:var(--color-primary-strong)}.explore-word .points{font-size:.9rem;font-weight:800;letter-spacing:0;color:var(--color-primary-contrast);background:var(--color-primary);border-radius:999px;padding:.1rem .5rem}.explore-word .found-badge,.explore-legend .found-badge{font-size:.8rem;font-weight:800;letter-spacing:0;color:var(--color-primary-strong);background:var(--color-surface-2);border-radius:999px;padding:.1rem .5rem}.explore-found{color:var(--color-primary-strong);font-weight:700}.explore-legend{margin-top:-.25rem;font-size:.8rem;text-align:center}.explore-grid{position:relative;display:grid;gap:6px;width:100%;max-width:20rem;margin:0 auto;aspect-ratio:1}.explore-grid .tile{position:relative;padding:0;font-size:clamp(1rem,6vmin,1.8rem);background:color-mix(in srgb,var(--color-tile),var(--color-primary) calc(var(--heat, 0) * 45%))}.explore-grid[data-size="6"] .tile{font-size:clamp(.85rem,5vmin,1.4rem);border-radius:6px}.explore-grid .tile.multi{font-size:clamp(.8rem,4.5vmin,1.3rem)}.explore-grid .tile.root{border-color:var(--color-primary-strong);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 35%,transparent),var(--shadow)}.explore-grid .tile.selected{background:var(--color-tile-active);border-color:var(--color-accent)}.explore-count{position:absolute;top:2px;right:3px;font-size:.7rem;font-weight:700;line-height:1;letter-spacing:0;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.explore-grid .tile.root .explore-count{color:var(--color-primary-strong)}.explore-grid .path-overlay polyline{stroke-width:4}.explore-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem .75rem;font-size:.85rem;text-align:center}.explore-seed{font-variant-numeric:tabular-nums;opacity:.7}.explore-tree h2{font-size:1.05rem}.explore-tree .tap-hint{margin:.25rem 0 .5rem}.explore-tree-scroll{overflow:auto;max-height:62svh;margin:0 -.5rem;border-radius:var(--radius-sm);overscroll-behavior:contain}.word-tree{display:block;font-family:var(--font)}.word-tree-links path{fill:none;stroke:var(--color-tile-border);stroke-width:2;transition:stroke .15s}.word-tree-links path.active{stroke:var(--color-primary);stroke-width:3}.word-tree-node{cursor:pointer;outline:none}.word-tree-node .hit{fill:transparent}.word-tree-node circle{fill:var(--color-surface-2);stroke:var(--color-tile-border);stroke-width:2;transition:fill .15s,stroke .15s}.word-tree-node .letter{fill:var(--color-text);font-size:12px;font-weight:800;text-anchor:middle}.word-tree-node .letter.multi{font-size:9.5px}.word-tree-node .label{fill:var(--color-text-muted);font-size:12px;font-weight:700}.word-tree-node.word circle{fill:var(--color-primary);stroke:var(--color-primary)}.word-tree-node.word .letter{fill:var(--color-primary-contrast)}.word-tree-node.word .label{fill:var(--color-primary-strong)}.word-tree-node.collapsed circle{stroke-dasharray:3 3}.word-tree-node.word.missed circle{fill:var(--color-surface-2)}.word-tree-node.word.missed .letter{fill:var(--color-text)}.word-tree-node.word.missed .label{fill:var(--color-text-muted)}.word-tree-node.active circle{stroke:var(--color-accent)}.word-tree-node.root circle{stroke:var(--color-primary-strong)}.word-tree-node.selected circle{stroke:var(--color-accent);stroke-width:3.5}.word-tree-node:focus-visible circle{stroke:var(--color-accent);stroke-width:3.5}.word-tree-node.word circle.tier-dot,.word-tree-node.word.missed circle.tier-dot,.word-tree-node.word.active circle.tier-dot,.word-tree-node.word.selected circle.tier-dot{stroke:none;fill:var(--pie-mine)}.word-tree-node.word circle.tier-dot[data-tier=advanced],.word-tree-node.word.missed circle.tier-dot[data-tier=advanced],.word-tree-node.word.active circle.tier-dot[data-tier=advanced],.word-tree-node.word.selected circle.tier-dot[data-tier=advanced]{fill:var(--pie-others)}.word-tree-node.word circle.tier-dot[data-tier=all],.word-tree-node.word.missed circle.tier-dot[data-tier=all],.word-tree-node.word.active circle.tier-dot[data-tier=all],.word-tree-node.word.selected circle.tier-dot[data-tier=all]{fill:var(--pie-third)}.explore-view{display:flex;justify-content:center}.explore-space h2{font-size:1.05rem}.explore-space .tap-hint{margin:.25rem 0 .5rem}.explore-space h3{margin:.75rem 0 .4rem;font-size:.95rem}.word-space{display:flex;flex-direction:column;gap:.5rem}.word-space-canvas{display:block;width:100%;height:clamp(18rem,55svh,34rem);border-radius:var(--radius-sm);border:1px solid var(--color-tile-border);background:var(--color-surface);touch-action:none;cursor:grab}.word-space-canvas:active{cursor:grabbing}.word-space-canvas:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.word-space-tools{display:flex;justify-content:flex-end;gap:.4rem}.word-space-tools .btn{padding:.35rem .75rem;font-size:.85rem;min-width:2.4rem}.explore-space .explore-legend{margin-top:.5rem}.explore-families{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.family-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem .3rem .7rem;border:1.5px solid var(--color-tile-border);border-radius:999px;background:var(--color-surface);font-size:.85rem;font-weight:700;text-transform:uppercase;color:var(--color-text)}.family-chip .family-count{font-size:.75rem;font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-transform:none}.family-chip[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-surface-2);color:var(--color-primary-strong)}.family-chip[aria-pressed=true] .family-count{color:var(--color-primary-strong)}.explore-family .word-pill[aria-pressed=true]{outline:2px solid var(--color-accent);outline-offset:1px}.grid-wrap{width:100%;max-width:min(100%,70svh);margin:0 auto;position:relative}.letter-grid{--grid-gap: 6px;position:relative;display:grid;gap:var(--grid-gap);width:100%;aspect-ratio:1;touch-action:none;user-select:none;-webkit-user-select:none}.letter-grid.disabled{pointer-events:none;filter:grayscale(.4);opacity:.6}.tile{display:flex;align-items:center;justify-content:center;background:var(--color-tile);border:2px solid var(--color-tile-border);border-radius:var(--radius-sm);font-weight:800;font-size:clamp(1rem,6.5vmin,2.2rem);text-transform:uppercase;transition:background .12s ease,transform .12s ease,border-color .12s ease;box-shadow:var(--shadow)}.tile.multi{font-size:clamp(.85rem,5vmin,1.7rem)}.tile.heat{--scarcity-red: max(0, var(--scarcity, 0) * 2 - 1);--scarcity-yellow: min(1, var(--scarcity, 0) * 2);background:color-mix(in oklab,var(--color-heat-few) calc(var(--scarcity-red) * 100%),color-mix(in oklab,var(--color-heat-some) calc(var(--scarcity-yellow) * 100%),var(--color-heat-plenty)))}.tile.heat.cold{background:var(--color-tile);color:var(--color-text-muted);opacity:.6}.tile.selected{background:var(--color-tile-active);border-color:var(--color-accent);transform:scale(1.06)}.tile.flash-valid{background:var(--color-tile-valid);border-color:var(--color-primary)}.tile.flash-invalid{background:var(--color-tile-invalid);border-color:var(--color-danger)}.tile.flash-duplicate{background:var(--color-tile-duplicate);border-color:var(--color-warning)}.tile.hidden-tile{color:transparent}.letter-grid.cascading{overflow:hidden}.tile.ghost{z-index:2;pointer-events:none;animation:cascade-pop var(--cascade-pop-ms, .18s) ease-in forwards}.tile.falling{animation:cascade-fall var(--cascade-fall-ms, .26s) cubic-bezier(.3,.7,.4,1.2) both}@keyframes cascade-pop{to{transform:scale(.2);opacity:0}}@keyframes cascade-fall{0%{transform:translate(calc(-1 * var(--fall-x, 0) * (100% + var(--grid-gap))),calc(-1 * var(--fall-y, 0) * (100% + var(--grid-gap))))}}.tile.hint{animation:hint-pulse .6s var(--hint-delay, 0ms) ease-out both}@keyframes hint-pulse{30%{background:var(--color-tile-hint);border-color:var(--color-hint);transform:scale(1.14);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-hint) 45%,transparent)}70%{background:var(--color-tile-hint);border-color:var(--color-hint)}}@media(prefers-reduced-motion:reduce){.tile.ghost{display:none}.tile.falling{animation:none}.tile.hint{animation:none;background:var(--color-tile-hint);border-color:var(--color-hint)}}.path-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.path-overlay polyline{fill:none;stroke:var(--color-path);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.path-overlay.valid polyline{stroke:var(--color-primary)}.path-overlay.invalid polyline{stroke:var(--color-danger)}.path-overlay.duplicate polyline{stroke:var(--color-warning)}.game-screen{--game-chrome: 17rem;flex:none;height:100svh}.game-screen.has-counters{--game-chrome: 20.5rem}.game-screen .grid-wrap{max-width:min(100%,max(14rem,calc(100svh - var(--game-chrome) - env(safe-area-inset-top) - env(safe-area-inset-bottom))))}.game-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.6rem;min-width:4.5rem;text-align:center;border-radius:var(--radius);padding:.25rem .6rem;background:var(--color-surface);box-shadow:var(--shadow)}.timer.urgent{color:var(--color-danger);animation:pulse 1s ease-in-out infinite}.score-badge{font-weight:800;font-size:1.2rem;padding:.35rem .8rem;border-radius:var(--radius);background:var(--color-primary);color:var(--color-primary-contrast)}.game-corner{display:flex;align-items:center;gap:.5rem}.zen-note{display:flex;flex-direction:column;gap:.1rem;line-height:1.25}.zen-left{font-weight:700;font-variant-numeric:tabular-nums}.timer.zen{font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums}.lang-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .55rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow);color:var(--color-text-muted);font-size:.75rem;font-weight:700;letter-spacing:.04em}.lang-badge .flag{border-radius:3px;flex-shrink:0}.current-word{position:relative;min-height:2.6rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.5rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.hint-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:.25rem .7rem;border:1px solid var(--color-hint);border-radius:999px;background:var(--color-tile-hint);color:var(--color-text);font:inherit;font-size:.85rem;font-weight:700;letter-spacing:0;text-transform:none;cursor:pointer;animation:hint-in .25s ease-out both}.hint-btn:hover{filter:brightness(.96)}.word-line-start{position:absolute;left:0;top:50%;transform:translateY(-50%)}.heat-toggle{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--color-text-muted);cursor:pointer}.current-word-text{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.current-word.crowded .word-line-side{visibility:hidden}.heat-toggle input{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--color-heat-strong)}@keyframes hint-in{0%{opacity:0;transform:translateY(-50%) scale(.8)}}@media(prefers-reduced-motion:reduce){.hint-btn{animation:none}}.current-word .points{font-size:1rem;padding:.1rem .5rem;border-radius:999px;background:var(--color-primary);color:var(--color-primary-contrast)}.current-word.valid{color:var(--color-primary-strong)}.current-word.invalid{color:var(--color-danger);animation:shake .3s ease}.current-word.duplicate,.current-word.tooShort{color:var(--color-warning-text)}.found-list{display:flex;flex-wrap:wrap;gap:.4rem;min-height:2rem;align-content:flex-start;overflow-y:auto;flex:1 1 auto}.found-chip{padding:.3rem .6rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow);font-weight:700;text-transform:uppercase;font-size:.9rem;animation:pop .25s ease}.found-chip .pts{color:var(--color-primary-strong);margin-left:.3rem}.countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:6rem;font-weight:900;color:var(--color-primary-strong);background:color-mix(in srgb,var(--color-bg) 70%,transparent);border-radius:var(--radius);z-index:2}.counter-strip{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.counter{display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem .2rem .25rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow);font-weight:800}.counter.me{outline:2px solid var(--color-primary)}.counter.offline{opacity:.5}.counter .count{min-width:1.2rem;text-align:center;animation:pop .25s ease}.counter.bot{outline:2px dashed var(--color-accent)}.grid-stage{position:relative}.countdown.over{font-size:1.5rem}.grid-word-input{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.grid-word-input:focus{position:static;width:100%;height:auto;margin-top:.5rem;padding:.6rem .9rem;border:2px solid var(--color-primary);border-radius:var(--radius-sm);overflow:visible;clip:auto;white-space:normal;font:inherit;font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em;background:var(--color-surface);color:var(--color-text)}.grid-word-input:disabled{display:none}.letter-grid.flash-invalid{outline:3px solid var(--color-danger);outline-offset:4px;border-radius:var(--radius-sm)}.zen-badge,.cascade-badge{font-size:1rem;line-height:1}.game-actions .btn-share{padding:.75rem}.game-actions .sound-toggle{flex:none;width:3rem;height:3rem}.sound-toggle[aria-pressed=false]{color:var(--color-text-muted)}@media(max-height:900px){.setup-screen{gap:.75rem}.setup-screen .card{padding:.75rem}.setup-screen .stack{gap:.6rem}.setup-screen .segmented button{padding-block:.5rem}.setup-screen .btn-lg{font-size:1.05rem;padding:.9rem 1.2rem}}@media(max-height:700px){.setup-screen{gap:.6rem}.setup-screen .field{gap:.25rem}.setup-screen .label,.setup-screen .setup-hint{font-size:.8rem}}.countdown.paused{flex-direction:column;gap:.75rem;font-size:2rem;text-align:center;padding:1rem}.countdown.paused .paused-hint{font-size:.95rem;font-weight:600;max-width:22rem}.timer.paused{color:var(--color-text-muted)}.tier-rings{--tier-common: var(--pie-mine);--tier-advanced: var(--pie-others);--tier-all: var(--pie-third);display:flex;align-items:flex-start;gap:.25rem}.timer.zen.rings{padding:.2rem .45rem;min-width:0}.tier-ring{position:relative;display:flex;flex-direction:column;align-items:center;width:2.1rem;color:var(--tier-color)}.tier-ring[data-tier=common]{--tier-color: var(--tier-common)}.tier-ring[data-tier=advanced]{--tier-color: var(--tier-advanced)}.tier-ring[data-tier=all]{--tier-color: var(--tier-all)}.tier-ring svg{width:2.1rem;height:2.1rem;display:block;transition:transform .3s ease}.tier-track{stroke:var(--pie-track);stroke-width:4}.tier-arc{stroke:var(--tier-color);stroke-width:4;stroke-linecap:round;transition:stroke-dasharray .45s ease-out}.tier-ring.empty .tier-arc{stroke:none}.tier-value{position:absolute;top:1.05rem;left:50%;transform:translate(-50%,-50%);font-size:.58rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-text);line-height:1;pointer-events:none}.tier-ring.complete .tier-value{color:var(--tier-color);font-size:.8rem}.tier-ring.step svg{animation:tier-ping .45s ease-out}.tier-ring.complete svg{animation:tier-burst .7s ease-out}.tier-spark{position:absolute;top:1.05rem;left:50%;width:.3rem;height:.3rem;margin:-.15rem;border-radius:50%;background:var(--tier-color);pointer-events:none;animation:tier-spark .8s ease-out forwards}.tier-rings.still .tier-ring svg,.tier-rings.still .tier-arc{animation:none;transition:none}.tier-rings.still .tier-spark{display:none}@keyframes tier-ping{0%{transform:scale(1)}40%{transform:scale(1.22);filter:drop-shadow(0 0 4px var(--tier-color))}to{transform:scale(1)}}@keyframes tier-burst{0%{transform:scale(1)}35%{transform:scale(1.35);filter:drop-shadow(0 0 8px var(--tier-color))}to{transform:scale(1)}}@keyframes tier-spark{0%{transform:rotate(var(--angle)) translateY(0) scale(1);opacity:1}to{transform:rotate(var(--angle)) translateY(-1.8rem) scale(.3);opacity:0}}.tier-rings.large{justify-content:center;gap:1.25rem}.tier-rings.large .tier-ring{width:5rem}.tier-rings.large .tier-ring svg{width:4.5rem;height:4.5rem}.tier-rings.large .tier-value,.tier-rings.large .tier-spark{top:2.25rem}.tier-rings.large .tier-value{font-size:1rem}.tier-rings.large .tier-ring.complete .tier-value{font-size:1.4rem}.tier-name{margin-top:.35rem;font-size:.75rem;font-weight:700;color:var(--color-text);text-align:center}.tier-count{font-size:.75rem;font-variant-numeric:tabular-nums}@media(max-width:380px){.tier-rings.large{gap:.6rem}}.found-chip .tier-dot{box-shadow:0 0 0 1.5px var(--color-surface)}.score-hero{text-align:center;padding:1rem 0}.score-hero .big{font-size:4rem;font-weight:900;color:var(--color-primary-strong);line-height:1}.score-hero .result-compare,.score-hero .result-praise{margin:.35rem 0 0;font-size:.95rem;line-height:1.3;text-wrap:balance}.score-hero .result-compare{margin-top:.6rem;color:var(--color-text-muted)}.score-hero .result-praise{font-weight:700}.score-hero .result-ranking-btn{margin-left:.5rem;padding:.25rem .45rem;vertical-align:middle}.stat-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.stat-tile{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:.75rem .5rem;text-align:center}.stat-tile .value{font-size:1.25rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-tile .name{font-size:.75rem;color:var(--color-text-muted)}.tap-hint{margin:-.25rem 0 0;font-size:.75rem;text-align:center}.word-groups{display:flex;flex-direction:column;gap:.75rem}.word-group h3{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.4rem}.word-cloud{display:flex;flex-wrap:wrap;gap:.4rem}.word-pill{border:0;padding:.35rem .65rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow);font-weight:700;text-transform:uppercase;font-size:.9rem;color:var(--color-text-muted)}.word-pill.found{background:var(--color-primary);color:var(--color-primary-contrast)}.word-pill:active{transform:scale(.96)}.ranking{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.rank-row{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.5rem}.rank-row.me{outline:2px solid var(--color-primary)}.rank-head{display:flex;align-items:center;gap:.5rem}.rank-pos{width:1.6rem;height:1.6rem;border-radius:50%;background:var(--color-surface-2);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.rank-row:first-child .rank-pos{background:var(--color-accent);color:#14301f}.rank-row.newcomer{opacity:.75}.rank-avatar{position:relative;display:inline-flex;flex-shrink:0}.rank-wins{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-muted)}.crown{position:absolute;top:-.7rem;right:-.6rem;display:inline-flex;align-items:flex-end;pointer-events:none}.crown-emoji{font-size:1.1rem;line-height:1;display:inline-block;transform:rotate(22deg);filter:drop-shadow(0 1px 1px rgb(0 0 0 / .3))}.crown-streak{margin-left:-.3rem;min-width:1rem;padding:0 .25rem;border-radius:999px;background:var(--color-accent);color:#14301f;font-size:.65rem;font-weight:900;line-height:1rem;text-align:center}.counter .crown-emoji{font-size:.9rem}.sort-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.85rem}.rank-score{font-weight:900;font-size:1.3rem;color:var(--color-primary-strong)}.rank-total{font-size:.85rem}.word-cloud.small .word-pill{font-size:.8rem;padding:.25rem .5rem}.word-pill.unique{background:var(--color-accent);color:#14301f}.word-pill.others{background:var(--color-surface-2);color:var(--color-text)}.word-pill .pts{opacity:.7;margin-left:.2rem}.word-pill .finders{display:block;font-size:.65rem;font-weight:600;text-transform:none;opacity:.8}.rank-score-col{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.rank-words{font-size:.72rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.word-pill.bot{box-shadow:var(--shadow),inset 0 0 0 2px var(--color-accent)}.duel-title{margin:0;font-size:1.15rem;text-align:center}.duel-card .rank-name{flex:1;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duel-card .rank-row.bot{outline:2px dashed var(--color-accent)}.duel-legend,.setup-hint{font-size:.85rem;margin:0}.score-hero .big.winner-name{font-size:2rem}.stat-tile .value.upper{text-transform:uppercase}.grid-actions{flex-wrap:wrap}.tiers-body{flex-direction:column;align-items:stretch}.tiers-hint{margin:0;text-align:center}.result-complete{font-size:1.25rem;font-weight:800;color:var(--color-primary-strong)}.btn-brag{margin-top:.5rem;align-self:center}.fireworks{position:fixed;inset:0;z-index:50;pointer-events:none;overflow:hidden}.firework{position:absolute;width:0;height:0}.firework-spark{position:absolute;width:.45rem;height:.45rem;margin:-.225rem;border-radius:50%;background:hsl(var(--hue) 90% 60%);box-shadow:0 0 6px hsl(var(--hue) 90% 70%);opacity:0;animation:firework-spark 1.4s ease-out var(--delay) forwards}@keyframes firework-spark{0%{transform:rotate(var(--angle)) translateY(0) scale(.6);opacity:0}10%{opacity:1}to{transform:rotate(var(--angle)) translateY(calc(-1 * var(--reach))) scale(1);opacity:0}}.tier-dot{display:inline-block;width:.5rem;height:.5rem;margin-right:.35rem;border-radius:50%;vertical-align:.05em;box-shadow:0 0 0 1.5px var(--color-surface)}.tier-dot[data-tier=common]{background:var(--pie-mine)}.tier-dot[data-tier=advanced]{background:var(--pie-others)}.tier-dot[data-tier=all]{background:var(--pie-third)}.word-pill.found .tier-dot,.word-pill.unique .tier-dot,.word-pill.others .tier-dot{box-shadow:0 0 0 1.5px #ffffffd9}.word-legend{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .9rem;font-size:.75rem;color:var(--color-text-muted)}.word-legend li{display:inline-flex;align-items:center}.word-legend .tier-dot{box-shadow:none}.legend-pill{display:inline-block;width:1.1rem;height:.7rem;margin-right:.35rem;border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow)}.legend-pill.found{background:var(--color-primary)}.legend-pill.unique{background:var(--color-accent)}.legend-pill.others{background:var(--color-surface-2)}.legend-pill.bot{box-shadow:var(--shadow),inset 0 0 0 2px var(--color-accent)}.history-heading{font-size:1.1rem;margin:.5rem 0 0}.history-category{display:flex;align-items:center;gap:.5rem;font-weight:700}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.history-list>li+li{border-top:1px solid var(--color-surface-2)}.history-row{display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .1rem;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.history-row:disabled{cursor:progress;opacity:.7}.history-lead{flex:none;width:1.75rem;display:flex;justify-content:center;font-size:1.3rem}.history-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.history-score{font-weight:700}.history-meta{font-size:.8rem}.history-open{flex:none;font-size:1.4rem;color:var(--color-text-muted)}.word-pill .hint-mark{margin-left:.3rem;font-size:.8em}.legend-pill.hinted{background:var(--color-primary)}.legend-pill.hinted:after{content:"💡";position:relative;left:1.2rem;font-size:.7rem;line-height:0}.score-hero .result-hints{margin-top:.25rem;font-size:.95rem}.room-code-card{align-items:center}.room-code{font-size:2.6rem;font-weight:900;letter-spacing:.35em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--color-primary-strong)}.room-code.small{font-size:1.5rem;letter-spacing:.25em}.room-bar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem .75rem}.room-bar-code{display:flex;flex-direction:column;gap:.1rem}.room-bar-meta{grid-column:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.room-bar>.btn{grid-column:2;grid-row:1 / span 2}.room-bar-switch{grid-column:1 / -1;padding-top:.25rem;border-top:1px solid var(--color-surface-2)}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.player-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0}.presence-dot{position:absolute;right:-2px;bottom:-2px;width:.7rem;height:.7rem;border-radius:50%;border:2px solid var(--color-surface);background:var(--color-primary)}.presence-dot.away{background:var(--color-warning)}.presence-dot.gone{background:var(--color-text-muted)}.badge.leaving{font-variant-numeric:tabular-nums}.player-row.offline .player-name{opacity:.55}.player-name{flex:1;font-weight:700}.public-room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.public-room{display:flex;align-items:center;gap:.6rem;padding:.3rem 0}.public-room-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.public-room-info .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-room-meta{font-size:.8rem}.btn-compact{padding:.55rem .9rem;font-size:.9rem}.public-switch{border-top:1px solid var(--color-surface-2);padding-bottom:0}.conn-dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--color-danger)}.conn-dot.open{background:var(--color-primary)}.conn-dot.connecting,.conn-dot.reconnecting{background:var(--color-warning)}.scanner{display:flex;flex-direction:column;align-items:center;gap:.5rem}.scanner-video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);background:#000}.reaction-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.reaction-btn{font:inherit;font-size:1.5rem;line-height:1;width:2.7rem;height:2.7rem;border-radius:50%;border:2px solid var(--color-tile-border);background:var(--color-surface);cursor:pointer;transition:transform .12s ease,background .12s ease}.reaction-btn:active{transform:scale(1.25) rotate(-8deg);background:var(--color-tile-active)}.reaction-btn:disabled{opacity:.5;cursor:default}.reaction-hint{margin:0;font-size:.8rem;text-align:center}.reactions{position:absolute;left:85%;bottom:70%;pointer-events:none;z-index:5}.reaction{position:absolute;left:var(--dx, 0);bottom:0;display:inline-flex;align-items:center;justify-content:center;animation:reaction-float 3.2s ease-out forwards}.reaction-emoji{font-size:1.7rem;line-height:1;filter:drop-shadow(0 2px 3px rgb(0 0 0 / .25));animation:reaction-wobble .7s ease-in-out infinite alternate}.reaction-spark{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:var(--color-accent);animation:reaction-spark .75s ease-out forwards}.reaction-spark:nth-child(odd){background:var(--color-primary);width:4px;height:4px}@keyframes reaction-float{0%{transform:translate(-50%,.4rem) scale(.3);opacity:0}12%{transform:translate(-50%,-.3rem) scale(1.2);opacity:1}25%{transform:translate(-50%,-.7rem) scale(1)}80%{opacity:1}to{transform:translate(calc(-50% + var(--drift, 0px)),-3.6rem) scale(.85);opacity:0}}.reaction-stream{position:fixed;left:50%;bottom:0;width:min(100%,34rem);height:65vh;transform:translate(-50%);pointer-events:none;overflow:hidden;z-index:20}.reaction-rising{left:var(--x, 50%);bottom:calc(env(safe-area-inset-bottom) + 1rem);flex-direction:column;gap:.15rem;animation:reaction-rise 3.2s ease-out forwards}.reaction-rising .reaction-emoji{font-size:2.2rem}.reaction-sender{display:inline-flex;line-height:0;opacity:.75;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .25))}@keyframes reaction-rise{0%{transform:translate(-50%,2.5rem) scale(.3);opacity:0}10%{transform:translate(-50%,-.5rem) scale(1.15);opacity:1}20%{transform:translate(-50%,-2rem) scale(1)}75%{opacity:1}to{transform:translate(calc(-50% + var(--drift, 0px)),-50vh) scale(.8);opacity:0}}@keyframes reaction-wobble{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@keyframes reaction-spark{0%{transform:translate(-50%,-50%) rotate(var(--angle)) translate(.2rem);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--angle)) translate(1.8rem);opacity:0}}@media(prefers-reduced-motion:reduce){.reaction{animation:none;opacity:1;transform:translate(-50%,-1rem)}.reaction-rising{transform:translate(-50%,-4rem)}.reaction-emoji{animation:none}.reaction-spark{display:none}}.ceremony-progress{height:4px;border-radius:999px;background:var(--color-surface-2);overflow:hidden}.ceremony-progress>div{height:100%;background:var(--color-primary);transition:width .25s ease}.ceremony-hold{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.screen-fade{flex:1;display:flex;flex-direction:column;width:100%}.ceremony-stage{min-height:10rem;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.ceremony-step{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%}.ceremony-kicker{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.ceremony-big{font-size:2rem;font-weight:900;line-height:1.1;color:var(--color-primary-strong);overflow-wrap:anywhere}.ceremony-word{font-size:2.4rem;letter-spacing:.06em;text-transform:uppercase}.ceremony-points{display:inline-flex;align-items:center;gap:.4rem;font-size:1.3rem;font-weight:900;color:var(--color-primary-strong)}.ceremony-letters{font-size:.85rem;font-weight:600}.ceremony-finders,.ceremony-finalists{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.ceremony-finder{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem .15rem .2rem;border-radius:999px;background:var(--color-surface-2);font-size:.85rem;font-weight:700}.ceremony-ranking .rank-row{padding:.5rem .75rem;transition:background-color .3s ease}.ceremony-row.scoring{background:color-mix(in srgb,var(--color-accent) 28%,var(--color-surface))}.ceremony-row .rank-head{position:relative}.ceremony-row .player-name{flex:1}.ceremony-crown{position:absolute;top:-.85rem;right:-.7rem;font-size:1.3rem;line-height:1;rotate:22deg;filter:drop-shadow(0 1px 1px rgb(0 0 0 / .3));pointer-events:none;z-index:1}.ceremony-gain{position:absolute;right:0;top:-1.1rem;padding:0 .45rem;border-radius:999px;background:var(--color-accent);color:#14301f;font-size:.8rem;font-weight:900;line-height:1.3rem;pointer-events:none}.badge-art{display:block;flex:none;object-fit:contain;filter:drop-shadow(0 3px 5px rgba(20,48,31,.2))}.badge-art.locked{filter:grayscale(1) contrast(.7) brightness(1.15);opacity:.4}.badge-flair{display:inline-block;vertical-align:-.3em;margin-left:.3rem;filter:drop-shadow(0 1px 2px rgba(20,48,31,.25))}.badge-bar{display:block;height:6px;border-radius:3px;background:var(--color-tile-border);overflow:hidden}.badge-bar>span{display:block;height:100%;background:var(--color-primary)}.badge-news{display:flex;flex-direction:column;gap:.6rem}.badge-unlock{display:flex;align-items:center;gap:.9rem;padding:.75rem 1rem}.badge-unlock-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.badge-unlock-text strong{font-size:1.05rem}.badge-nudge,.badge-goal{display:flex;align-items:center;gap:.7rem;color:inherit;text-decoration:none}.badge-nudge{padding:.5rem .75rem;border:1px solid var(--color-tile-border);border-radius:var(--radius);background:var(--color-surface)}.badge-nudge-text,.badge-goal-text{display:flex;flex-direction:column;gap:.3rem;flex:1 1 auto;min-width:0;font-size:.9rem}.badge-goal{padding:.6rem .9rem}.badges-screen .screen-header{align-items:baseline}.badges-count{margin-left:auto;font-variant-numeric:tabular-nums}.badge-shelf{display:flex;flex-direction:column;gap:.5rem}.badge-shelf-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .6rem}.badge-shelf-head h2{margin:0;font-size:1.1rem}.badge-shelf-head .muted{font-size:.85rem}.badge-grid{list-style:none;margin:0;padding:0;--badge-gap: .4rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--badge-gap)}.badge-grid>li{display:flex;flex:0 0 calc((100% - 3 * var(--badge-gap)) / 4);min-width:0}.badge-tile{width:100%;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .2rem .45rem;border:1px solid var(--color-tile-border);border-radius:var(--radius);background:var(--color-surface)}.badge-tile{color:inherit;font:inherit;cursor:pointer}.badge-tile:focus-visible,.badge-zoom-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.badge-zoom-btn{flex:none;display:block;padding:0;border:0;border-radius:50%;background:none;cursor:zoom-in}.badge-zoom-slot{display:block}.badge-tile .badge-art,.badge-secret{display:block;width:100%;max-width:72px;height:auto;aspect-ratio:1;margin-inline:auto}.badge-tile-name{font-size:.75rem;font-weight:700;text-align:center;line-height:1.2}.badge-tile.is-locked .badge-tile-name{color:var(--color-text-muted)}.badge-pips{display:flex;gap:3px}.badge-pips>span{width:7px;height:7px;border-radius:50%;background:var(--color-tile-border)}.badge-pips>.on.l1{background:var(--badge-l1)}.badge-pips>.on.l2{background:var(--badge-l2)}.badge-pips>.on.l3{background:var(--badge-l3)}.badge-pips>.on.l4{background:var(--badge-l4)}.badge-secret{border-radius:50%;display:grid;place-items:center;font-size:2.4rem;font-weight:700;color:var(--color-text-muted);background:var(--color-bg);box-shadow:inset 0 0 0 5px var(--color-tile-border)}.badge-detail{display:flex;flex-direction:column;gap:.8rem}.badge-detail h2{margin:0}.badge-detail>p{margin:0}.badge-ladder{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.badge-ladder>li{display:flex;align-items:center;gap:.75rem}.badge-ladder-text{display:flex;flex-direction:column;min-width:0;font-size:.9rem}.badge-ladder>li:not(.reached) strong{color:var(--color-text-muted)}.badge-detail-next{display:flex;flex-direction:column;gap:.35rem;font-weight:700;font-size:.9rem}.daily-streak{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .75rem}.daily-shields{display:inline-flex;align-items:center;gap:.25rem;font-weight:600}.daily-covered{margin:0;font-size:.85rem;font-weight:600;color:var(--color-primary-strong)}.badge-zoom-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top,0px)) max(1rem,env(safe-area-inset-right,0px)) max(1rem,env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));border:0;background:none;cursor:zoom-out}.badge-zoom-backdrop{position:absolute;inset:0;background:#0000008c}.badge-zoom-art{position:relative;width:min(100%,calc(100svh - 2rem));max-width:100%;height:auto;aspect-ratio:1}.badge-zoom-art.locked{opacity:1;filter:grayscale(1) contrast(.85) brightness(1.05)}.badge-detail-art{display:flex;justify-content:center}
