:root{color-scheme:dark;--bg: #14161f;--panel: #1f2230;--panel-border: #33384d;--text: #e8e9f0;--text-dim: #9aa0b4;--accent: #5fd6e0;--accent-strong: #38b6c2;--danger: #e0544f;--cell: #1b1e2a;--cell-related: #232838;--cell-same: #24434a;--cell-selected: #2d5f66;--grid-thin: #2c3144;--grid-thick: #6a7290;--given: #e8e9f0;--entered: #5fd6e0;--hinted: #e0b75f;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media(prefers-color-scheme:light){:root{color-scheme:light;--bg: #f3f4f8;--panel: #ffffff;--panel-border: #d4d7e2;--text: #1d2030;--text-dim: #5d6378;--accent: #1d8f9a;--accent-strong: #16747d;--danger: #c7362f;--cell: #ffffff;--cell-related: #eef0f6;--cell-same: #cfecef;--cell-selected: #9fdbe1;--grid-thin: #d4d7e2;--grid-thick: #3a3f55;--given: #1d2030;--entered: #16747d;--hinted: #a8741a}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit;-webkit-user-select:none;user-select:none;touch-action:manipulation}#app{min-height:100dvh;display:flex;justify-content:center}.screen{width:100%;max-width:560px;padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:16px}.screen-menu,.screen-difficulty,.screen-solved{justify-content:center;min-height:100dvh}.logo{margin:0;font-size:clamp(2.6rem,12vw,4rem);letter-spacing:.08em;color:var(--accent)}.tagline{margin:-8px 0 8px;color:var(--text-dim)}.menu-actions{display:flex;flex-direction:column;gap:12px;width:min(100%,320px)}.btn{padding:14px 18px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);font-size:1.05rem;cursor:pointer;transition:border-color .15s,background .15s}.btn:hover,.btn:focus-visible{border-color:var(--accent);outline:none}.btn-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#0d1014;font-weight:600}.btn-ghost{background:transparent}.btn-small{padding:8px 12px;font-size:.9rem}.btn.difficulty{display:flex;flex-direction:column;align-items:center;gap:2px}.btn.difficulty small{color:var(--text-dim);font-size:.8rem}.link-button{background:none;border:none;padding:0;color:var(--text-dim);text-decoration:underline;cursor:pointer;font-size:inherit}.how-to{width:min(100%,360px);color:var(--text-dim);font-size:.9rem}.how-to summary{cursor:pointer;text-align:center}kbd{border:1px solid var(--panel-border);border-radius:4px;padding:0 4px;font-size:.8em}.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:16px;font-size:.85rem}.legal-links a{color:var(--text-dim)}.consent{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:560px;margin:0 auto;padding:16px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:0 8px 32px #00000059;z-index:10}.consent-text{margin:0 0 12px;font-size:.85rem;line-height:1.4}.consent-text a{color:var(--accent)}.consent-actions{display:flex;gap:8px;justify-content:flex-end}.screen-game{padding-top:12px;gap:12px;--board-size: min(100vw - 32px, 100dvh - 260px, 528px)}.game-header{width:var(--board-size);min-width:260px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.95rem}.game-difficulty{font-weight:600;color:var(--accent)}.game-hints{color:var(--text-dim)}.board{width:var(--board-size);height:var(--board-size);min-width:260px;min-height:260px;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);border:2px solid var(--grid-thick);border-radius:6px;overflow:hidden;background:var(--grid-thin);gap:1px}.cell{position:relative;border:none;padding:0;background:var(--cell);color:var(--entered);font-size:calc(var(--board-size) / 15);font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer;min-width:0;min-height:0}.cell.box-right{box-shadow:1px 0 0 var(--grid-thick)}.cell.box-bottom{box-shadow:0 1px 0 var(--grid-thick)}.cell.box-right.box-bottom{box-shadow:1px 0 0 var(--grid-thick),0 1px 0 var(--grid-thick),1px 1px 0 var(--grid-thick)}.cell.related{background:var(--cell-related)}.cell.same{background:var(--cell-same)}.cell.selected{background:var(--cell-selected)}.cell.given{color:var(--given);font-weight:700}.cell.hinted{color:var(--hinted)}.cell.conflict{color:var(--danger)}.cell.conflict:not(.given){text-decoration:underline wavy var(--danger);text-underline-offset:3px}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notes{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:calc(var(--board-size) / 36);font-weight:500;color:var(--text-dim);line-height:1}.notes span{display:flex;align-items:center;justify-content:center}.notes .note-match{color:var(--accent);font-weight:700}.is-solved .board{border-color:var(--accent);animation:solved-pulse .7s ease-out}@keyframes solved-pulse{0%{transform:scale(1)}40%{transform:scale(1.02)}to{transform:scale(1)}}.tools{width:var(--board-size);min-width:260px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tool{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:none;border-radius:10px;background:transparent;color:var(--text-dim);font-size:.75rem;cursor:pointer}.tool:hover:not(:disabled),.tool.active{color:var(--accent)}.tool:disabled{opacity:.4;cursor:default}.tool-icon{font-size:1.4rem;line-height:1.2}.tool-state{font-size:.7rem}.numpad{width:var(--board-size);min-width:260px;display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.numpad-digit{aspect-ratio:3 / 4;border-radius:10px;border:1px solid var(--panel-border);background:var(--panel);color:var(--accent);font-size:clamp(1.2rem,6vw,1.8rem);font-weight:600;cursor:pointer}.numpad-digit:active{background:var(--cell-selected)}.numpad-digit.done{opacity:.3}.solved-title{margin:0;font-size:2.4rem;color:var(--accent)}.solved-stats{display:grid;grid-template-columns:auto auto;gap:8px 24px;margin:0 0 8px;font-size:1.1rem}.solved-stats dt{color:var(--text-dim)}.solved-stats dd{margin:0;text-align:right;font-weight:600}@media(min-width:700px)and (min-height:700px){.screen-game{padding-top:32px}}
