@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pp-font-display: "Fraunces Variable", "Fraunces", "Playfair Display", Georgia, serif;--pp-font-body: "Nunito Variable", "Nunito", "Inter", system-ui, -apple-system, sans-serif;--pp-font-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--pp-size-xs: 11px;--pp-size-sm: 13px;--pp-size-md: 15px;--pp-size-lg: 18px;--pp-size-xl: 22px;--pp-size-2xl: 28px;--pp-size-3xl: 36px;--pp-size-4xl: 48px;--pp-weight-regular: 400;--pp-weight-medium: 600;--pp-weight-bold: 700;--pp-radius-xs: 6px;--pp-radius-sm: 10px;--pp-radius-md: 18px;--pp-radius-lg: 28px;--pp-radius-pill: 999px;--pp-space-1: 4px;--pp-space-2: 8px;--pp-space-3: 12px;--pp-space-4: 16px;--pp-space-5: 20px;--pp-space-6: 24px;--pp-space-8: 32px;--pp-space-10: 40px;--pp-space-12: 48px;--pp-ease-out: cubic-bezier(.2, .8, .2, 1);--pp-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--pp-dur-fast: .12s;--pp-dur-base: .22s;--pp-dur-slow: .42s;--pp-dur-celebrate: .62s;--pp-shadow-1: 0 1px 2px rgba(45, 35, 24, .06), 0 2px 6px rgba(45, 35, 24, .04);--pp-shadow-2: 0 2px 6px rgba(45, 35, 24, .08), 0 8px 24px rgba(45, 35, 24, .08);--pp-shadow-3: 0 6px 16px rgba(45, 35, 24, .1), 0 16px 48px rgba(45, 35, 24, .12);--pp-bg: #fdf8f3;--pp-bg-soft: #f6ecdf;--pp-surface: #ffffff;--pp-surface-sunk: #f9f1e4;--pp-ink: #2d2318;--pp-ink-soft: #6b5a48;--pp-ink-faint: #a89880;--pp-line: #eddfc9;--pp-line-soft: #f4e9d8;--pp-brand: #e8763a;--pp-brand-soft: #fce0cc;--pp-brand-ink: #ffffff;--pp-ok: #4f9a5a;--pp-warn: #d9a73a;--pp-danger: #c2472c;--pp-game: var(--pp-brand);--pp-game-soft: var(--pp-brand-soft)}:root[data-theme=dark]{--pp-bg: #1a1612;--pp-bg-soft: #241e17;--pp-surface: #2b241c;--pp-surface-sunk: #1f1a14;--pp-ink: #fdf8f3;--pp-ink-soft: #c7b89f;--pp-ink-faint: #85755e;--pp-line: #3e3424;--pp-line-soft: #2f281e;--pp-brand: #ff9f6a;--pp-brand-soft: #5a3c26;--pp-ok: #7fc58a;--pp-warn: #f5c466;--pp-danger: #e87d6a;--pp-shadow-1: 0 1px 2px rgba(0,0,0,.4), 0 2px 6px rgba(0,0,0,.3);--pp-shadow-2: 0 2px 6px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.4);--pp-shadow-3: 0 6px 16px rgba(0,0,0,.6), 0 16px 48px rgba(0,0,0,.5)}[data-game=twenty48]{--pp-game: #f59e0b;--pp-game-soft: #fde7b8}[data-game=sudoku]{--pp-game: #3b82c4;--pp-game-soft: #cfe1f0}[data-game=crossjam]{--pp-game: #b4498a;--pp-game-soft: #f5d4e6}[data-game=solitaire]{--pp-game: #5a9b6a;--pp-game-soft: #d3ebd8}[data-game=freecell]{--pp-game: #3f8a8a;--pp-game-soft: #c9e2e2}[data-game=fiver]{--pp-game: #6aaa64;--pp-game-soft: #d4e8ce}[data-game=minesweeper]{--pp-game: #c2472c;--pp-game-soft: #f4cfc4}[data-game=tetris]{--pp-game: #7a4dc4;--pp-game-soft: #e0d0f2}[data-game=picross]{--pp-game: #2a7a8a;--pp-game-soft: #c3dfe4}[data-game=mahjong]{--pp-game: #8a6a2a;--pp-game-soft: #e8dcc0}[data-game=memory]{--pp-game: #c4518a;--pp-game-soft: #f0d0e0}[data-game=simon]{--pp-game: #ba2a2a;--pp-game-soft: #f5d0d0}[data-game=lights-out]{--pp-game: #4d7ac4;--pp-game-soft: #d0dcf0}[data-game=mastermind]{--pp-game: #7a2a5a;--pp-game-soft: #e4ccd9}[data-game=sokoban]{--pp-game: #a86a3a;--pp-game-soft: #ead4b9}[data-game=fifteen]{--pp-game: #5a6a8a;--pp-game-soft: #d1d6e0}[data-game=hangman]{--pp-game: #6a5a8a;--pp-game-soft: #d8d2e3}[data-game=twenty-q]{--pp-game: #2a6a6a;--pp-game-soft: #c4dcdc}[data-game=cryptogram]{--pp-game: #5546a3;--pp-game-soft: #d4cfe8}[data-game=polyblock]{--pp-game: #d4663a;--pp-game-soft: #f6d8c8}[data-game=flood]{--pp-game: #2aa39a;--pp-game-soft: #c4e6e3}[data-game=samegame]{--pp-game: #d4577a;--pp-game-soft: #f4cdd9}[data-game=pegs]{--pp-game: #b5793a;--pp-game-soft: #ecd6b6}[data-game=untangle]{--pp-game: #b94db0;--pp-game-soft: #f0d2ec}[data-game=unequal]{--pp-game: #6f7fd4;--pp-game-soft: #d8ddf6}[data-game=towers]{--pp-game: #5a82a6;--pp-game-soft: #d3e0ec}[data-game=keen]{--pp-game: #2f9e6e;--pp-game-soft: #c6e8d6}[data-game=loopy]{--pp-game: #44559c;--pp-game-soft: #cfd5ef}[data-game=pearl]{--pp-game: #d9786a;--pp-game-soft: #f4d6cf}[data-game=tracks]{--pp-game: #5c6b7a;--pp-game-soft: #d4dae0}[data-game=signpost]{--pp-game: #c9971f;--pp-game-soft: #efdcae}[data-game=unruly]{--pp-game: #6a6cc0;--pp-game-soft: #d9daf3}[data-game=mosaic]{--pp-game: #7d8a4a;--pp-game-soft: #dfe3c4}[data-game=lightup]{--pp-game: #e0913a;--pp-game-soft: #f6dcbd}[data-game=tents]{--pp-game: #2e7d4f;--pp-game-soft: #c4e2d0}[data-game=slant]{--pp-game: #3f8f7a;--pp-game-soft: #c8e4dc}[data-game=singles]{--pp-game: #4a6f9c;--pp-game-soft: #cdddec}[data-game=range]{--pp-game: #5a5566;--pp-game-soft: #d6d2dd}[data-game=magnets]{--pp-game: #c2543f;--pp-game-soft: #f0cfc6}[data-game=undead]{--pp-game: #6b4e8e;--pp-game-soft: #dcd0ea}[data-game=rectangles]{--pp-game: #c08436;--pp-game-soft: #f0ddbf}[data-game=dominosa]{--pp-game: #2f7d8a;--pp-game-soft: #c5e2e6}[data-game=filling]{--pp-game: #b5603f;--pp-game-soft: #f0d2c5}[data-game=galaxies]{--pp-game: #5a59a6;--pp-game-soft: #d3d2ec}[data-game=palisade]{--pp-game: #4f7a52;--pp-game-soft: #cce0cd}[data-game=map]{--pp-game: #486a8a;--pp-game-soft: #cdd9e6}[data-game=sixteen]{--pp-game: #c2698f;--pp-game-soft: #f0d2de}[data-game=twiddle]{--pp-game: #8a5fb0;--pp-game-soft: #ddd0ec}[data-game=net]{--pp-game: #2f9e8f;--pp-game-soft: #c2e6df}[data-game=netslide]{--pp-game: #4d7cc7;--pp-game-soft: #cdddf2}[data-game=bridges]{--pp-game: #2b6f9c;--pp-game-soft: #c6dcea}[data-game=blackbox]{--pp-game: #50505f;--pp-game-soft: #d4d4dc}[data-game=inertia]{--pp-game: #c14d86;--pp-game-soft: #f0cfe0}[data-game=cube]{--pp-game: #2f95b0;--pp-game-soft: #c4e2ea}[data-game=rush-hour]{--pp-game: #cf8a3b;--pp-game-soft: #f1ddba}.pp-display{font-family:var(--pp-font-display);letter-spacing:-.01em}.pp-body{font-family:var(--pp-font-body)}.pp-mono{font-family:var(--pp-font-mono);letter-spacing:.04em}.pp-btn-primary{background:var(--pp-brand);color:var(--pp-brand-ink);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);border:none;padding:12px 22px;border-radius:var(--pp-radius-pill);font-size:var(--pp-size-sm);cursor:pointer;transition:transform var(--pp-dur-fast) var(--pp-ease-out),box-shadow var(--pp-dur-fast) var(--pp-ease-out)}.pp-btn-primary:hover{transform:translateY(-1px);box-shadow:var(--pp-shadow-2)}.pp-btn-primary:active{transform:translateY(0)}.pp-btn-ghost{background:transparent;color:var(--pp-ink);border:1.5px solid var(--pp-line);padding:11px 22px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer}.pp-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-4)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--pp-font-body);background:var(--pp-bg);color:var(--pp-ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation;overflow-x:clip}#app{min-height:100%;height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column}.game-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.game-shell__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--pp-space-3);padding-top:var(--pp-space-3);padding-right:calc(var(--pp-space-5) + env(safe-area-inset-right));padding-bottom:var(--pp-space-3);padding-left:calc(var(--pp-space-5) + env(safe-area-inset-left));position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--pp-bg) 92%,transparent);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px)}.game-shell__back{justify-self:start;appearance:none;border:0;background:transparent;color:var(--pp-ink-soft);cursor:pointer;width:40px;height:40px;border-radius:var(--pp-radius-pill);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:background var(--pp-dur-fast) var(--pp-ease-out)}.game-shell__back:active{background:var(--pp-bg-soft)}.game-shell__title{justify-self:center;font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);margin:0;color:var(--pp-game, var(--pp-brand));letter-spacing:-.01em}.game-shell__spacer{width:48px;justify-self:end}.game-shell__body{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:var(--pp-space-3);padding-right:calc(var(--pp-space-5) + env(safe-area-inset-right));padding-bottom:var(--pp-space-6);padding-left:calc(var(--pp-space-5) + env(safe-area-inset-left));width:100%;max-width:min(92vmin,960px);margin:0 auto}@media(orientation:landscape){.game-shell__body{max-width:920px}}.game-shell[data-game=solitaire] .game-shell__body,.game-shell[data-game=freecell] .game-shell__body,.game-shell[data-game=minesweeper] .game-shell__body,.game-shell[data-game=memory] .game-shell__body{max-width:min(98vmin,1200px)}.game-shell[data-game=solitaire] .game-shell__body,.game-shell[data-game=freecell] .game-shell__body{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}.daily-streak-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--pp-radius-pill);background:color-mix(in oklab,var(--pp-warn) 18%,var(--pp-surface));color:var(--pp-ink);font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;font-weight:var(--pp-weight-bold);text-transform:uppercase;font-variant-numeric:tabular-nums;cursor:default;-webkit-tap-highlight-color:transparent}button[aria-label=Settings]{min-width:36px!important;min-height:36px!important;padding:4px 8px!important;font-size:18px!important;line-height:1!important;display:inline-flex;align-items:center;justify-content:center}.game-shell__loading{flex:1;min-height:200px;display:flex;align-items:center;justify-content:center}.game-shell__loading:before{content:"";width:36px;height:36px;border-radius:50%;background:var(--pp-game, var(--pp-brand));animation:game-shell-pulse 1.2s ease-in-out infinite}@keyframes game-shell-pulse{0%,to{transform:scale(.6);opacity:.35}50%{transform:scale(1);opacity:.85}}.app-overlay,.tutorial-overlay,[class$=__overlay]{position:fixed;inset:0;display:grid!important;place-items:center!important;overflow-y:auto!important;padding:calc(var(--pp-space-4) + env(safe-area-inset-top)) calc(var(--pp-space-4) + env(safe-area-inset-right)) calc(var(--pp-space-4) + env(safe-area-inset-bottom)) calc(var(--pp-space-4) + env(safe-area-inset-left));background:color-mix(in oklab,var(--pp-bg) 75%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.app-overlay,.tutorial-overlay{z-index:60}[class$=__overlay]{z-index:50}.app-overlay__card{width:100%;max-width:360px}.return-to-app{display:flex;flex-direction:column;align-items:center;gap:var(--pp-space-3);padding:var(--pp-space-6) var(--pp-space-5);background:var(--pp-surface);border-radius:var(--pp-radius-lg);box-shadow:0 18px 50px #0000002e;text-align:center}.return-to-app__mark{width:56px;height:56px;border-radius:50%;background:color-mix(in oklab,var(--pp-ok) 18%,transparent);color:var(--pp-ok);font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.return-to-app__title{font-family:var(--pp-font-display);font-size:22px;font-weight:600;color:var(--pp-ink)}.return-to-app__copy{margin:0;font-size:14px;line-height:1.45;color:var(--pp-ink-soft);max-width:30ch}.return-to-app__actions{display:flex;flex-direction:column;gap:var(--pp-space-2);width:100%;margin-top:var(--pp-space-2)}.return-to-app__primary,.return-to-app__secondary{appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg);color:var(--pp-ink);font-family:var(--pp-font-body);font-weight:600;font-size:15px;padding:12px 18px;border-radius:var(--pp-radius-pill);text-align:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.return-to-app__primary{background:var(--pp-brand);color:#fff;border-color:transparent}.app-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);transform:translate(-50%);background:color-mix(in oklab,var(--pp-ink) 90%,var(--pp-bg) 10%);color:var(--pp-bg);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);padding:10px 18px;border-radius:var(--pp-radius-pill);box-shadow:0 8px 22px #0000002e;z-index:80;animation:app-toast-in .22s var(--pp-ease-out);pointer-events:none;max-width:90vw;text-align:center}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.pp-supporter-badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:0;color:var(--pp-warn)}.pp-supporter-badge__disc{fill:var(--pp-warn)}.pp-supporter-badge__rays rect{fill:color-mix(in oklab,var(--pp-warn) 80%,var(--pp-brand))}.game-placeholder{text-align:center;padding:var(--pp-space-10) var(--pp-space-4);color:var(--pp-ink-soft)}.game-placeholder__icon{font-family:var(--pp-font-display);font-size:var(--pp-size-4xl);font-weight:var(--pp-weight-bold);color:var(--pp-game);margin-bottom:var(--pp-space-4);line-height:1}.game-placeholder__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);color:var(--pp-ink);margin:0 0 var(--pp-space-2);letter-spacing:-.01em}.game-placeholder__body{margin:0;font-size:var(--pp-size-md);color:var(--pp-ink-soft)}.version-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:var(--pp-space-5);background:var(--pp-bg)}.version-gate__card{max-width:340px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--pp-space-3)}.version-gate__title{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:24px;color:var(--pp-ink)}.version-gate__copy{margin:0;font-size:var(--pp-size-md);line-height:1.5;color:var(--pp-ink-soft)}.version-gate__btn{margin-top:var(--pp-space-2);display:inline-block;background:var(--pp-brand);color:#fff;font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:15px;padding:12px 24px;border-radius:var(--pp-radius-pill);text-decoration:none;-webkit-tap-highlight-color:transparent}.install-banner{flex:0 0 auto;display:flex;align-items:center;gap:var(--pp-space-3);padding:8px calc(var(--pp-space-4) + env(safe-area-inset-right)) 8px calc(var(--pp-space-4) + env(safe-area-inset-left));background:color-mix(in oklab,var(--pp-surface) 96%,var(--pp-ink));border-bottom:1px solid var(--pp-line)}.install-banner__close{appearance:none;border:0;background:transparent;color:var(--pp-ink-faint);font-size:15px;line-height:1;padding:6px;cursor:pointer;-webkit-tap-highlight-color:transparent}.install-banner__mark{flex:0 0 auto;display:flex}.install-banner__text{flex:1 1 auto;min-width:0}.install-banner__title{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:15px;color:var(--pp-ink);line-height:1.1}.install-banner__sub{font-size:12px;color:var(--pp-ink-soft)}.install-banner__btn{flex:0 0 auto;background:var(--pp-brand);color:#fff;font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:14px;padding:7px 18px;border-radius:var(--pp-radius-pill);text-decoration:none;-webkit-tap-highlight-color:transparent}.game-shell__offline{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--pp-space-3);padding:var(--pp-space-5);max-width:340px;margin:0 auto}.game-shell__offline-title{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:22px;color:var(--pp-ink)}.game-shell__offline-body{margin:0;font-size:var(--pp-size-md);line-height:1.5;color:var(--pp-ink-soft)}.game-shell__offline-btn{margin-top:var(--pp-space-2);appearance:none;border:0;background:var(--pp-game, var(--pp-brand));color:#fff;font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:15px;padding:10px 22px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.fiver{display:flex;flex-direction:column;align-items:center;gap:var(--pp-space-3);flex:1 1 auto;min-height:0;width:100%;position:relative}.fiver__topbar{display:flex;justify-content:center;min-height:22px;flex-shrink:0}.fiver__board-wrap{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;width:100%;container-type:size}.fiver__board{display:grid;grid-template-rows:repeat(6,1fr);gap:6px;aspect-ratio:5 / 6;width:min(100cqw,calc(100cqh * 5 / 6))}.fiver__row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.fiver__tile{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:clamp(22px,7vmin,30px);text-transform:uppercase;border:2px solid var(--pp-line);border-radius:var(--pp-radius-sm);background:var(--pp-surface);color:var(--pp-ink);user-select:none;-webkit-user-select:none;transition:border-color var(--pp-dur-fast) var(--pp-ease-out),background 0s linear var(--reveal-delay, 0s),color 0s linear var(--reveal-delay, 0s);transform-origin:center}.fiver__tile[data-filled=true]{border-color:var(--pp-ink-soft);animation:fiver-pop .12s var(--pp-ease-spring)}@keyframes fiver-pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.fiver__tile[data-animate=true][data-state=gray],.fiver__tile[data-animate=true][data-state=yellow],.fiver__tile[data-animate=true][data-state=green]{--reveal-delay: calc(var(--col, 0) * .1s + .26s);animation:fiver-flip .52s var(--pp-ease-out) both;animation-delay:calc(var(--col, 0) * .1s)}.fiver__tile[data-state=gray]{background:var(--pp-ink-faint);color:#fff;border-color:transparent}.fiver__tile[data-state=yellow]{background:var(--pp-warn);color:#fff;border-color:transparent}.fiver__tile[data-state=green]{background:var(--pp-ok);color:#fff;border-color:transparent}@keyframes fiver-flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.fiver__row--shake{animation:fiver-shake .38s var(--pp-ease-out)}@keyframes fiver-shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}.fiver__row--win .fiver__tile{animation:fiver-bounce .52s var(--pp-ease-spring) both;animation-delay:calc(var(--col, 0) * 90ms + .9s)}@keyframes fiver-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}70%{transform:translateY(3px)}}@media(prefers-reduced-motion:reduce){.fiver__tile,.fiver__row{animation:none!important;transition:none!important}}.fiver__overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--pp-bg) 70%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:50;padding:var(--pp-space-4);animation:fiver-overlay-in var(--pp-dur-slow) var(--pp-ease-out)}@keyframes fiver-overlay-in{0%{opacity:0}to{opacity:1}}.fiver__overlay-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-3);padding:var(--pp-space-6);text-align:center;max-width:340px;width:100%;animation:fiver-overlay-pop var(--pp-dur-slow) var(--pp-ease-spring)}@keyframes fiver-overlay-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.fiver__overlay-title{font-family:var(--pp-font-display);font-size:var(--pp-size-3xl);font-weight:var(--pp-weight-bold);color:var(--pp-game);letter-spacing:-.02em;line-height:1}.fiver__overlay-subtitle{margin-top:var(--pp-space-2);color:var(--pp-ink-soft);font-size:var(--pp-size-sm)}.fiver__overlay-tag{margin-top:var(--pp-space-3);font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.fiver__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--pp-space-2);margin-top:var(--pp-space-5)}.fiver__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.fiver__stat-value{font-family:var(--pp-font-display);font-size:var(--pp-size-xl);font-weight:var(--pp-weight-bold);color:var(--pp-ink);font-variant-numeric:tabular-nums;line-height:1}.fiver__stat-label{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.fiver__overlay-actions{margin-top:var(--pp-space-5);display:flex;gap:var(--pp-space-2);justify-content:center;flex-wrap:wrap}.fiver__btn{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);padding:10px 18px;border-radius:var(--pp-radius-pill);cursor:pointer}.fiver__btn:active{transform:translateY(1px)}.fiver__btn--primary{background:var(--pp-game, var(--pp-brand));color:#fff;border-color:transparent}.fiver__error{position:absolute;top:var(--pp-space-10);left:50%;transform:translate(-50%);z-index:5;background:var(--pp-ink);color:var(--pp-bg);padding:6px 14px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);animation:fiver-error-in var(--pp-dur-base) var(--pp-ease-out);pointer-events:none;white-space:nowrap}@keyframes fiver-error-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.fiver__keyboard{display:flex;flex-direction:column;gap:6px;width:100%;align-self:center;flex-shrink:0}.fiver__kbrow{display:flex;gap:4px;justify-content:center}.fiver__key{appearance:none;border:0;flex:1;min-width:0;max-width:96px;aspect-ratio:7 / 9;height:auto;border-radius:var(--pp-radius-xs);background:color-mix(in oklab,var(--pp-ink-faint) 20%,var(--pp-surface));color:var(--pp-ink);font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:15px;cursor:pointer;text-transform:uppercase;touch-action:manipulation;transition:background var(--pp-dur-fast) var(--pp-ease-out);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.fiver__key:active{background:color-mix(in oklab,var(--pp-ink-faint) 40%,var(--pp-surface))}.fiver__key--wide{flex:1.5;max-width:144px;aspect-ratio:21 / 18;font-size:12px}.fiver__key[data-state=gray]{background:var(--pp-ink-faint);color:#fff}.fiver__key[data-state=yellow]{background:var(--pp-warn);color:#fff}.fiver__key[data-state=green]{background:var(--pp-ok);color:#fff}@media(orientation:landscape){.game-shell[data-game=fiver] .game-shell__body{max-width:880px}.fiver{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"topbar topbar" "board  kb";align-items:center;justify-items:center;gap:var(--pp-space-3)}.fiver__topbar{grid-area:topbar}.fiver__board-wrap{grid-area:board;width:100%;height:100%}.fiver__keyboard{grid-area:kb;align-self:center}}.fiver-editor{display:flex;flex-direction:column;gap:var(--pp-space-2)}.fiver-editor__label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--pp-ink-faint)}.fiver-editor__input{font-family:var(--pp-font-mono);font-size:22px;font-weight:700;letter-spacing:.4em;text-align:center;text-transform:lowercase;padding:12px 16px;border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);background:var(--pp-bg);color:var(--pp-ink);width:100%;box-sizing:border-box}.fiver-editor__input:focus{outline:none;border-color:var(--pp-brand)}.fiver-editor__hint{font-size:13px;min-height:1.4em}.fiver-editor__hint--soft{color:var(--pp-ink-faint)}.fiver-editor__hint--warn{color:var(--pp-warn)}.fiver-editor__hint--good{color:var(--pp-ok)}.hangman-editor{display:flex;flex-direction:column;gap:var(--pp-space-2)}.hangman-editor__label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--pp-ink-faint)}.hangman-editor__input{font-family:var(--pp-font-mono);font-size:22px;font-weight:700;letter-spacing:.3em;text-align:center;text-transform:lowercase;padding:12px 16px;border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);background:var(--pp-bg);color:var(--pp-ink);width:100%;box-sizing:border-box}.hangman-editor__input:focus{outline:none;border-color:var(--pp-brand)}.hangman-editor__hint{font-size:13px;min-height:1.4em}.hangman-editor__hint--soft{color:var(--pp-ink-faint)}.hangman-editor__hint--warn{color:var(--pp-warn)}.hangman-editor__hint--good{color:var(--pp-ok)}.cg{display:flex;flex-direction:column;align-items:stretch;gap:var(--pp-space-3);flex:1 1 auto;min-height:0;width:100%;max-width:min(100%,760px);align-self:center}.cg__bar{display:flex;justify-content:flex-start;align-items:center;gap:var(--pp-space-2);flex-wrap:wrap}.cg__chip{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink-soft);font-family:var(--pp-font-mono);font-size:clamp(10px,1.45vmin,15px);letter-spacing:1px;font-weight:var(--pp-weight-bold);padding:clamp(3px,.55vmin,6px) clamp(10px,1.6vmin,17px);border-radius:var(--pp-radius-pill);text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}.cg__chip:disabled{opacity:.4;cursor:not-allowed}.cg__chip--static{cursor:default;color:var(--pp-ink)}.cg__theme-line{display:flex;align-items:baseline;gap:var(--pp-space-2);padding:var(--pp-space-2) 0 0;margin-bottom:calc(-1 * var(--pp-space-1))}.cg__theme-label{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.cg__theme-value{font-family:var(--pp-font-display);font-size:14px;font-weight:var(--pp-weight-bold);color:var(--pp-game);letter-spacing:.02em}.cg__chip:not(.cg__chip--static):active{transform:scale(.95)}.cg__quote{display:flex;flex-wrap:wrap;gap:4px calc(var(--cg-cell) * .7);align-items:flex-end;line-height:1.1;padding:var(--pp-space-3);background:var(--pp-bg-soft);border-radius:var(--pp-radius-md);--cg-cell: clamp(22px, 4vmin, 36px);font-variant-numeric:tabular-nums}.cg__word{display:inline-flex;flex-wrap:nowrap;align-items:flex-end}.cg__letter{appearance:none;border:0;padding:2px 0;background:transparent;display:inline-flex;flex-direction:column;align-items:center;width:var(--cg-cell);min-width:var(--cg-cell);font-family:var(--pp-font-display);cursor:pointer;-webkit-tap-highlight-color:transparent}.cg__letter-guess{font-size:calc(var(--cg-cell) * .85);font-weight:var(--pp-weight-bold);color:var(--pp-ink);line-height:1;height:calc(var(--cg-cell) * 1.05);display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;padding:0;border-bottom:2px solid var(--pp-ink-faint)}.cg__letter--selected .cg__letter-guess{background:color-mix(in oklab,var(--pp-game) 25%,var(--pp-bg-soft));border-bottom-color:var(--pp-game);color:var(--pp-game)}.cg__letter--filled .cg__letter-guess{color:var(--pp-ink)}.cg__letter--revealed .cg__letter-guess{color:var(--pp-game);border-bottom-color:var(--pp-game)}.cg__letter--wrong .cg__letter-guess{color:var(--pp-danger);border-bottom-color:var(--pp-danger);background:color-mix(in oklab,var(--pp-danger) 15%,var(--pp-bg-soft))}.cg__letter-cipher{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-faint);margin-top:3px;line-height:1;letter-spacing:0;font-weight:var(--pp-weight-bold);font-variant-numeric:tabular-nums}.cg__raw{font-family:var(--pp-font-display);font-size:calc(var(--cg-cell) * .85);color:var(--pp-ink-soft);display:inline-flex;align-items:center;justify-content:center;line-height:1;min-width:calc(var(--cg-cell) * .5);padding-bottom:calc(var(--cg-cell) * .55)}.cg__author{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink-soft);font-style:italic;text-align:right;padding-right:var(--pp-space-3)}.cg__solved{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);padding:var(--pp-space-5) var(--pp-space-4);box-shadow:var(--pp-shadow-1);text-align:center;display:flex;flex-direction:column;gap:var(--pp-space-3);align-items:center;margin-top:auto}.cg__solved-eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:color-mix(in oklab,var(--pp-game) 80%,var(--pp-ink));font-variant-numeric:tabular-nums}.cg__solved-quote{font-family:var(--pp-font-display);font-size:var(--pp-size-lg);line-height:1.35;color:var(--pp-ink);font-style:italic;max-width:36ch}.cg__solved-author{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink-soft)}.cg__solved-theme{font-family:var(--pp-font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-game);font-weight:var(--pp-weight-bold);margin-top:var(--pp-space-1)}.cg__solved-invite{margin-top:var(--pp-space-3);padding:var(--pp-space-3);background:var(--pp-game-soft);border:1px solid color-mix(in oklab,var(--pp-game) 30%,transparent);border-radius:var(--pp-radius-md);display:flex;flex-direction:column;align-items:center;gap:var(--pp-space-2)}.cg__solved-invite-line{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink);text-align:center}.cg__btn--invite{background:var(--pp-game);color:var(--pp-surface);border-color:var(--pp-game);font-weight:var(--pp-weight-bold)}.cg__btn--invite:hover{filter:brightness(1.05)}.cg__solved-actions{display:flex;gap:var(--pp-space-2);margin-top:var(--pp-space-2)}.cg__mode-picker{display:flex;flex-direction:column;gap:var(--pp-space-2);margin-top:var(--pp-space-3)}.cg__mode-option{appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);padding:var(--pp-space-3);border-radius:var(--pp-radius-md);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.cg__mode-option--active{background:var(--pp-game);color:#fff;border-color:transparent}.cg__mode-name{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);line-height:1}.cg__mode-sub{font-family:var(--pp-font-body);font-size:11px;margin-top:4px;opacity:.85}.cg-composer__overlay{position:fixed;inset:0;background:color-mix(in oklab,var(--pp-bg) 75%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:60;padding:var(--pp-space-4)}.cg-composer__card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-3);padding:var(--pp-space-5);width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--pp-space-3)}.cg-composer__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.cg-composer__text{appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);border-radius:var(--pp-radius-sm);padding:10px 12px;font-family:var(--pp-font-body);font-size:var(--pp-size-md);line-height:1.4;resize:vertical;min-height:80px}.cg-composer__count{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-ink-faint);text-align:right;margin-top:-4px;display:flex;justify-content:space-between;gap:var(--pp-space-2)}.cg-composer__hint{text-align:right}.cg-composer__hint--bad{color:var(--pp-danger)}.cg-composer__hint--warn{color:var(--pp-warn)}.cg-composer__hint--good{color:var(--pp-ok)}.cg-composer__preview{background:var(--pp-bg);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-3);margin:var(--pp-space-2) 0;max-height:180px;overflow-y:auto}.cg-composer__preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--pp-space-2)}.cg-composer__preview-label{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.cg-composer__preview-shuffle{background:transparent;border:1px solid var(--pp-line);border-radius:var(--pp-radius-pill);padding:2px 10px;font-size:11px;color:var(--pp-ink-soft);cursor:pointer;font-family:inherit}.cg-composer__preview-shuffle:hover{background:var(--pp-surface);color:var(--pp-ink)}.cg-composer__preview-body{font-size:13px;line-height:1.4}.cg-composer__pword{display:inline-flex;align-items:flex-end;margin:0 6px 4px 0;vertical-align:bottom}.cg-composer__pcell{display:inline-flex;flex-direction:column;align-items:center;padding:0 1px;line-height:1}.cg-composer__pguess{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:13px;color:var(--pp-game);min-height:14px}.cg-composer__pcipher{font-family:var(--pp-font-mono);font-size:9px;color:var(--pp-game);opacity:.7;border-top:1px solid var(--pp-game);padding-top:1px;margin-top:1px;min-width:9px;text-align:center}.cg-composer__praw{font-family:var(--pp-font-display);font-size:13px;color:var(--pp-ink-soft);align-self:flex-end}.cg-composer__row{display:flex;gap:var(--pp-space-2)}.cg-composer__row--align{align-items:center}.cg-composer__input{flex:1;appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);border-radius:var(--pp-radius-sm);padding:8px 12px;font-family:var(--pp-font-body);font-size:var(--pp-size-sm);min-width:0}.cg-composer__label{display:flex;align-items:center;gap:var(--pp-space-2);font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold);width:100%}.cg-composer__label input[type=range]{flex:1}.cg-composer__starters{font-family:var(--pp-font-mono);font-weight:var(--pp-weight-bold);color:var(--pp-ink);min-width:16px;text-align:right}.cg-composer__actions{display:flex;gap:var(--pp-space-2);justify-content:flex-end;flex-wrap:wrap}.cg-composer__btn{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:8px 16px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer}.cg-composer__btn:disabled{opacity:.5;cursor:not-allowed}.cg-composer__btn--primary{background:var(--pp-game);color:#fff;border-color:transparent}.cg-composer__sent-line{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.cg-composer__link{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-soft);background:var(--pp-bg-soft);padding:8px 10px;border-radius:var(--pp-radius-sm);word-break:break-all;user-select:all;-webkit-user-select:all}.cg__strikes{display:inline-flex;align-items:center;gap:4px;padding:0 6px}.cg__strike{width:9px;height:9px;border-radius:50%;background:color-mix(in oklab,var(--pp-danger) 20%,var(--pp-bg-soft));border:1px solid color-mix(in oklab,var(--pp-danger) 30%,transparent);transition:background var(--pp-dur-fast) var(--pp-ease-out)}.cg__strike--used{background:var(--pp-danger);border-color:transparent}.cg__strikes--low{animation:cg-strikes-pulse 1.4s var(--pp-ease-out) infinite}@keyframes cg-strikes-pulse{0%,to{opacity:1}50%{opacity:.55}}.cg__solved--lost .cg__solved-eyebrow{color:var(--pp-danger)}.cg__mode-tagline{margin:var(--pp-space-2) 0 0;font-size:var(--pp-size-xs);line-height:1.45;color:var(--pp-ink-soft)}.cg__strikes-toggle{display:flex;align-items:flex-start;gap:var(--pp-space-2);margin-top:var(--pp-space-3);padding:var(--pp-space-2) var(--pp-space-3);background:var(--pp-bg-soft);border-radius:var(--pp-radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.cg__strikes-toggle input[type=checkbox]{margin-top:3px;flex-shrink:0;accent-color:var(--pp-game)}.cg__strikes-toggle strong{display:block;font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.cg__strikes-toggle small{display:block;font-size:var(--pp-size-xs);color:var(--pp-ink-soft);margin-top:2px}.cg__keyboard{margin-top:auto;display:flex;flex-direction:column;gap:6px;width:100%;max-width:760px;align-self:center}.cg__kbrow{display:flex;gap:4px;justify-content:center}.cg__key{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);flex:1;min-width:0;max-width:72px;aspect-ratio:11 / 12;height:auto;font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:var(--pp-size-md);border-radius:var(--pp-radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}.cg__key:disabled{opacity:.35;cursor:not-allowed}.cg__key:not(:disabled):active{transform:scale(.96)}.cg__key--used{background:var(--pp-bg-soft);color:var(--pp-ink-faint)}.cg__key--wide{flex:1.5;max-width:108px;aspect-ratio:33 / 24;font-size:18px}.cg__overlay{position:fixed;inset:0;display:grid;place-items:center;overflow-y:auto;padding:calc(var(--pp-space-4) + env(safe-area-inset-top)) calc(var(--pp-space-4) + env(safe-area-inset-right)) calc(var(--pp-space-4) + env(safe-area-inset-bottom)) calc(var(--pp-space-4) + env(safe-area-inset-left));background:color-mix(in oklab,var(--pp-bg) 75%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:50;animation:cg-in var(--pp-dur-slow) var(--pp-ease-out)}@keyframes cg-in{0%{opacity:0}to{opacity:1}}.cg__overlay-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-3);padding:var(--pp-space-5);width:100%;max-width:360px;text-align:center}.cg__overlay-eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.cg__overlay-title{font-family:var(--pp-font-display);font-size:var(--pp-size-3xl);font-weight:var(--pp-weight-bold);color:var(--pp-game);letter-spacing:-.02em;line-height:1;margin-top:4px}.cg__overlay-quote{font-family:var(--pp-font-display);font-size:var(--pp-size-md);color:var(--pp-ink);margin-top:var(--pp-space-4);line-height:1.4;font-style:italic}.cg__overlay-author{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink-soft);margin-top:var(--pp-space-2)}.cg__overlay-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--pp-space-3) var(--pp-space-5);margin-top:var(--pp-space-4)}.cg__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.cg__stat-value{font-family:var(--pp-font-display);font-size:var(--pp-size-xl);font-weight:var(--pp-weight-bold);color:var(--pp-ink);font-variant-numeric:tabular-nums;line-height:1}.cg__stat-label{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.cg__overlay-actions{margin-top:var(--pp-space-5);display:flex;justify-content:center;gap:var(--pp-space-2)}.cg__btn{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:9px 18px;border-radius:var(--pp-radius-pill);cursor:pointer;font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm)}.cg__btn--primary{background:var(--pp-game);color:#fff;border-color:transparent}@media(min-width:600px){.game-shell[data-game=cryptogram] .game-shell__body{max-width:880px}.cg{max-width:none}.cg__quote{--cg-cell: 32px}}@media(min-width:880px){.cg__quote{--cg-cell: 36px}}@media(orientation:landscape)and (max-height:500px){.cg{min-height:0}.cg__quote{--cg-cell: 18px;padding:var(--pp-space-2);flex:1 1 0;min-height:0;overflow-y:auto}}.email-prefs__card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-3);padding:var(--pp-space-5);width:100%;max-width:360px}.email-prefs__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.email-prefs__email{font-family:var(--pp-font-display);font-size:var(--pp-size-lg);font-weight:var(--pp-weight-bold);color:var(--pp-ink);margin-top:4px;letter-spacing:-.01em;word-break:break-all}.email-prefs__loading{font-size:var(--pp-size-sm);color:var(--pp-ink-soft);padding:var(--pp-space-3) 0}.email-prefs__link{appearance:none;border:0;background:transparent;color:var(--pp-brand);font:inherit;text-decoration:underline;cursor:pointer}.email-prefs__row{display:flex;align-items:center;justify-content:space-between;gap:var(--pp-space-3);margin-top:var(--pp-space-4);padding:var(--pp-space-3) 0;border-top:1px solid var(--pp-line)}.email-prefs__row-label{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.email-prefs__row-sub{font-size:var(--pp-size-xs);color:var(--pp-ink-soft);margin-top:2px}.email-prefs__switch{appearance:none;border:0;background:var(--pp-bg-soft);width:44px;height:26px;border-radius:13px;position:relative;cursor:pointer;transition:background var(--pp-dur-fast) var(--pp-ease-out);flex-shrink:0;-webkit-tap-highlight-color:transparent}.email-prefs__switch:disabled{opacity:.6;cursor:not-allowed}.email-prefs__switch--on{background:var(--pp-brand)}.email-prefs__switch-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--pp-surface);box-shadow:0 1px 2px #0003;transition:transform var(--pp-dur-fast) var(--pp-ease-out)}.email-prefs__switch--on .email-prefs__switch-thumb{transform:translate(18px)}.email-prefs__error{font-size:var(--pp-size-xs);color:var(--pp-danger);margin-top:var(--pp-space-2)}.email-prefs__actions{display:flex;justify-content:flex-end;margin-top:var(--pp-space-4)}.email-prefs__close{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:8px 16px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);cursor:pointer}.parlor{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;position:relative}.parlor__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;width:100%;max-width:1200px;margin:0 auto;padding-top:var(--pp-space-4);padding-right:calc(var(--pp-space-5) + env(safe-area-inset-right));padding-bottom:var(--pp-space-6);padding-left:calc(var(--pp-space-5) + env(safe-area-inset-left))}.parlor-header{display:flex;justify-content:space-between;align-items:center;margin-top:var(--pp-space-2)}.parlor-header__date{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;color:var(--pp-ink-faint);text-transform:uppercase;font-weight:var(--pp-weight-bold)}.parlor-header__brand{display:flex;align-items:center;gap:10px;margin-top:2px}.parlor-header__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--pp-ink)}.parlor-header__title-accent{font-style:italic;color:var(--pp-brand)}.parlor-header__actions{display:flex;align-items:center;gap:var(--pp-space-2)}.parlor-header__toggle{appearance:none;width:40px;height:40px;border-radius:var(--pp-radius-pill);background:var(--pp-surface);border:1px solid var(--pp-line);color:var(--pp-ink);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--pp-dur-fast) var(--pp-ease-out),background var(--pp-dur-fast) var(--pp-ease-out)}.parlor-header__toggle:active{transform:scale(.92)}.parlor-header__account{position:relative}.parlor-header__avatar{appearance:none;width:40px;height:40px;border-radius:var(--pp-radius-pill);background:var(--pp-surface);border:1px solid var(--pp-line);display:flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:14px;color:var(--pp-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.parlor-header__avatar--supporter{border-color:color-mix(in oklab,var(--pp-warn) 60%,var(--pp-line))}.parlor-header__avatar-badge{position:absolute;top:-4px;right:-4px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--pp-bg);border-radius:50%;box-shadow:0 0 0 1.5px var(--pp-bg);pointer-events:none}.parlor-header__menu-supporter{display:flex;align-items:center;gap:6px;font-family:var(--pp-font-body);font-size:var(--pp-size-xs);font-weight:var(--pp-weight-bold);color:var(--pp-warn);padding:4px 8px;text-transform:uppercase;letter-spacing:.08em}.parlor-header__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);box-shadow:var(--pp-shadow-2);padding:var(--pp-space-2);z-index:20;display:flex;flex-direction:column;gap:var(--pp-space-1)}.parlor-header__menu-name{font-family:var(--pp-font-display);font-size:var(--pp-size-sm);font-weight:var(--pp-weight-bold);color:var(--pp-ink);padding:4px 8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parlor-header__menu-email{font-family:var(--pp-font-body);font-size:var(--pp-size-xs);color:var(--pp-ink-faint);padding:0 8px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parlor-header__menu-item{appearance:none;border:0;background:transparent;color:var(--pp-ink);text-align:left;padding:8px;border-radius:var(--pp-radius-sm);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);cursor:pointer}.parlor-header__menu-item:hover{background:var(--pp-bg-soft)}.parlor-header__signin{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);padding:8px 14px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.parlor-header__signin:active{transform:scale(.97)}.parlor-daily{appearance:none;display:grid;grid-template-columns:1fr auto;grid-template-areas:"body chip" "cta cta";gap:var(--pp-space-3);width:100%;margin-top:var(--pp-space-5);padding:var(--pp-space-4) var(--pp-space-5);text-align:left;background:color-mix(in oklab,var(--pp-game-soft) 70%,var(--pp-surface) 30%);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-1);font:inherit;color:var(--pp-ink);cursor:pointer;transition:transform var(--pp-dur-fast) var(--pp-ease-out),box-shadow var(--pp-dur-fast) var(--pp-ease-out)}.parlor-daily:active{transform:translateY(1px);box-shadow:var(--pp-shadow-1)}.parlor-daily__body{grid-area:body}.parlor-daily__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.parlor-daily__title{font-family:var(--pp-font-display);font-size:var(--pp-size-xl);font-weight:var(--pp-weight-bold);letter-spacing:-.01em;margin-top:3px;line-height:1.1}.parlor-daily__hint{font-size:var(--pp-size-sm);color:var(--pp-ink-soft);margin-top:4px}.parlor-daily__chip{grid-area:chip;width:54px;height:54px;border-radius:var(--pp-radius-md);background:var(--pp-game);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--pp-font-display);font-size:var(--pp-size-lg);font-weight:var(--pp-weight-bold);box-shadow:var(--pp-shadow-1)}.parlor-daily__cta{grid-area:cta;justify-self:start;margin-top:var(--pp-space-2);padding:9px 18px;background:var(--pp-ink);color:var(--pp-bg);border-radius:var(--pp-radius-pill);font-size:var(--pp-size-xs);font-weight:var(--pp-weight-medium);font-family:var(--pp-font-body)}.parlor-welcome{position:relative;margin-top:var(--pp-space-5);background:var(--pp-surface);border:1px solid var(--pp-line);border-left:4px solid var(--pp-brand);border-radius:var(--pp-radius-md);padding:var(--pp-space-4) var(--pp-space-5);box-shadow:var(--pp-shadow-1);animation:parlor-welcome-in .24s var(--pp-ease-out) both}@keyframes parlor-welcome-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.parlor-welcome__close{position:absolute;top:var(--pp-space-2);right:var(--pp-space-2);width:28px;height:28px;border-radius:50%;background:transparent;border:0;color:var(--pp-ink-faint);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}.parlor-welcome__close:hover{background:var(--pp-bg);color:var(--pp-ink)}.parlor-welcome__eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--pp-brand);font-weight:var(--pp-weight-bold);margin-bottom:var(--pp-space-1)}.parlor-welcome__body{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);line-height:1.55;color:var(--pp-ink);padding-right:var(--pp-space-5)}.parlor-signin-nudge{margin-top:var(--pp-space-5);display:flex;align-items:center;gap:var(--pp-space-3);background:color-mix(in oklab,var(--pp-brand) 9%,var(--pp-surface));border:1px solid color-mix(in oklab,var(--pp-brand) 30%,var(--pp-line));border-radius:var(--pp-radius-md);padding:var(--pp-space-3) var(--pp-space-4)}.parlor-signin-nudge__text{flex:1 1 auto;min-width:0}.parlor-signin-nudge__title{font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:var(--pp-size-sm);color:var(--pp-ink)}.parlor-signin-nudge__sub{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);line-height:1.5;color:var(--pp-ink-soft);margin-top:2px}.parlor-signin-nudge__actions{display:flex;align-items:center;gap:var(--pp-space-2);flex-shrink:0}.parlor-signin-nudge__btn{appearance:none;border:0;background:var(--pp-brand);color:#fff;font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);padding:8px 16px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.parlor-signin-nudge__btn:active{transform:scale(.97)}.parlor-signin-nudge__dismiss{appearance:none;border:0;background:transparent;color:var(--pp-ink-faint);font-size:22px;line-height:1;width:28px;height:28px;border-radius:50%;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}.parlor-signin-nudge__dismiss:hover{background:var(--pp-bg);color:var(--pp-ink)}.parlor-section{margin-top:var(--pp-space-6)}.parlor-section__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--pp-space-3)}.parlor-section__eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;color:var(--pp-ink-faint);text-transform:uppercase;font-weight:var(--pp-weight-bold)}.parlor-section__meta{font-family:var(--pp-font-body);font-size:var(--pp-size-xs);color:var(--pp-ink-soft)}.parlor-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--pp-space-3)}@media(min-width:640px){.parlor-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:880px){.parlor-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1120px){.parlor-grid{grid-template-columns:repeat(5,1fr)}}.parlor-tile{appearance:none;font:inherit;color:var(--pp-ink);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;aspect-ratio:1 / 1;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:transform var(--pp-dur-fast) var(--pp-ease-out),box-shadow var(--pp-dur-fast) var(--pp-ease-out)}.parlor-tile:active{transform:scale(.97)}.parlor-tile--solved{background:color-mix(in oklab,var(--pp-game-soft) 40%,var(--pp-surface));border-color:color-mix(in oklab,var(--pp-game) 35%,var(--pp-line))}.parlor-tile__mark{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;color:var(--pp-game)}.parlor-tile__mark svg{width:100%;height:100%}.parlor-tile__glyph{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:clamp(72px,70cqw,180px);line-height:1;letter-spacing:-.02em;user-select:none}.parlor-tile__name{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);line-height:1;text-align:center;padding:8px 6px 12px}.parlor-tile{container-type:inline-size}.parlor-foot{margin-top:var(--pp-space-6);display:flex;justify-content:center;flex-wrap:wrap;gap:6px;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;color:var(--pp-ink-faint)}.parlor-foot__link{color:var(--pp-ink-soft);text-decoration:none}.parlor-foot__link:hover{color:var(--pp-ink)}.parlor-foot__sep{opacity:.5}.parlor-tabs{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding-top:var(--pp-space-2);padding-right:calc(env(safe-area-inset-right) + var(--pp-space-4));padding-bottom:var(--pp-space-2);padding-left:calc(env(safe-area-inset-left) + var(--pp-space-4));background:var(--pp-bg);border-top:1px solid var(--pp-line)}.parlor-tab{appearance:none;background:transparent;border:0;color:var(--pp-ink-faint);font-family:var(--pp-font-body);font-size:9px;font-weight:var(--pp-weight-medium);padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.parlor-tab[disabled]{cursor:not-allowed}.parlor-tab__icon{font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;position:relative}.parlor-tab__supporter{position:absolute;top:-4px;right:-8px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;background:var(--pp-bg);border-radius:50%;box-shadow:0 0 0 1.5px var(--pp-bg);pointer-events:none}.parlor-tab--active{color:var(--pp-brand)}.stats-hero{margin-top:var(--pp-space-4);padding:var(--pp-space-5) var(--pp-space-4);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.stats-hero__value{font-family:var(--pp-font-display);font-size:clamp(40px,11vmin,64px);font-weight:var(--pp-weight-bold);letter-spacing:-.02em;line-height:1;color:var(--pp-ink)}.stats-hero__label{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold);margin-top:6px}.stats-hero__empty-line{font-family:var(--pp-font-display);font-size:var(--pp-size-lg);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.stats-hero__empty-sub{font-size:var(--pp-size-sm);color:var(--pp-ink-soft);margin-top:4px}.stats-row__day{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;background:var(--pp-bg-soft);border:1px solid var(--pp-line)}.stats-row__day--solved{background:var(--pp-game, var(--pp-brand));border-color:transparent}.stats-row__day--today{outline:2px solid color-mix(in oklab,var(--pp-game, var(--pp-brand)) 40%,transparent);outline-offset:1px}.stats-row__record{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:.5px;color:var(--pp-ink-faint);margin-top:4px;text-transform:uppercase;font-weight:var(--pp-weight-bold)}.stats-row__sub-line{font-size:var(--pp-size-xs);color:var(--pp-ink-soft)}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pp-space-2);margin:var(--pp-space-4) 0 var(--pp-space-5)}.stats-summary__cell{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-3) var(--pp-space-2);text-align:center;display:grid;align-content:center;gap:4px}.stats-summary__label{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.stats-summary__value{font-family:var(--pp-font-display);font-size:var(--pp-size-xl);font-weight:var(--pp-weight-bold);letter-spacing:-.01em;line-height:1;color:var(--pp-ink)}.stats-summary__sep{font-weight:var(--pp-weight-regular);color:var(--pp-ink-faint)}.stats-summary__sub{font-size:var(--pp-size-xs);color:var(--pp-ink-soft)}.stats-summary__muted{color:var(--pp-ink-faint);font-weight:var(--pp-weight-regular)}.stats-list{display:grid;gap:var(--pp-space-2);margin-top:var(--pp-space-3)}.stats-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--pp-space-3);padding:var(--pp-space-3);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);text-align:left;cursor:pointer;appearance:none;font:inherit;color:inherit;transition:transform var(--pp-dur-fast) var(--pp-ease-out),background var(--pp-dur-fast) var(--pp-ease-out),border-color var(--pp-dur-fast) var(--pp-ease-out)}.stats-row:active{transform:scale(.99)}.stats-row--solved{border-color:var(--pp-game, var(--pp-brand));background:var(--pp-game-soft, var(--pp-surface))}.stats-row__chip{width:38px;height:38px;border-radius:var(--pp-radius-pill);display:grid;place-items:center;background:var(--pp-game-soft, var(--pp-bg-elevated, var(--pp-surface)));font-size:18px;flex-shrink:0}.stats-row__main{display:grid;gap:2px;min-width:0}.stats-row__name{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:var(--pp-size-md);color:var(--pp-ink);letter-spacing:-.01em}.stats-row__sub{font-size:var(--pp-size-xs);color:var(--pp-ink-soft)}.stats-row__badge{color:var(--pp-game, var(--pp-ok));font-weight:var(--pp-weight-bold)}.stats-row__nums{display:flex;gap:var(--pp-space-2);align-items:center}.stats-row__num{font-family:var(--pp-font-mono);font-size:var(--pp-size-xs);color:var(--pp-ink);font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:3px}.stats-row__num span{font-weight:var(--pp-weight-bold)}.stats-empty{color:var(--pp-ink-soft);text-align:center;margin:var(--pp-space-6) auto;font-size:var(--pp-size-sm);max-width:280px}@media(max-width:380px){.stats-row__num:nth-child(2){display:none}.stats-summary__cell{padding:var(--pp-space-2)}}.you-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-4);margin-top:var(--pp-space-3);display:flex;flex-direction:column;gap:var(--pp-space-3)}.you-card--quiet{background:transparent;border:0;padding:var(--pp-space-3) 0 0}.you-card__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint);display:inline-flex;align-items:center;gap:6px}.you-card--supporter{background:color-mix(in oklab,var(--pp-warn) 12%,var(--pp-surface));border-color:color-mix(in oklab,var(--pp-warn) 35%,var(--pp-line))}.you-card--supporter-active{background:color-mix(in oklab,var(--pp-warn) 16%,var(--pp-surface));border-color:color-mix(in oklab,var(--pp-warn) 45%,var(--pp-line))}.you-card__price{font-family:var(--pp-font-display);font-size:var(--pp-size-xl);font-weight:var(--pp-weight-bold);color:var(--pp-ink);letter-spacing:-.01em}.you-card__copy{font-size:var(--pp-size-sm);line-height:1.55;color:var(--pp-ink-soft);margin:0}.you-card__fineprint{font-size:11px;line-height:1.5;color:var(--pp-ink-faint);margin:var(--pp-space-2) 0 0}.you-card__fineprint-link{color:var(--pp-ink-soft);text-decoration:underline}.you-card__actions{display:flex;justify-content:flex-end;gap:var(--pp-space-2);flex-wrap:wrap}.you-card__btn{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:9px 16px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.you-card__btn:disabled{opacity:.5;cursor:not-allowed}.you-card__btn--primary{background:var(--pp-brand);color:#fff;border-color:transparent}.you-card__btn--danger{width:100%;background:transparent;color:var(--pp-danger);border-color:var(--pp-line)}.you-card__status{margin:var(--pp-space-3) 0 0;padding:var(--pp-space-3);border-radius:var(--pp-radius-sm);background:var(--pp-bg);border:1px solid var(--pp-line);color:var(--pp-ink-soft);font-size:13px;line-height:1.45}.you-restore-dialog{padding:var(--pp-space-5);display:flex;flex-direction:column;gap:var(--pp-space-3)}.you-restore-dialog__title{margin:0;font-family:var(--pp-font-display);font-size:18px;font-weight:600;color:var(--pp-ink)}.you-restore-dialog__body{margin:0;font-size:14px;line-height:1.5;color:var(--pp-ink-soft)}.you-restore-dialog__actions{display:flex;justify-content:flex-end}.you-toggle{display:flex;align-items:center;gap:var(--pp-space-3);margin-top:var(--pp-space-3);padding:var(--pp-space-3);border-radius:var(--pp-radius-sm);background:var(--pp-bg);border:1px solid var(--pp-line);cursor:pointer}.you-toggle__copy{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.you-toggle__title{font-size:14px;font-weight:600;color:var(--pp-ink)}.you-toggle__sub{font-size:12px;color:var(--pp-ink-faint);line-height:1.4}.you-toggle__input{flex:0 0 auto;width:22px;height:22px;accent-color:var(--pp-brand);cursor:pointer}.you-delete{display:flex;flex-direction:column;gap:var(--pp-space-3);margin-top:var(--pp-space-3)}.you-delete__trigger{appearance:none;border:0;background:transparent;color:var(--pp-ink-faint);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);text-decoration:underline;text-underline-offset:2px;cursor:pointer;align-self:center;padding:var(--pp-space-2);-webkit-tap-highlight-color:transparent}.you-delete__actions{display:flex;gap:var(--pp-space-2)}.you-delete__actions .you-card__btn{flex:1}.you-field{display:flex;flex-direction:column;gap:4px}.you-field__label{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.you-field__row{display:flex;gap:var(--pp-space-2);align-items:stretch}.you-field__input{flex:1;appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);padding:8px 12px;border-radius:var(--pp-radius-sm);font-family:var(--pp-font-body);font-size:var(--pp-size-md);min-width:0}.you-field__static{color:var(--pp-ink);font-size:var(--pp-size-md);word-break:break-all}.you-field__status{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:.5px;margin-top:2px}.you-field__status--ok{color:var(--pp-ok)}.you-field__status--err{color:var(--pp-danger)}.you-row{appearance:none;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:var(--pp-space-2) 0;text-align:left;cursor:pointer;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.you-row__label{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.you-row__sub{font-size:var(--pp-size-xs);color:var(--pp-ink-soft);margin-top:2px}.you-row__chev{font-size:22px;color:var(--pp-ink-faint);line-height:1}.you-theme{display:flex;gap:4px;background:var(--pp-bg-soft);border-radius:var(--pp-radius-pill);padding:4px}.you-theme__btn{appearance:none;border:0;background:transparent;flex:1;padding:8px 14px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);color:var(--pp-ink-soft);cursor:pointer}.you-theme__btn--active{background:var(--pp-surface);color:var(--pp-ink);box-shadow:0 1px 2px #0000000f}.you-foot{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;color:var(--pp-ink-faint);margin-top:4px}.you-foot__link{color:var(--pp-ink-soft);text-decoration:none}.you-foot__sep{opacity:.5}.friends-intro{font-size:var(--pp-size-md);line-height:1.55;color:var(--pp-ink-soft);margin:var(--pp-space-3) 0 var(--pp-space-4)}.friends-mock{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-4);position:relative;background-image:repeating-linear-gradient(135deg,transparent 0 24px,color-mix(in oklab,var(--pp-ink) 4%,transparent) 24px 25px)}.friends-mock__tag{position:absolute;top:var(--pp-space-3);right:var(--pp-space-3);font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint);background:var(--pp-bg-soft);padding:3px 8px;border-radius:var(--pp-radius-pill)}.friends-mock__roomline{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--pp-space-3);padding-right:60px}.friends-mock__roomname{font-family:var(--pp-font-display);font-size:var(--pp-size-md);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.friends-mock__code{font-family:var(--pp-font-mono);font-size:12px;letter-spacing:3px;font-weight:var(--pp-weight-bold);color:var(--pp-brand);background:color-mix(in oklab,var(--pp-brand) 12%,var(--pp-surface));padding:4px 10px;border-radius:var(--pp-radius-sm)}.friends-mock__members{display:flex;flex-direction:column;gap:var(--pp-space-2)}.friends-mock__member{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:var(--pp-space-2)}.friends-mock__avatar{width:32px;height:32px;border-radius:var(--pp-radius-pill);background:var(--pp-bg-soft);border:1px solid var(--pp-line);display:grid;place-items:center;font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:13px;color:var(--pp-ink)}.friends-mock__name{font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);color:var(--pp-ink)}.friends-mock__check-row{display:flex;gap:3px}.friends-mock__check{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:var(--pp-weight-bold);background:var(--pp-bg-soft);color:var(--pp-ink-faint)}.friends-mock__check--on{background:var(--pp-ok);color:#fff}.friends-cta{margin-top:var(--pp-space-5);padding:var(--pp-space-4);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md)}.friends-cta__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint);margin-bottom:var(--pp-space-2)}.friends-cta__form{display:flex;gap:var(--pp-space-2)}.friends-cta__input{flex:1;appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);padding:8px 12px;border-radius:var(--pp-radius-sm);font-family:var(--pp-font-body);font-size:var(--pp-size-sm);min-width:0}.friends-cta__btn{appearance:none;border:0;background:var(--pp-brand);color:#fff;padding:8px 16px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer}.friends-cta__btn:disabled{opacity:.5;cursor:not-allowed}.friends-cta__error{font-family:var(--pp-font-mono);font-size:10px;color:var(--pp-danger);margin-top:6px}.friends-cta__sent{font-family:var(--pp-font-body);color:var(--pp-ok);font-size:var(--pp-size-sm);text-align:center;font-weight:var(--pp-weight-medium)}.legal{padding-top:var(--pp-space-3);padding-bottom:var(--pp-space-8)}.legal__header{display:flex;flex-direction:column;gap:var(--pp-space-3);margin-bottom:var(--pp-space-5)}.legal__back{appearance:none;border:0;background:transparent;color:var(--pp-ink-soft);font:inherit;font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);cursor:pointer;padding:4px 10px;border-radius:var(--pp-radius-pill);align-self:flex-start;margin-left:-10px}.legal__back:active{background:var(--pp-bg-soft)}.legal__title-block{display:flex;flex-direction:column;gap:4px}.legal__eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;color:var(--pp-ink-faint);text-transform:uppercase;font-weight:var(--pp-weight-bold)}.legal__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--pp-ink)}.legal__updated{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1px;color:var(--pp-ink-faint);margin-top:4px}.legal__article{font-family:var(--pp-font-body);font-size:var(--pp-size-md);line-height:1.6;color:var(--pp-ink)}.legal__article h2{font-family:var(--pp-font-display);font-size:var(--pp-size-lg);font-weight:var(--pp-weight-bold);letter-spacing:-.01em;margin:var(--pp-space-5) 0 var(--pp-space-2);color:var(--pp-ink)}.legal__article p{margin:0 0 var(--pp-space-3)}.legal__article ul{margin:0 0 var(--pp-space-3);padding-left:var(--pp-space-5)}.legal__article li{margin-bottom:var(--pp-space-2)}.legal__article a{color:var(--pp-brand)}.legal__article code{font-family:var(--pp-font-mono);font-size:.9em;background:var(--pp-bg-soft);padding:1px 6px;border-radius:4px}.legal__footer{margin-top:var(--pp-space-8);padding-top:var(--pp-space-4);border-top:1px solid var(--pp-line);font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-faint);display:flex;flex-wrap:wrap;gap:6px}.legal__link{color:var(--pp-ink-soft);text-decoration:none}.legal__link:hover{color:var(--pp-ink)}.legal__sep{opacity:.5}.contact{padding-top:var(--pp-space-3);padding-bottom:var(--pp-space-8)}.contact__header{display:flex;flex-direction:column;gap:var(--pp-space-3);margin-bottom:var(--pp-space-5)}.contact__back{appearance:none;border:0;background:transparent;color:var(--pp-ink-soft);font:inherit;font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);cursor:pointer;padding:4px 10px;border-radius:var(--pp-radius-pill);align-self:flex-start;margin-left:-10px}.contact__back:active{background:var(--pp-bg-soft)}.contact__title-block{display:flex;flex-direction:column;gap:6px}.contact__eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;color:var(--pp-ink-faint);text-transform:uppercase;font-weight:var(--pp-weight-bold)}.contact__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--pp-ink)}.contact__sub{margin:0;color:var(--pp-ink-soft);font-size:var(--pp-size-sm);line-height:1.5;max-width:56ch}.contact__form{display:flex;flex-direction:column;gap:var(--pp-space-4)}.contact__categories{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--pp-space-2)}.contact__legend{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint);padding:0;margin-bottom:var(--pp-space-1)}.contact__category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--pp-space-2)}@media(min-width:540px){.contact__category-grid{grid-template-columns:repeat(4,1fr)}}.contact__category{display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:var(--pp-radius-md);border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);font-size:var(--pp-size-sm);font-weight:var(--pp-weight-medium);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--pp-dur-fast) var(--pp-ease-out),border-color var(--pp-dur-fast) var(--pp-ease-out),color var(--pp-dur-fast) var(--pp-ease-out)}.contact__category:active{transform:scale(.97)}.contact__category input{position:absolute;opacity:0;pointer-events:none}.contact__category--active{background:var(--pp-brand);border-color:transparent;color:#fff}.contact__category-name{font-family:var(--pp-font-body)}.contact__hint{margin:0;color:var(--pp-ink-soft);font-size:var(--pp-size-xs);line-height:1.4}.contact__field-row{display:grid;grid-template-columns:1fr;gap:var(--pp-space-3)}@media(min-width:540px){.contact__field-row{grid-template-columns:1fr 1fr}}.contact__field{display:flex;flex-direction:column;gap:4px}.contact__field-label{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.contact__input,.contact__textarea{appearance:none;font-family:var(--pp-font-body);font-size:var(--pp-size-md);color:var(--pp-ink);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);padding:10px 12px;width:100%;line-height:1.4;transition:border-color var(--pp-dur-fast) var(--pp-ease-out)}.contact__textarea{resize:vertical;min-height:160px;font-family:var(--pp-font-body)}.contact__input:focus,.contact__textarea:focus{outline:none;border-color:var(--pp-brand)}.contact__honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact__error{background:color-mix(in oklab,var(--pp-danger) 14%,var(--pp-surface));border:1px solid color-mix(in oklab,var(--pp-danger) 30%,transparent);color:var(--pp-danger);padding:10px 14px;border-radius:var(--pp-radius-sm);font-size:var(--pp-size-sm)}.contact__actions{display:flex;justify-content:flex-end}.contact__btn{appearance:none;font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:10px 22px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.contact__btn:active{transform:translateY(1px)}.contact__btn:disabled{opacity:.55;cursor:not-allowed}.contact__btn--primary{background:var(--pp-brand);color:#fff;border-color:transparent}.contact__sent{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);padding:var(--pp-space-6);text-align:center;max-width:420px;margin:0 auto}.contact__sent-eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ok)}.contact__sent-title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);margin:4px 0 var(--pp-space-3);color:var(--pp-ink)}.contact__sent-body{margin:0 0 var(--pp-space-5);color:var(--pp-ink-soft);font-size:var(--pp-size-sm);line-height:1.5}.contact__sent-actions{display:flex;gap:var(--pp-space-2);justify-content:center;flex-wrap:wrap}.tutorial-trigger{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink-soft);width:28px;height:28px;border-radius:50%;font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);font-size:14px;cursor:pointer;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center;line-height:1}.tutorial-trigger:active{transform:scale(.94)}.tutorial-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--pp-bg) 75%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:70;padding:var(--pp-space-4);animation:tutorial-overlay-in .22s var(--pp-ease-out)}@keyframes tutorial-overlay-in{0%{opacity:0}to{opacity:1}}.tutorial-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-3);padding:var(--pp-space-5);width:100%;max-width:360px;max-height:80vh;overflow-y:auto}.tutorial-card__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.tutorial-card__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);color:var(--pp-game, var(--pp-brand));letter-spacing:-.02em;line-height:1;margin-top:4px}.tutorial-card__goal{margin-top:var(--pp-space-3);font-size:var(--pp-size-md);line-height:1.5;color:var(--pp-ink)}.tutorial-card__list{margin:var(--pp-space-3) 0 0;padding-left:var(--pp-space-5);font-size:var(--pp-size-sm);line-height:1.5;color:var(--pp-ink-soft)}.tutorial-card__list li{margin-bottom:6px}.tutorial-card__tip{margin-top:var(--pp-space-3);padding:var(--pp-space-3);background:color-mix(in oklab,var(--pp-game-soft, var(--pp-bg-soft)) 60%,var(--pp-surface));border-radius:var(--pp-radius-sm);font-size:var(--pp-size-sm);line-height:1.5;color:var(--pp-ink)}.tutorial-card__tip-eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-game, var(--pp-brand));margin-right:2px}.tutorial-card__actions{margin-top:var(--pp-space-4);display:flex;justify-content:flex-end}.tutorial-card__btn{appearance:none;border:0;background:var(--pp-game, var(--pp-brand));color:#fff;padding:10px 22px;border-radius:var(--pp-radius-pill);font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.tutorial-card__btn:active{transform:scale(.97)}.analytics{max-width:980px;margin:0 auto;padding:var(--pp-space-4);padding-bottom:var(--pp-space-12);font-family:var(--pp-font-body);color:var(--pp-ink)}.analytics__header{display:flex;align-items:center;gap:var(--pp-space-3);margin-bottom:var(--pp-space-5)}.analytics__back{background:transparent;border:1px solid var(--pp-line);border-radius:var(--pp-radius-pill);padding:6px 14px;cursor:pointer;color:var(--pp-ink);font-family:inherit}.analytics__title{display:flex;flex-direction:column}.analytics__eyebrow{font-family:var(--pp-font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--pp-brand);font-weight:var(--pp-weight-bold)}.analytics__title h1{margin:0;font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);line-height:1}.analytics__loading,.analytics__err{padding:var(--pp-space-5);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);text-align:center;color:var(--pp-ink-muted)}.analytics__err{color:var(--pp-danger)}.analytics__section{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);padding:var(--pp-space-4);margin-bottom:var(--pp-space-4)}.analytics__section--split{display:grid;gap:var(--pp-space-4);grid-template-columns:1fr}@media(min-width:720px){.analytics__section--split{grid-template-columns:1fr 1fr}}.analytics__section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--pp-space-3)}.analytics__section-head h2{margin:0;font-family:var(--pp-font-display);font-size:18px;font-weight:var(--pp-weight-bold)}.analytics__hint{font-size:var(--pp-size-xs);color:var(--pp-ink-faint);text-transform:uppercase;letter-spacing:.06em}.analytics__kpi-row{display:grid;gap:var(--pp-space-3);grid-template-columns:repeat(3,1fr);margin-bottom:var(--pp-space-3)}.analytics__kpi{background:var(--pp-bg);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-3)}.analytics__kpi-label{font-size:var(--pp-size-xs);color:var(--pp-ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.analytics__kpi-value{font-family:var(--pp-font-display);font-size:28px;font-weight:var(--pp-weight-bold);line-height:1}.analytics__kpi-sub{margin-top:4px;font-size:var(--pp-size-xs);color:var(--pp-ink-muted)}.analytics__bars-card{background:var(--pp-bg);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-3);margin-top:var(--pp-space-3)}.analytics__bars-label{font-size:var(--pp-size-xs);color:var(--pp-ink-muted);margin-bottom:6px}.analytics-bars{display:block;width:100%}.analytics__table{width:100%;border-collapse:collapse;font-size:var(--pp-size-sm)}.analytics__table th,.analytics__table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--pp-line)}.analytics__table th{font-weight:var(--pp-weight-bold);color:var(--pp-ink-muted);font-size:var(--pp-size-xs);text-transform:uppercase;letter-spacing:.06em}.analytics__table td.num,.analytics__table th.num{text-align:right;font-variant-numeric:tabular-nums}.analytics__table td.mono{font-family:var(--pp-font-mono);font-size:12px}.analytics__table td.empty{text-align:center;color:var(--pp-ink-faint);padding:var(--pp-space-3)}.analytics__generated{text-align:center;margin-top:var(--pp-space-4);font-size:var(--pp-size-xs);color:var(--pp-ink-faint)}.dailies{max-width:960px;margin:0 auto;padding:var(--pp-space-5) var(--pp-space-4);padding-bottom:calc(env(safe-area-inset-bottom) + 80px)}.dailies__header{display:flex;align-items:flex-start;gap:var(--pp-space-3);margin-bottom:var(--pp-space-4)}.dailies__back{appearance:none;border:0;background:transparent;color:var(--pp-ink-soft);font-family:var(--pp-font-body);font-size:14px;padding:6px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.dailies__title h1{margin:0;font-family:var(--pp-font-display);font-weight:600;font-size:24px;color:var(--pp-ink)}.dailies__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--pp-ink-faint)}.dailies__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--pp-space-4);border-bottom:1px solid var(--pp-line);padding-bottom:var(--pp-space-2)}.dailies__tab{appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg);color:var(--pp-ink-soft);font-family:var(--pp-font-body);font-size:14px;font-weight:600;padding:6px 14px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.dailies__tab--active{background:var(--pp-brand);color:#fff;border-color:transparent}.dailies__loading,.dailies__empty{padding:var(--pp-space-4);text-align:center;color:var(--pp-ink-faint);font-size:14px}.dailies__err{padding:var(--pp-space-3);background:color-mix(in oklab,var(--pp-danger) 12%,transparent);color:var(--pp-danger);border-radius:var(--pp-radius-sm);margin-bottom:var(--pp-space-3);font-size:13px}.dailies__section{margin-top:var(--pp-space-5)}.dailies__section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--pp-space-3);margin-bottom:var(--pp-space-3);flex-wrap:wrap}.dailies__section-head h2{margin:0;font-family:var(--pp-font-display);font-weight:600;font-size:17px;color:var(--pp-ink)}.dailies__locked-hint{font-size:12px;color:var(--pp-ink-faint)}.dailies__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dailies__row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:var(--pp-space-3);padding:var(--pp-space-3);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm)}.dailies__row--published{background:var(--pp-bg);opacity:.7}.dailies__row--today{opacity:1;border-color:var(--pp-brand);background:color-mix(in oklab,var(--pp-brand) 8%,var(--pp-surface))}.dailies__date{font-family:var(--pp-font-mono);font-size:13px;color:var(--pp-ink);display:flex;align-items:center;gap:6px}.dailies__today-pill{font-family:var(--pp-font-body);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--pp-brand);color:#fff;padding:2px 6px;border-radius:var(--pp-radius-pill)}.dailies__payload{font-size:13px;color:var(--pp-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dailies__actions{display:flex;gap:6px;justify-content:flex-end}.dailies__btn{appearance:none;border:1px solid var(--pp-line);background:var(--pp-bg);color:var(--pp-ink);font-family:var(--pp-font-body);font-size:13px;font-weight:600;padding:6px 12px;border-radius:var(--pp-radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent}.dailies__btn:disabled{opacity:.5;cursor:not-allowed}.dailies__btn--primary{background:var(--pp-brand);color:#fff;border-color:transparent}.dailies__btn--danger{color:var(--pp-danger)}@media(max-width:480px){.dailies__row{grid-template-columns:1fr;gap:var(--pp-space-2)}.dailies__payload{white-space:normal}.dailies__actions{justify-content:flex-start}}.dailies-modal{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:70;padding:var(--pp-space-3)}.dailies-modal__card{background:var(--pp-surface);border-radius:var(--pp-radius-lg);box-shadow:0 20px 50px #00000040;padding:var(--pp-space-5);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;gap:var(--pp-space-3)}.dailies-modal__card--narrow{max-width:380px}.dailies-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--pp-space-3)}.dailies-modal__head h3{margin:4px 0 0;font-family:var(--pp-font-display);font-weight:600;font-size:18px;color:var(--pp-ink)}.dailies-modal__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--pp-ink-faint)}.dailies-modal__close{appearance:none;border:0;background:transparent;color:var(--pp-ink-faint);font-size:18px;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:4px 8px}.dailies-modal__textarea{width:100%;font-family:var(--pp-font-mono);font-size:13px;line-height:1.5;border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);background:var(--pp-bg);color:var(--pp-ink);padding:var(--pp-space-2);resize:vertical;min-height:200px}.dailies-modal__err{background:color-mix(in oklab,var(--pp-danger) 12%,transparent);color:var(--pp-danger);padding:8px 12px;border-radius:var(--pp-radius-sm);font-size:13px}.dailies-modal__actions{display:flex;justify-content:flex-end;gap:var(--pp-space-2)}.stages{max-width:640px;margin:0 auto;padding:var(--pp-space-4) var(--pp-space-4) var(--pp-space-8)}.stages__header{display:flex;align-items:center;gap:var(--pp-space-3);margin-bottom:var(--pp-space-4)}.stages__back{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);border-radius:var(--pp-radius-pill);padding:6px 14px;font-family:var(--pp-font-body);font-size:var(--pp-size-sm);cursor:pointer}.stages__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--pp-ink-faint);font-weight:var(--pp-weight-bold)}.stages__title h1{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);color:var(--pp-ink);margin:0}.stages__note{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink-soft);line-height:1.5;margin:0 0 var(--pp-space-4)}.stages__note code{font-family:var(--pp-font-mono);font-size:.85em;background:var(--pp-bg-soft);padding:1px 4px;border-radius:var(--pp-radius-xs)}.stages__err{background:color-mix(in oklab,var(--pp-danger) 12%,var(--pp-surface));border:1px solid color-mix(in oklab,var(--pp-danger) 40%,transparent);color:var(--pp-danger);border-radius:var(--pp-radius-md);padding:var(--pp-space-2) var(--pp-space-3);font-size:var(--pp-size-sm);margin-bottom:var(--pp-space-3)}.stages__loading{color:var(--pp-ink-faint);font-family:var(--pp-font-mono);font-size:var(--pp-size-sm);padding:var(--pp-space-4)}.stages__list{display:flex;flex-direction:column;gap:var(--pp-space-2)}.stages__row{display:flex;align-items:center;justify-content:space-between;gap:var(--pp-space-3);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-2) var(--pp-space-3)}.stages__row--busy{opacity:.55}.stages__game{display:flex;align-items:center;gap:var(--pp-space-2);min-width:0;flex-wrap:wrap}.stages__name{font-family:var(--pp-font-display);font-weight:var(--pp-weight-bold);color:var(--pp-ink)}.stages__badge{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:var(--pp-weight-bold);padding:2px 7px;border-radius:var(--pp-radius-pill);border:1px solid transparent}.stages__badge[data-stage=staged]{background:color-mix(in oklab,var(--pp-ink) 8%,transparent);color:var(--pp-ink-soft)}.stages__badge[data-stage=beta]{background:color-mix(in oklab,#c14d86 16%,transparent);color:#a23a6c}.stages__badge[data-stage=preview]{background:color-mix(in oklab,#cf8a3b 18%,transparent);color:#9a6320}.stages__badge[data-stage=released]{background:color-mix(in oklab,#15c265 16%,transparent);color:#0f8a48}.stages__ovr{font-family:var(--pp-font-mono);font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--pp-ink-faint);border:1px dashed var(--pp-line);border-radius:var(--pp-radius-pill);padding:1px 5px}.stages__controls{display:flex;align-items:center;gap:var(--pp-space-2);flex:0 0 auto}.stages__minver{width:64px;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);border-radius:var(--pp-radius-sm);padding:5px 7px;font-family:var(--pp-font-mono);font-size:12px;text-align:center}.stages__minver::placeholder{color:var(--pp-ink-faint);font-size:10px}.stages__sched{margin-top:var(--pp-space-6)}.stages__sched-title{font-family:var(--pp-font-display);font-size:var(--pp-size-lg);color:var(--pp-ink);margin:0 0 var(--pp-space-1)}.stages__sched-empty{font-family:var(--pp-font-mono);font-size:var(--pp-size-sm);color:var(--pp-ink-faint);padding:var(--pp-space-2) 0 var(--pp-space-3)}.stages__sched-list{display:flex;flex-direction:column;gap:var(--pp-space-2);margin-bottom:var(--pp-space-3)}.stages__sched-row{display:flex;align-items:center;justify-content:space-between;gap:var(--pp-space-2);background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md);padding:var(--pp-space-2) var(--pp-space-3)}.stages__sched-meta{display:flex;align-items:center;gap:var(--pp-space-2);flex-wrap:wrap}.stages__sched-arrow{color:var(--pp-ink-faint)}.stages__sched-when{font-family:var(--pp-font-mono);font-size:11px;color:var(--pp-ink-soft)}.stages__sched-cancel{appearance:none;border:none;background:transparent;color:var(--pp-ink-faint);font-size:14px;cursor:pointer;padding:4px 8px;border-radius:var(--pp-radius-pill);flex:0 0 auto}.stages__sched-cancel:hover{color:var(--pp-danger);background:var(--pp-bg-soft)}.stages__sched-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--pp-space-2);padding:var(--pp-space-3);background:var(--pp-bg-soft);border:1px solid var(--pp-line);border-radius:var(--pp-radius-md)}.stages__sched-when-input{border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);border-radius:var(--pp-radius-sm);padding:5px 7px;font-family:var(--pp-font-mono);font-size:12px}.stages__sched-add{appearance:none;border:1px solid transparent;background:var(--pp-brand);color:#fff;border-radius:var(--pp-radius-pill);padding:6px 16px;font-family:var(--pp-font-body);font-weight:var(--pp-weight-medium);font-size:var(--pp-size-sm);cursor:pointer}.stages__sched-add:disabled{opacity:.5;cursor:not-allowed}.stages__select{appearance:auto;border:1px solid var(--pp-line);background:var(--pp-bg-soft);color:var(--pp-ink);border-radius:var(--pp-radius-sm);padding:5px 8px;font-family:var(--pp-font-body);font-size:var(--pp-size-sm);cursor:pointer;flex:0 0 auto}.sign-in{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-2);padding:var(--pp-space-5);width:100%;max-width:360px;text-align:center;display:flex;flex-direction:column;gap:var(--pp-space-3)}.sign-in__mark{display:flex;justify-content:center;margin-bottom:var(--pp-space-1)}.sign-in__eyebrow{font-family:var(--pp-font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:var(--pp-weight-bold);color:var(--pp-ink-faint)}.sign-in__title{font-family:var(--pp-font-display);font-size:var(--pp-size-2xl);font-weight:var(--pp-weight-bold);color:var(--pp-ink);letter-spacing:-.02em;line-height:1}.sign-in__sub{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);color:var(--pp-ink-soft);line-height:1.35}.sign-in__form{display:flex;flex-direction:column;gap:var(--pp-space-2);margin-top:var(--pp-space-2)}.sign-in__input{appearance:none;border:1px solid var(--pp-line);background:var(--pp-surface);color:var(--pp-ink);padding:10px 14px;border-radius:var(--pp-radius-md);font-family:var(--pp-font-body);font-size:var(--pp-size-md);outline:none}.sign-in__input:focus{border-color:var(--pp-brand);box-shadow:0 0 0 3px color-mix(in oklab,var(--pp-brand) 25%,transparent)}.sign-in__input:disabled{opacity:.6}.sign-in__button{appearance:none;border:0;background:var(--pp-brand);color:#fff;padding:10px 18px;border-radius:var(--pp-radius-pill);cursor:pointer;font-family:var(--pp-font-body);font-weight:var(--pp-weight-bold);font-size:var(--pp-size-sm);-webkit-tap-highlight-color:transparent}.sign-in__button:not(:disabled):active{transform:scale(.98)}.sign-in__button:disabled{opacity:.55;cursor:not-allowed}.sign-in__status{font-family:var(--pp-font-body);font-size:var(--pp-size-sm);padding:8px 12px;border-radius:var(--pp-radius-md);line-height:1.35}.sign-in__status--ok{background:color-mix(in oklab,var(--pp-ok) 15%,var(--pp-surface));color:color-mix(in oklab,var(--pp-ok) 80%,var(--pp-ink))}.sign-in__status--err{background:color-mix(in oklab,var(--pp-danger) 15%,var(--pp-surface));color:color-mix(in oklab,var(--pp-danger) 80%,var(--pp-ink))}.sign-in__foot{font-family:var(--pp-font-body);font-size:var(--pp-size-xs);color:var(--pp-ink-faint);line-height:1.5;margin-top:var(--pp-space-2)}.sign-in__ghost{appearance:none;background:transparent;border:0;padding:0;color:var(--pp-brand);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}
