.theme-toggle{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;background:var(--btn-bg);width:2rem;height:2rem;color:var(--text-muted);border:1px solid var(--border-color);border-radius:.5rem;justify-content:center;align-items:center;font-size:1rem;transition:background-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.theme-toggle:hover{background:var(--btn-bg-hover);color:var(--accent)}.directory{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;padding:1.5rem;display:flex}.directory__header{align-items:center;gap:.5rem;display:flex}.directory__title{color:var(--primary);font-size:2.5rem;font-weight:800}.directory__subtitle{color:var(--text-primary);font-size:1.5rem;font-weight:700}.directory__games{flex-direction:column;gap:.5rem;width:100%;max-width:18rem;display:flex}.directory__game-card{background:var(--bg-surface);border:1px solid var(--border-color);text-align:center;cursor:pointer;border-radius:.75rem;flex-direction:column;align-items:center;gap:.25rem;padding:1rem 1.5rem;transition:background-color .15s,box-shadow .15s;display:flex}.directory__game-card:hover{background:var(--bg-surface-alt);box-shadow:0 4px 12px var(--soft-shadow)}.directory__game-name{color:var(--primary);font-size:1.25rem;font-weight:700}.directory__game-desc{color:var(--text-muted);font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8125rem}.directory__back-link{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;color:var(--text-muted);background:0 0;border-radius:.5rem;justify-content:center;align-self:flex-start;align-items:center;padding:.25rem .5rem;font-size:.8125rem;transition:background-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.directory__back-link:hover{color:var(--accent)}.directory__grid{grid-template-columns:auto 1fr;gap:.25rem;width:100%;max-width:20rem;display:grid}.directory__size-label{color:var(--text-primary);justify-content:center;align-items:center;padding:.25rem .5rem;font-size:.875rem;font-weight:600;display:flex}.directory__btn{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;background:var(--btn-bg);color:var(--btn-text);border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem;font-size:.8125rem;transition:background-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.directory__btn:hover{background:var(--btn-bg-hover)}.directory__combo-btn{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;background:var(--bg-surface);color:var(--primary);border:1px solid var(--border-color);border-radius:.5rem;justify-content:center;align-items:center;padding:.25rem .5rem;font-size:.875rem;font-weight:500;transition:background-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.directory__combo-btn:hover{background:var(--bg-surface-alt);border-color:var(--accent)}.directory__combo-btn{color:var(--accent);border-color:var(--accent)}.directory__combo-btn:hover{background:#1591f414}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}a{color:inherit;text-decoration:none}:root{--accent:#1591f4;--accent-rgb:21,145,244;--accent-hover:#289af4;--accent-success:#50c878;--primary:#0473cc;--selected:#289af4;--bg-page:#fff;--bg-surface:#fff;--bg-surface-alt:#ebf6ff;--bg-input:#fff;--text-primary:#1e1e1e;--text-secondary:#333;--text-muted:#616161;--border-color:#b8dfff;--border-strong:#b9dcf7;--grid-border:#0473cc;--btn-bg:#ebf6ff;--btn-bg-hover:#b9dcf7;--btn-text:#1e1e1e;--btn-gradient:linear-gradient(90deg,#69bdff 0%,#2196f3 100%);--btn-gradient-active:linear-gradient(90deg,#61b9ff 0%,#1992f2 100%);--cell-bg:#fff;--cell-bg-hover:#ebf6ff;--cell-selected:#289af4;--cell-highlighted:#ebf6ff;--cell-error:#fff0f0;--cell-completed:#e8f8ee;--cell-given:#f5faff;--cell-digit:#1e1e1e;--cell-pencil:#8fa6c1;--cell-pencil-active:#6b8bad;--popup-bg:#fff;--popup-border:#b8dfff;--popup-shadow:0 4px 20px #2c83c840;--clue-bg:#0473cc;--clue-text:#fff;--clue-line:#b9dcf7;--error-text:#ff5050;--error-bg:#ff50501f;--success-text:#50c878;--success-bg:#50c8781f;--cage-border:#0473cc;--cage-internal:#b8dfff;--ineq-color:#92a3ba;--edge-clue-neutral:#92a3ba;--soft-shadow:#2c83c840;--killer-cage-fill:#1591f40d;--killer-cage-border:#0473cc;--killer-cage-sum:#1e1e1e;--sudoku-grid-inner-color:#b8dfff;--sudoku-grid-block-color:#0473cc;--checker-a:#2196f312;--checker-b:#ff980012}[data-theme=dark]{--accent:#1591f4;--accent-rgb:21,145,244;--accent-hover:#289af4;--accent-success:#50c878;--primary:#5ab0f2;--selected:#289af4;--bg-page:#0d1b2a;--bg-surface:#132238;--bg-surface-alt:#1a2d47;--bg-input:#132238;--text-primary:#e8edf3;--text-secondary:#a8b8cc;--text-muted:#7889a0;--border-color:#2a3f5a;--border-strong:#345071;--grid-border:#345071;--btn-bg:#1a2d47;--btn-bg-hover:#233b56;--btn-text:#e8edf3;--btn-gradient:linear-gradient(90deg,#69bdff 0%,#2196f3 100%);--btn-gradient-active:linear-gradient(90deg,#61b9ff 0%,#1992f2 100%);--cell-bg:#162a42;--cell-bg-hover:#1d3350;--cell-selected:#289af4;--cell-highlighted:#1a2d47;--cell-error:#ff505033;--cell-completed:#50c87826;--cell-given:#1a2d47;--cell-digit:#e8edf3;--cell-pencil:#7a96b5;--cell-pencil-active:#9ab3cc;--popup-bg:#132238;--popup-border:#2a3f5a;--popup-shadow:0 4px 20px #00000080;--clue-bg:#0d1b2a;--clue-text:#b9dcf7;--clue-line:#2a3f5a;--error-text:#ff6b6b;--error-bg:#ff505026;--success-text:#50c878;--success-bg:#50c8781f;--cage-border:#8899b0;--cage-internal:#2a3f5a;--ineq-color:#5a7090;--edge-clue-neutral:#5a7090;--soft-shadow:#0006;--killer-cage-fill:#1591f414;--killer-cage-border:#8899b0;--killer-cage-sum:#e8edf3;--sudoku-grid-inner-color:#2a3f5a;--sudoku-grid-block-color:#345071;--checker-a:#3ca0ff1a;--checker-b:#ffaa321a}html{font-size:16px}@media (min-width:768px){html{font-size:17px}}@media (min-width:1200px){html{font-size:18px}}body{background-color:var(--bg-page);color:var(--text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}#root{flex-direction:column;align-items:center;min-height:100vh;display:flex}