:root{--bg: #0f1117;--surface: #181b24;--surface-2: #222634;--border: #2d3242;--text: #eef0f6;--muted: #8d93a8;--accent: #7c9cff;--good: #5fd4a0;--warn: #ffc85c;--danger: #ff6b7a;--radius: 16px;--tap: 48px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--on-accent: #0b0d14;--hint-bg: #2a2617;--nav-bg: rgba(15, 17, 23, .94);--shadow: 0 8px 24px rgba(0, 0, 0, .45);color-scheme:dark}:root[data-theme=light]{--bg: #f5f6fa;--surface: #ffffff;--surface-2: #eceef5;--border: #dcdfe9;--text: #171923;--muted: #646b80;--accent: #4c6ef5;--good: #1f9d6c;--warn: #a86b00;--danger: #d6334a;--on-accent: #ffffff;--hint-bg: #fff4d6;--nav-bg: rgba(255, 255, 255, .94);--shadow: 0 8px 24px rgba(30, 40, 80, .18);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1{font-size:1.45rem;margin:0;letter-spacing:-.01em}h2{font-size:1.25rem;margin:0 0 4px}h3{font-size:.85rem;margin:8px 0 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}pre{margin:0;white-space:pre-wrap;word-break:break-word}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--danger);margin:8px 0}.hint{background:var(--hint-bg);color:var(--warn);border-radius:10px;padding:10px 12px;margin:0;font-size:.9rem}.demo-note{color:var(--warn);font-size:.85rem;text-align:center;margin-top:16px}button,.button{font:inherit;color:var(--text);border:0;cursor:pointer;min-height:var(--tap);padding:0 18px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}.primary{background:var(--accent);color:var(--on-accent);font-weight:650}.secondary{background:var(--surface-2)}.danger{background:var(--danger);color:#1a0b0e;font-weight:650}.danger-text{color:var(--danger)!important}.link{background:none;color:var(--accent);min-height:40px;padding:0 4px}button.small{min-height:40px;padding:0 14px;font-size:.95rem}input,select,textarea{font:inherit;font-size:16px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:12px;min-height:var(--tap);padding:10px 12px;width:100%}textarea{resize:vertical;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}.code-input{letter-spacing:.3em;font-size:1.3rem;text-align:center;font-variant-numeric:tabular-nums}.icon-input{text-align:center;font-size:1.4rem}.form{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:flex-end}.grow{flex:1;min-width:0}.narrow{width:96px;flex:none}.actions{display:flex;gap:10px}.actions>*{flex:1}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:4px;gap:4px}.segmented button{flex:1;min-height:42px;padding:0 8px;background:none;color:var(--muted)}.segmented button.on{background:var(--surface);color:var(--text);font-weight:600}.segmented.wide{width:100%;max-width:420px}.color-pick{display:flex;gap:12px;flex-wrap:wrap}.color-pick button{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;border:3px solid transparent}.color-pick button.on{border-color:var(--text)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}.center-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:calc(24px + var(--safe-top)) 24px 24px;max-width:460px;margin:0 auto}.center-screen .form{width:100%}.brand{text-align:center}.brand-icon{font-size:3rem}html,body{overflow-x:hidden}.app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.app main{flex:1 1 auto;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:calc(16px + var(--safe-top)) max(16px,calc((100% - 900px)/2)) 28px}.screen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.tabbar{position:relative;flex:none;z-index:10;display:flex;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom)}.tabbar button{flex:1;flex-direction:column;gap:2px;min-height:58px;background:none;color:var(--muted);font-size:.75rem;border-radius:0}.tabbar button span{font-size:1.3rem}.tabbar button.on{color:var(--text)}.today-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.today-header h1{font-size:1.2rem}.all-streak{flex:none;display:grid;grid-template-columns:auto auto;column-gap:4px;align-items:center;background:var(--surface);border-radius:14px;padding:6px 12px;text-align:right}.all-streak .flame{font-size:1.2rem}.all-streak b{font-size:1.3rem}.all-streak .small{grid-column:1 / -1;font-size:.7rem;white-space:nowrap}.progress-block{margin-bottom:14px}.progress-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.others{display:flex;gap:12px;font-size:.85rem;color:var(--muted)}.other-count{display:inline-flex;align-items:center;gap:5px}.progress{height:10px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress div{height:100%;border-radius:99px;transition:width .3s}.install-tip{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:6px 6px 6px 12px;margin-bottom:14px;font-size:.9rem}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:10px}.tile{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.tile.done{border-color:color-mix(in srgb,var(--good) 45%,var(--border))}.tile-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 44px 8px 12px;color:inherit;text-decoration:none;min-height:84px}.tile-icon{font-size:1.7rem;line-height:1}.tile-name{font-weight:650;line-height:1.2}.tag{font-size:.7rem;color:var(--warn);border:1px solid currentColor;border-radius:99px;padding:0 7px}.tile-more{position:absolute;top:4px;right:4px;width:44px;height:44px;min-height:44px;padding:0;background:none;color:var(--muted);font-size:.9rem;letter-spacing:1px}.tile-players{list-style:none;margin:0;padding:0 12px 10px;display:flex;flex-direction:column;gap:3px;font-size:.85rem}.tile-players li{display:flex;align-items:center;gap:6px;min-width:0}.pname{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60px}.pscore{font-weight:600;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pscore.muted{font-weight:400}.pstreak{font-size:.75rem}.fab{position:fixed;z-index:11;left:50%;transform:translate(-50%);bottom:calc(72px + var(--safe-bottom));background:var(--accent);color:var(--on-accent);font-weight:700;font-size:1.05rem;min-height:56px;padding:0 28px;border-radius:99px;box-shadow:var(--shadow)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:8px 18px calc(20px + var(--safe-bottom));animation:rise .2s ease-out}.sheet-handle{width:40px;height:5px;border-radius:99px;background:var(--border);margin:0 auto 12px}@keyframes rise{0%{transform:translateY(40px);opacity:.5}}@keyframes fade{0%{opacity:0}}.parsed{font-size:1.1rem;font-weight:600;background:var(--surface-2);border-radius:12px;padding:12px 14px;margin:0}.parsed.warn{color:var(--warn)}.grid-preview{font-size:1.1rem;line-height:1.25}.grid-preview.small{font-size:.9rem;margin:4px 0 0 16px}.raw{background:var(--bg);border-radius:10px;padding:10px;font-size:.85rem;color:var(--muted)}.result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.result-head{display:flex;align-items:center;gap:8px}.result-head span{margin-left:auto}.game-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:6px}.game-list li{display:flex;align-items:center;gap:2px;background:var(--surface);border-radius:14px;padding-right:4px}.game-list li.is-hidden{opacity:.5}.game-list li>button:not(.game-row-main){background:none;min-width:44px;padding:0;color:var(--muted)}.game-row-main{flex:1;justify-content:flex-start;background:none;padding:8px 12px;gap:12px;text-align:left;min-width:0}.game-row-text{display:flex;flex-direction:column;min-width:0}.game-row-text .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.join-code{font-size:2rem;font-weight:750;letter-spacing:.2em;margin:0;font-variant-numeric:tabular-nums}.member-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.member-list li{display:flex;align-items:center;gap:8px}details summary{min-height:40px;display:flex;align-items:center;cursor:pointer}.toast{position:fixed;z-index:30;left:50%;transform:translate(-50%);top:calc(14px + var(--safe-top));background:var(--text);color:var(--bg);padding:10px 18px;border-radius:99px;font-weight:600;animation:fade .15s}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.9rem;color:var(--muted)}.group-chip{min-height:36px;padding:0 10px 0 4px;border-radius:99px;background:var(--surface);font-size:.85rem;color:var(--muted);gap:8px}.group-chip-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.95rem}.invite-card{width:100%;justify-content:flex-start;gap:12px;text-align:left;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;min-height:64px}.invite-card>span:last-child{display:flex;flex-direction:column}.invite-icon{font-size:1.6rem}.group-cards{list-style:none;margin:16px 0;padding:0;display:flex;flex-direction:column;gap:10px}.group-card{width:100%;padding:0;background:var(--surface);border-radius:var(--radius);overflow:hidden;justify-content:flex-start;gap:14px;text-align:left;min-height:84px}.group-card .group-banner{width:96px;align-self:stretch;border-radius:0;flex:none}.group-card-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.chevron{color:var(--muted);font-size:1.6rem;padding-right:14px}.empty-note{margin:28px 12px}.group-banner{display:flex;align-items:center;justify-content:center;gap:12px;border-radius:14px}.group-banner-icon{font-size:2rem;width:56px;height:56px;display:grid;place-items:center;background:#00000040;border-radius:50%;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.group-banner.preview{min-height:110px;justify-content:flex-start;padding:0 18px}.group-banner-name{font-weight:700;font-size:1.2rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}.icon-pick{display:flex;flex-wrap:wrap;gap:6px}.icon-pick button{width:44px;height:44px;min-height:44px;padding:0;font-size:1.3rem;background:var(--surface-2);border:2px solid transparent}.icon-pick button.on{border-color:var(--accent)}.icon-pick .icon-input{width:56px;min-height:44px;height:44px;padding:4px}.banner-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.banner-pick button{height:48px;min-height:48px;padding:0;border:3px solid transparent;border-radius:12px}.banner-pick button.on{border-color:var(--text)}.group-view .back{margin-bottom:6px}.group-hero{position:relative;border-radius:20px;padding:26px 16px 18px;margin-bottom:12px;display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.45)}.group-hero-icon{font-size:2.6rem;width:76px;height:76px;display:grid;place-items:center;background:#00000040;border-radius:50%;text-shadow:none}.hero-edit{position:absolute;top:8px;right:8px;width:44px;height:44px;min-height:44px;padding:0;background:#0000004d;border-radius:50%}.member-progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.member-progress li{display:flex;align-items:center;gap:8px}.board{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}.board li{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--border)}.board-game{font-weight:600;font-size:.95rem}.board-scores{display:flex;flex-wrap:wrap;gap:6px}.score-chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border-radius:99px;padding:3px 10px;font-size:.85rem;font-weight:600}.score-chip.empty{color:var(--muted);font-weight:400}.avatar{border-radius:50%;overflow:hidden;flex:none;display:block}.avatar-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}.avatar-pick button{padding:3px;min-height:56px;background:none;border:3px solid transparent;border-radius:50%}.avatar-pick button.on{border-color:var(--accent)}.emoji-field{display:flex;flex-direction:column;gap:8px}.emoji-input-wrap{flex-direction:row;align-items:center;gap:10px}.emoji-current{font-size:1.9rem;width:56px;height:56px;flex:none;display:grid;place-items:center;background:var(--surface-2);border-radius:14px}.emoji-input-wrap input{flex:1}.checklist ul{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.check-row{flex-direction:row;align-items:center;gap:10px;min-height:46px;padding:0 10px;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:1rem}.check-row input{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none}.check-row.on{outline:2px solid var(--accent)}.check-icon{font-size:1.2rem}.me-banner{display:flex;align-items:center;gap:12px;border-radius:20px;padding:14px;margin-bottom:14px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.45)}.me-banner h1{font-size:1.15rem}.me-banner .all-streak{background:#00000047;color:#fff}.me-banner .avatar{box-shadow:0 0 0 3px #fff9}.plain-date{font-weight:700;font-size:1.1rem;margin:0 0 12px}.leaders ul,.bests ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.leaders li,.bests li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--border)}.leaders li:first-child,.bests li:first-child{border-top:0}.leader-game{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-who,.best-vals{display:flex;align-items:center;gap:6px;font-size:.9rem;flex:none}.leader-who .avatar+.avatar{margin-left:-10px}.me-head{display:flex;align-items:center;gap:12px}.avatar-button{flex-direction:column;gap:2px;padding:0;background:none;min-height:0;color:var(--muted)}.section-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.section-list li{display:flex;align-items:center;gap:2px;background:var(--surface-2);border-radius:10px;padding-left:12px}.section-list li.is-hidden{opacity:.5}.section-list li button{background:none;min-width:44px;padding:0;color:var(--muted)}.score-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.score-chip{min-height:32px;border-radius:99px;color:var(--text)}.score-chip:disabled{opacity:1;cursor:default}.score-chip.won{outline:2px solid #ffc85c}.rx-summary{font-size:.8rem;padding-left:6px}.rx-bar{display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:2px;box-shadow:var(--shadow)}.rx-bar button{min-height:40px;width:40px;padding:0;background:none;font-size:1.3rem;border-radius:50%}.rx-bar button.on{background:var(--surface-2)}.member-progress .avatar{width:28px;height:28px}.install-banner{display:flex;align-items:center;gap:12px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 6px 10px 10px;margin-bottom:14px;box-shadow:var(--shadow)}.install-banner img{border-radius:12px;flex:none}.install-banner .grow{display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner .small{color:var(--muted);line-height:1.5}.share-glyph{vertical-align:-3px;color:var(--accent)}.install-close{background:none;color:var(--muted);min-width:40px;min-height:40px;padding:0;font-size:1rem}.brand-logo{border-radius:18px}:root[data-style=retro]{--font-label: "Silkscreen", ui-monospace, monospace;--font-num: "VT323", ui-monospace, monospace;--font-body: "Pixelify Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg: #0b0620;--surface: #160b33;--surface-2: #22114a;--border: #4b2a8f;--text: #f4ecff;--muted: #a99bd6;--accent: #ff3ea5;--accent-2: #2de2e6;--violet: #9d4edd;--sun: #ff8a3d;--good: #3dffb0;--warn: #ffd319;--danger: #ff4d6d;--on-accent: #1a0322;--hint-bg: #2b1d05;--nav-bg: #0e0726;--glow: 0 0 10px color-mix(in srgb, var(--accent-2) 55%, transparent);--glow-pink: 0 0 12px color-mix(in srgb, var(--accent) 60%, transparent);--shadow: var(--glow);--radius: 0px;--notch: polygon(0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px) , calc(100% - 4px) calc(100% - 8px) , calc(100% - 4px) calc(100% - 4px) , calc(100% - 8px) calc(100% - 4px) , calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px) , 4px calc(100% - 4px) , 4px calc(100% - 8px) , 0 calc(100% - 8px) )}:root[data-style=retro][data-theme=light]{--bg: #f4ebff;--surface: #ffffff;--surface-2: #f0e4ff;--border: #b98af0;--text: #2a0f4a;--muted: #6e5596;--accent: #e0198a;--accent-2: #0f9fb0;--on-accent: #ffffff;--hint-bg: #fff3c4;--nav-bg: #ffffff;--warn: #9a6b00;--good: #128a5a;--glow: 0 0 0 transparent;--glow-pink: 0 0 0 transparent}:root[data-style=retro] body{font-family:var(--font-body);font-size:17px;background:radial-gradient(1.5px 1.5px at 20% 30%,#fff 50%,transparent 51%) 0 0 / 180px 180px,radial-gradient(1px 1px at 70% 80%,#cfc3ff 50%,transparent 51%) 0 0 / 120px 120px,radial-gradient(1px 1px at 40% 60%,#9fe8ff 50%,transparent 51%) 30px 50px / 90px 90px,radial-gradient(ellipse 120% 60% at 50% 115%,#ff3ea533 0%,#9d4edd22 35%,transparent 70%),linear-gradient(180deg,#07031a,#0f0730 55%,#1c0b45);background-attachment:fixed}:root[data-style=retro][data-theme=light] body{background:radial-gradient(ellipse 120% 60% at 50% 115%,#ff8ac944 0%,#c69bff33 40%,transparent 70%),linear-gradient(180deg,#efe4ff,#f8eaff 60%,#ffe6f4);background-attachment:fixed}:root[data-style=retro] body:before{content:"";position:fixed;left:-50%;right:-50%;bottom:0;height:42vh;z-index:-1;pointer-events:none;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,transparent) 0 2px,transparent 2px 60px),repeating-linear-gradient(0deg,color-mix(in srgb,var(--accent) 55%,transparent) 0 2px,transparent 2px 40px);transform:perspective(300px) rotateX(62deg);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(to top,#000 0%,transparent 85%);mask-image:linear-gradient(to top,#000 0%,transparent 85%);opacity:.35}:root[data-style=retro][data-theme=light] body:before{opacity:.22}:root[data-style=retro] body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.09) 0 1px,transparent 1px 3px)}:root[data-style=retro][data-theme=light] body:after{background:repeating-linear-gradient(0deg,rgba(60,0,90,.035) 0 1px,transparent 1px 3px)}:root[data-style=retro] .app main,:root[data-style=retro] .center-screen{position:relative;z-index:0}:root[data-style=retro] h1,:root[data-style=retro] h2,:root[data-style=retro] h3,:root[data-style=retro] .tabbar button,:root[data-style=retro] .fab,:root[data-style=retro] .primary,:root[data-style=retro] .danger,:root[data-style=retro] .toast,:root[data-style=retro] .tag,:root[data-style=retro] .field-label,:root[data-style=retro] label{font-family:var(--font-label);font-weight:400}:root[data-style=retro] h1{font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);text-shadow:0 0 8px color-mix(in srgb,var(--accent) 70%,transparent),2px 2px 0 color-mix(in srgb,var(--accent) 45%,transparent)}:root[data-style=retro][data-theme=light] h1{text-shadow:2px 2px 0 color-mix(in srgb,var(--accent) 30%,transparent)}:root[data-style=retro] h2{font-size:.95rem;letter-spacing:.08em;text-transform:uppercase}:root[data-style=retro] h3{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}:root[data-style=retro] label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}:root[data-style=retro] .field-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}:root[data-style=retro] [data-testid=progress-text],:root[data-style=retro] .all-streak b,:root[data-style=retro] .join-code,:root[data-style=retro] .pscore,:root[data-style=retro] .score-chip,:root[data-style=retro] .leaders b,:root[data-style=retro] .best-vals,:root[data-style=retro] .member-progress b{font-family:var(--font-num);font-weight:400;color:var(--accent-2);text-shadow:0 0 6px color-mix(in srgb,var(--accent-2) 60%,transparent)}:root[data-style=retro][data-theme=light] [data-testid=progress-text],:root[data-style=retro][data-theme=light] .pscore,:root[data-style=retro][data-theme=light] .score-chip,:root[data-style=retro][data-theme=light] .leaders b,:root[data-style=retro][data-theme=light] .best-vals,:root[data-style=retro][data-theme=light] .join-code,:root[data-style=retro][data-theme=light] .member-progress b{text-shadow:none}:root[data-style=retro] [data-testid=progress-text]{font-size:1.6rem}:root[data-style=retro] .all-streak b{font-size:2rem;color:#ffd319;text-shadow:0 0 8px #ffd31988}:root[data-style=retro] .pscore{font-size:1.35rem}:root[data-style=retro] .score-chip{font-size:1.15rem}:root[data-style=retro] .leaders b,:root[data-style=retro] .best-vals{font-size:1.25rem}:root[data-style=retro] .join-code{font-size:2.6rem;letter-spacing:.25em}:root[data-style=retro] .member-progress b{font-size:1.3rem}:root[data-style=retro] .today-header h1,:root[data-style=retro] .me-banner h1{font-size:.95rem}:root[data-style=retro] .tile-name{font-weight:700;font-size:1.05rem}:root[data-style=retro] .tag{font-size:.6rem;letter-spacing:.1em;padding:2px 6px;border-radius:0;color:var(--warn)}:root[data-style=retro] .card,:root[data-style=retro] .tile,:root[data-style=retro] .group-card,:root[data-style=retro] .game-list li,:root[data-style=retro] .invite-card,:root[data-style=retro] .install-banner,:root[data-style=retro] .install-tip,:root[data-style=retro] .parsed,:root[data-style=retro] .hint,:root[data-style=retro] .all-streak,:root[data-style=retro] .group-chip{border-radius:0;border:2px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:none;clip-path:var(--notch)}:root[data-style=retro] .tile.done{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 8%,var(--surface))}:root[data-style=retro] .tile.done .tile-name{color:var(--accent-2)}:root[data-style=retro] .hint{background:var(--hint-bg);border-color:var(--warn)}:root[data-style=retro] .sheet{border-radius:0;background:var(--surface);border-top:2px solid var(--accent);box-shadow:0 -6px 24px color-mix(in srgb,var(--accent) 35%,transparent)}:root[data-style=retro] .sheet-handle{border-radius:0;height:4px;width:56px;background:var(--accent)}:root[data-style=retro] button,:root[data-style=retro] .button{border-radius:0}:root[data-style=retro] .primary,:root[data-style=retro] .danger,:root[data-style=retro] .fab{clip-path:var(--notch);letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;transition:transform .06s,filter .1s}:root[data-style=retro] .primary{background:var(--accent);color:var(--on-accent)}:root[data-style=retro] .secondary{background:transparent;border:2px solid var(--accent-2);color:var(--accent-2);font-weight:600;clip-path:var(--notch)}:root[data-style=retro] .primary:active:not(:disabled),:root[data-style=retro] .secondary:active:not(:disabled),:root[data-style=retro] .danger:active:not(:disabled){transform:translateY(2px);filter:brightness(1.2)}:root[data-style=retro] .fab{border-radius:0;white-space:nowrap;font-size:.78rem;min-height:54px;padding:0 24px;background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;box-shadow:none;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--accent) 70%,transparent))}:root[data-style=retro] .fab:active{transform:translate(-50%,2px)}:root[data-style=retro] .link{color:var(--accent-2)}:root[data-style=retro] input,:root[data-style=retro] select,:root[data-style=retro] textarea{border-radius:0;border:2px solid var(--accent-2);background:color-mix(in srgb,var(--bg) 70%,var(--surface));font-family:var(--font-body);font-size:17px;color:var(--text)}:root[data-style=retro] input:focus,:root[data-style=retro] select:focus,:root[data-style=retro] textarea:focus{outline:none;box-shadow:var(--glow);border-color:var(--accent)}:root[data-style=retro] .code-input{font-family:var(--font-num);font-size:2rem;letter-spacing:.4em;color:var(--accent-2)}:root[data-style=retro] .segmented{border-radius:0;border:2px solid var(--border);padding:3px;background:transparent}:root[data-style=retro] .segmented button{border-radius:0;font-family:var(--font-label);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}:root[data-style=retro] .segmented button.on{background:var(--accent);color:var(--on-accent)}:root[data-style=retro] .progress{height:16px;border-radius:0;background:transparent;border:0;padding:0}:root[data-style=retro] .progress:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,var(--surface-2) 0 12px,transparent 12px 16px)}:root[data-style=retro] .progress{position:relative}:root[data-style=retro] .progress div{position:relative;border-radius:0;transition:width .3s steps(8);background:linear-gradient(90deg,var(--accent),var(--accent-2))!important;-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px);mask-image:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 60%,transparent))}:root[data-style=retro] .tabbar{border-top:2px solid var(--accent);background:var(--nav-bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -4px 18px color-mix(in srgb,var(--accent) 25%,transparent)}:root[data-style=retro] .tabbar button{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;gap:4px}:root[data-style=retro] .tabbar button.on{color:var(--accent-2);text-shadow:0 0 8px color-mix(in srgb,var(--accent-2) 70%,transparent)}:root[data-style=retro] .me-banner,:root[data-style=retro] .group-hero{border-radius:0;clip-path:var(--notch)}:root[data-style=retro] .group-banner{border-radius:0}:root[data-style=retro] .me-banner .all-streak{clip-path:none;border:0;background:#00000059}:root[data-style=retro] .me-banner h1,:root[data-style=retro] .group-hero h1{color:#fff}:root[data-style=retro] .score-chip{border-radius:0;border:2px solid var(--border);background:var(--surface-2);clip-path:var(--notch)}:root[data-style=retro] .score-chip.won{outline:0;border-color:var(--warn);color:var(--warn);text-shadow:0 0 6px #ffd31999}:root[data-style=retro] .score-chip.empty{color:var(--muted);text-shadow:none}:root[data-style=retro] .dot{border-radius:0;width:9px;height:9px}:root[data-style=retro] .group-chip-icon,:root[data-style=retro] .emoji-current,:root[data-style=retro] .icon-pick button,:root[data-style=retro] .banner-pick button,:root[data-style=retro] .check-row,:root[data-style=retro] .section-list li,:root[data-style=retro] .rx-bar,:root[data-style=retro] .rx-bar button,:root[data-style=retro] .raw,:root[data-style=retro] .color-pick button,:root[data-style=retro] .avatar-pick button,:root[data-style=retro] .install-banner img{border-radius:0}:root[data-style=retro] .avatar{border-radius:0;clip-path:var(--notch)}:root[data-style=retro] .toast{border-radius:0;clip-path:var(--notch);background:#ffd319;color:#1a1200;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;max-width:88vw;text-align:center}:root[data-style=retro] .tile-more{color:var(--accent-2)}:root[data-style=retro] .install-tip,:root[data-style=retro] .invite-card{border-style:dashed}.standings-table{width:100%;border-collapse:collapse;font-size:.95rem}.standings-table th{text-align:left;font-weight:600;color:var(--muted);font-size:.75rem;padding:4px 6px}.standings-table td{padding:7px 6px;border-top:1px solid var(--border)}.standings-table .num{text-align:center;width:1%;white-space:nowrap}.standings-table th:nth-child(n+3){text-align:center}.standings-table tr.me td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.standings .who{display:inline-flex;align-items:center;gap:8px}.h2h{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.h2h li{display:flex;align-items:center;justify-content:space-between}.h2h .w{color:var(--good)}.h2h .l{color:var(--danger)}:root[data-style=retro] .standings-table td.num,:root[data-style=retro] .h2h .record{font-family:var(--font-num);font-size:1.3rem}:root[data-style=retro] .standings-table th{font-family:var(--font-label);letter-spacing:.08em;text-transform:uppercase;font-weight:400}.history{display:flex;flex-direction:column;gap:12px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px}.stat{background:var(--surface-2);border-radius:10px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:2px}.stat b{font-size:1.15rem}.stat span{font-size:.72rem;color:var(--muted)}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-head .link{font-size:1.5rem;min-width:44px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:.72rem;color:var(--muted)}.cal-day{aspect-ratio:1;border-radius:8px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.8rem;overflow:hidden}.cal-day i{font-style:normal;color:var(--muted)}.cal-day small{font-size:.62rem;font-weight:700;color:var(--text);white-space:nowrap}.cal-day.played{background:color-mix(in srgb,var(--accent) 35%,var(--surface-2))}.cal-day.played i{color:var(--text)}.cal-day.today{outline:2px solid var(--accent-2, var(--accent))}.cal-day.future{opacity:.35}.chart{margin:0}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--border);stroke-dasharray:3 4}.chart .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.chart .pt{fill:var(--accent-2, var(--accent))}.chart text{fill:var(--muted);font-size:10px}:root[data-style=retro] .stat,:root[data-style=retro] .cal-day{border-radius:0;clip-path:var(--notch)}:root[data-style=retro] .stat b{font-family:var(--font-num);font-size:1.6rem;font-weight:400;color:var(--accent-2)}:root[data-style=retro] .stat span,:root[data-style=retro] .cal-dow{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.08em}:root[data-style=retro] .cal-day small{font-family:var(--font-num);font-size:.85rem;font-weight:400}:root[data-style=retro] .chart .line{filter:drop-shadow(0 0 3px var(--accent))}:root[data-style=retro] .chart text{font-family:var(--font-num);font-size:12px}.badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.badges li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:10px 4px;background:var(--surface-2);border-radius:12px}.badges li b{font-size:.82rem}.badges li .small{font-size:.68rem;line-height:1.25}.badges .badge-icon{font-size:1.8rem}.badges li.locked{opacity:.45}.badges li.got{outline:2px solid color-mix(in srgb,var(--warn) 70%,transparent)}:root[data-style=retro] .badges li{border-radius:0;clip-path:var(--notch)}:root[data-style=retro] .badges li b{font-family:var(--font-label);font-weight:400;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}:root[data-style=retro] .badges li.got{outline:0;background:color-mix(in srgb,var(--warn) 18%,var(--surface-2))}:root[data-style=retro] .badges li.got .badge-icon{filter:drop-shadow(0 0 6px #ffd319aa)}.mascot{display:flex;align-items:flex-end;gap:10px;margin-bottom:14px}.mascot img{flex:none;width:96px;height:96px}.mascot .bubble{position:relative;flex:1;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.mascot .bubble:before{content:"";position:absolute;left:-9px;bottom:16px;width:14px;height:14px;background:inherit;border-left:inherit;border-bottom:inherit;transform:rotate(45deg)}.mascot .bubble p{margin:0;font-weight:600}.mascot .bubble button{align-self:flex-start}.mood-done img{animation:mascot-hop .9s ease-in-out 2}@keyframes mascot-hop{30%{transform:translateY(-10px) rotate(-4deg)}60%{transform:translateY(0) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.mood-done img{animation:none}}:root[data-style=retro] .mascot .bubble{border-radius:0;border:2px solid var(--border)}:root[data-style=retro] .mascot .bubble:before{border-left:2px solid var(--border);border-bottom:2px solid var(--border)}:root[data-style=retro] .mood-done .bubble{border-color:var(--warn)}:root[data-style=retro] .mascot .bubble p{font-family:var(--font-label);font-weight:400;font-size:.8rem;letter-spacing:.04em;line-height:1.5}.row-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.row-buttons>button{flex:1 1 auto}#remind-hour{width:100%}#fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;overflow:hidden}.fx-p{position:absolute;line-height:1;will-change:transform,opacity;-webkit-user-select:none;user-select:none}.fx-ring{position:absolute;width:90px;height:90px;border-radius:50%;border:3px solid var(--accent, #ff4fd8);box-shadow:0 0 12px var(--accent, #ff4fd8)}.fx-word{font-family:Silkscreen,monospace;color:#5cf2ff;background:#1a0b3a;padding:2px 6px;border-radius:4px;box-shadow:0 0 8px #5cf2ff;white-space:nowrap}.fx-warp{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mascot img,.all-streak,[data-testid=today-date]{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.boing{animation:fx-boing .45s cubic-bezier(.3,1.6,.5,1)}@keyframes fx-boing{0%{transform:scale(1)}30%{transform:scale(.85,1.12)}60%{transform:scale(1.12,.9)}to{transform:scale(1)}}.barrel-roll{animation:fx-roll .9s cubic-bezier(.5,0,.3,1)}@keyframes fx-roll{0%{transform:rotate(0) scale(1)}50%{transform:rotate(200deg) scale(1.3)}to{transform:rotate(360deg) scale(1)}}.rx-pop{animation:fx-pop .35s cubic-bezier(.3,1.8,.5,1)}@keyframes fx-pop{0%{transform:scale(1)}40%{transform:scale(1.6)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.boing,.barrel-roll,.rx-pop{animation:none}}.toast{z-index:10000!important}.tickle{display:inline-block;cursor:pointer;border-radius:50%;-webkit-tap-highlight-color:transparent}.progress{cursor:pointer}.wiggle{animation:fx-wiggle .5s ease}@keyframes fx-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}.progress.wiggle{animation:fx-shake .4s ease}@keyframes fx-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.mascot img{-webkit-touch-callout:none;-webkit-user-drag:none;touch-action:manipulation}.napping{transform:rotate(-14deg) translateY(6px);filter:saturate(.6) brightness(.85);transition:transform .5s ease,filter .5s ease}@media(prefers-reduced-motion:reduce){.wiggle,.progress.wiggle{animation:none}}html{touch-action:manipulation}.app h1,.app .plain-date{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fx-cameo{position:absolute;left:50%;bottom:calc(70px + var(--safe-bottom));width:auto;height:auto;max-width:min(62vw,260px);max-height:44vh;transform:translate(-50%,110%);filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent, #ff4fd8) 55%,transparent))}.fx-fly{position:absolute;width:150px;height:auto;filter:drop-shadow(0 0 10px #ff8a3c)}.mascot img{object-fit:contain}.group-switch{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:10px -16px 2px;padding:2px 16px 6px;scroll-snap-type:x proximity}.group-switch::-webkit-scrollbar{display:none}.group-switch .group-chip{flex:none;white-space:nowrap;scroll-snap-align:start}.group-switch .group-chip.on{color:var(--text);font-weight:650;border:2px solid var(--accent)}:root[data-style=retro] .group-switch .group-chip.on{border-color:var(--accent);color:var(--text);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 45%,transparent)}.react-score{background:none;padding:0 2px;min-height:28px;color:inherit;font:inherit;cursor:pointer;text-decoration:underline dotted color-mix(in srgb,var(--accent) 70%,transparent);text-underline-offset:3px}.react-score.picking{color:var(--accent)}.tile-rx{font-size:.72rem;white-space:nowrap;flex:none}.rx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.rx-float{position:fixed;z-index:41;animation:fade .12s}.tiles-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}.tiles-head h3{margin:0}.view-toggle{padding:3px}.view-toggle button{min-height:32px;padding:0 10px;font-size:.8rem;white-space:nowrap}.tiles.compact{grid-template-columns:1fr;gap:6px}.tiles.compact .tile{flex-direction:row;align-items:center;min-height:50px}.tiles.compact .tile-main{flex-direction:row;align-items:center;gap:8px;min-height:0;padding:8px 4px 8px 10px;flex:0 1 44%;min-width:0}.tiles.compact .tile-icon{font-size:1.25rem;flex:none}.tiles.compact .tile-name{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tiles.compact .tag{display:none}.tiles.compact .tile-players{flex:1 1 auto;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;padding:4px 0;gap:2px 12px;min-width:0}.tiles.compact .tile-players li{gap:4px}.tiles.compact .pname{display:none}.tiles.compact .pscore{margin-left:0}.tiles.compact .tile-players{order:2;padding-right:4px}.tiles.compact .tile-more{position:static;flex:none;width:38px;order:3}:root[data-style=retro] .tiles.compact .tile-name{font-size:.95rem}.board li{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.board-game{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-scores{flex:none;justify-content:flex-end}.score-chip.empty{background:none!important;border-color:transparent!important;clip-path:none!important;min-width:36px;justify-content:center}.score-chip.empty .dot{opacity:.45}.row>button,.screen-header button{white-space:nowrap}:root[data-style=retro] .row>button{font-size:.72rem;letter-spacing:.08em;padding:0 10px}.progress+.group-switch{margin-top:12px}.secrets{border-top:1px dashed var(--border);padding-top:6px}.secrets summary{display:flex;align-items:center;min-height:40px;font-weight:600;font-size:.9rem;list-style:none;cursor:pointer}.secrets summary::-webkit-details-marker{display:none}.secrets summary:after{content:"›";margin-left:auto;color:var(--muted);transition:transform .2s}.secrets[open] summary:after{transform:rotate(90deg)}.egg-grid{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:320px}.egg-grid li{aspect-ratio:1;display:grid;place-items:center;font-size:1.3rem;background:var(--surface-2);border-radius:10px}.egg-grid li.locked span{filter:grayscale(1);opacity:.35}.egg-grid li.got{box-shadow:inset 0 0 0 2px var(--accent-2, var(--accent))}:root[data-style=retro] .egg-grid li{border-radius:0;clip-path:var(--notch)}.egg-found{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px;font-size:.82rem;color:var(--muted)}.tabbar{align-items:center}.tabbar button svg{display:block}.tabbar .tab-paste{flex:1;min-height:58px}.tab-paste-icon{width:52px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 45%,transparent);transition:transform .12s}.tab-paste:active .tab-paste-icon{transform:scale(.94)}:root[data-style=retro] .tab-paste-icon{border-radius:0;clip-path:var(--notch);background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#7b2cff));box-shadow:none}:root[data-style=retro] .tabbar button.on svg{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent-2) 70%,transparent))}.tiles-head{gap:8px}.tiles-head h3{flex:1}.edit-games{display:inline-flex;align-items:center;gap:4px;min-height:34px;font-size:.85rem}.tiles-sub{margin:12px 2px 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}:root[data-style=retro] .tiles-sub{font-family:var(--font-label);font-weight:400;letter-spacing:.14em}.me-link{flex-direction:row;align-items:center;gap:12px;width:100%;text-align:left;color:inherit;cursor:pointer}.me-link .grow{display:flex;flex-direction:column;gap:2px}.me-link-icon{font-size:1.5rem}.feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.feed-day{margin:10px 2px 4px}.feed-post{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.feed-post.crowned{border-color:color-mix(in srgb,#ffc85c 70%,var(--border))}.feed-head{display:flex;align-items:center;gap:10px}.feed-head .grow{min-width:0;line-height:1.3}.feed-score{font-weight:700;font-size:1.15rem;white-space:nowrap}.feed-grid{font-size:.95rem;line-height:1.25;letter-spacing:1px;margin:0;color:var(--text)}.feed-actions{display:flex;align-items:center;gap:10px;min-height:28px}.feed-rx{font-size:.9rem}.feed-react{margin-left:auto;min-height:32px;font-size:.85rem}.feed-rx-bar{align-self:flex-end}.feed-skeleton{display:grid;gap:10px}.feed-skeleton div{height:92px;border-radius:var(--radius);background:var(--surface-2);animation:skel 1.2s ease-in-out infinite alternate}@keyframes skel{0%{opacity:.5}to{opacity:1}}:root[data-style=retro] .feed-post{border-radius:0;border:2px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);clip-path:var(--notch)}:root[data-style=retro] .feed-post.crowned{border-color:var(--warn)}:root[data-style=retro] .feed-score{font-family:var(--font-num, "VT323", monospace);font-weight:400;font-size:1.6rem;color:var(--accent-2)}:root[data-style=retro] .feed-post.crowned .feed-score{color:var(--warn)}:root[data-style=retro] .feed-skeleton div{border-radius:0}
