:root{color-scheme:light;--canvas:#f5f6f8;--surface:#fff;--ink:#273246;--secondary:#717c8e;--blue:#2776df;--blue-strong:#1965cd;--blue-soft:#e8f0fc;--selection:#d6e7ff;--possible:#e1f2e7;--peer:#f2f6fc;--matching:#e1edff;--line:#e3e7ed;--box-line:#adb9ca;--red:#c24752;--red-soft:#ffedf0;--green:#42936e;--shadow:0 2px 5px #23395507,0 8px 24px #23395505}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--canvas:#181c24;--surface:#222833;--ink:#e2e7ef;--secondary:#98a5b8;--blue:#72a9ff;--blue-strong:#9ac2ff;--blue-soft:#263952;--selection:#2e527e;--possible:#294738;--peer:#283241;--matching:#304665;--line:#333d4c;--box-line:#637289;--red:#ffa0a9;--red-soft:#4a303d;--green:#7dc8a4;--shadow:0 3px 14px #00000012}}:root[data-theme=dark]{color-scheme:dark;--canvas:#181c24;--surface:#222833;--ink:#e2e7ef;--secondary:#98a5b8;--blue:#72a9ff;--blue-strong:#9ac2ff;--blue-soft:#263952;--selection:#2e527e;--possible:#294738;--peer:#283241;--matching:#304665;--line:#333d4c;--box-line:#637289;--red:#ffa0a9;--red-soft:#4a303d;--green:#7dc8a4;--shadow:0 3px 14px #00000012}*{box-sizing:border-box}html{min-height:100%;background:var(--canvas);-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;background:none;padding:0}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}button:not(:disabled):active{transform:scale(.96)}button{transition:transform .1s ease,background-color .12s ease,opacity .12s ease}svg{flex-shrink:0;display:inline-block;vertical-align:middle}h1,h2,h3,p{margin:0}.app{min-height:100svh;padding:env(safe-area-inset-top) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.app-bar{max-width:1040px;height:94px;margin:0 auto;justify-content:space-between}.app-bar,.brand{display:flex;align-items:center}.brand{gap:11px;font-size:18px;font-weight:650;letter-spacing:-.5px}.app-mark{width:62px;height:62px;border-radius:15px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:16px;background:linear-gradient(155deg,#65acff,#2878e8 65%,#1d63d1);box-shadow:inset 0 1px 1px #ffffff80,0 2px 4px #2064bc24}.app-mark i{display:block;border-radius:2px;background:white}.app-mark i:nth-child(2){opacity:.42}.app-mark i:nth-child(3){opacity:.7}.app-mark.small{width:29px;height:29px;padding:7px;gap:2px;border-radius:7px}.app-mark.small i{border-radius:1px}.app-actions{gap:18px}.app-actions,.install-button{display:flex;align-items:center}.install-button{gap:7px;min-height:44px;font-size:13px;font-weight:500;color:var(--secondary)}.icon-button{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--secondary)}.settings-button{background:var(--surface);box-shadow:0 1px 3px #23395508;border:1px solid var(--line)}.game{max-width:444px;margin:28px auto 0}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}h1{font-size:32px;font-weight:720;letter-spacing:-1.2px;line-height:1.15}.game-heading p{color:var(--secondary);font-size:14px;margin-top:7px}.new-button{display:flex;align-items:center;gap:5px;color:var(--blue);font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--line);border-radius:9px;height:37px;padding:0 12px;box-shadow:0 1px 2px #23395504}.new-button:disabled{opacity:.5}.game-meta{justify-content:space-between;padding:0 2px 11px;min-height:35px}.difficulty-button,.game-meta{display:flex;align-items:center}.difficulty-button{gap:8px;color:var(--secondary);font-size:13px;font-weight:550;min-height:30px}.capitalize{text-transform:capitalize}.level-mark{display:flex;align-items:flex-end;gap:2px;height:13px}.level-mark i{width:3px;height:5px;background:var(--blue);border-radius:1px}.level-mark i:nth-child(2){height:9px;background:var(--line)}.level-mark i:nth-child(3){height:13px;background:var(--line)}.level-mark i.active{background:var(--blue)}.time-controls{display:flex;align-items:center;gap:9px;color:var(--secondary)}.clock{font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.3px}.pause-button{display:grid;place-items:center;height:30px;width:30px;border-radius:50%;background:var(--line)}.pause-button:disabled{opacity:.4}.board-wrap{position:relative;border-radius:11px;overflow:hidden;background:var(--surface);border:1px solid var(--box-line);box-shadow:var(--shadow);isolation:isolate}.board{width:100%;aspect-ratio:1;display:grid;grid-template-rows:repeat(9,1fr);user-select:none;-webkit-user-select:none}.board-row{display:grid;grid-template-columns:repeat(9,1fr);min-height:0}.board-row:not(:last-child){border-bottom:1px solid var(--line)}.board-row:nth-child(3),.board-row:nth-child(6){border-bottom:1.5px solid var(--box-line)}.cell-slot{position:relative;min-width:0;min-height:0}.cell-slot:not(:last-child){border-right:1px solid var(--line)}.cell-slot:nth-child(3),.cell-slot:nth-child(6){border-right:1.5px solid var(--box-line)}.cell{display:grid;place-items:center;position:relative;width:100%;height:100%;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);transition:background-color 80ms ease}.cell-number{font-size:clamp(23px,6.4vw,29px);line-height:1;font-weight:460}.cell.entered{color:var(--blue-strong)}.cell.entered .cell-number{font-weight:430}.cell.related{background:var(--peer)}.cell.matching{background:var(--matching)}.cell.possible{background:var(--possible)}.cell.selected{background:var(--selection);z-index:1;box-shadow:inset 0 0 0 2px var(--blue)}.cell:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--blue);z-index:2}.cell:not(:disabled):active{transform:none}.cell.conflict{color:var(--red);background:var(--red-soft)}.cell.conflict.selected{box-shadow:inset 0 0 0 2px var(--red)}.conflict-dot{width:3px;height:3px;border-radius:50%;background:var(--red);position:absolute;bottom:3px}.notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:84%;height:84%;color:var(--secondary);font-size:clamp(8px,2.4vw,11px);line-height:1}.notes span{display:grid;place-items:center}.board-cover{position:absolute;inset:0;background:var(--surface);z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;gap:12px;animation:cover-in .16s ease-out}.board-cover h2{font-size:20px;font-weight:650;letter-spacing:-.4px}.board-cover p{color:var(--secondary);font-size:14px}.board-cover .primary-button{margin-top:10px}.pause-emblem{color:var(--blue);background:var(--blue-soft);width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin-bottom:5px}.spinner{height:27px;width:27px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--blue);animation:spin .7s linear infinite;margin-bottom:8px}.progress-line{height:3px;margin:10px 3px 0;border-radius:3px;overflow:hidden}.progress-line span{display:block;height:100%;background:var(--blue);transform-origin:left;transition:transform .18s ease;opacity:.65}.tools{gap:33px;padding:14px 0 19px}.tool-button,.tools{display:flex;justify-content:center}.tool-button{min-width:68px;height:52px;flex-direction:column;align-items:center;gap:6px;color:var(--secondary);border-radius:9px;font-size:11px;font-weight:500}.tool-button:disabled{opacity:.36}.tool-button.tool-active{color:var(--blue-strong);background:var(--blue-soft)}.notes-icon{position:relative}.notes-badge{position:absolute;top:-4px;left:17px;padding:1px 4px;border-radius:4px;font-size:8px;font-weight:700;background:var(--line);color:var(--secondary);border:2px solid var(--canvas)}.tool-active .notes-badge{color:white;background:#2776df}.number-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px;-webkit-user-select:none;user-select:none}.number-key{background:var(--surface);border-radius:8px;height:65px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:var(--blue-strong);box-shadow:0 1px 2px #2339550e,0 0 0 1px #23395504}.number-key>span{font-size:27px;font-weight:430;line-height:1}.number-key small{color:var(--secondary);font-size:9px;min-height:10px;display:flex;align-items:center}.number-key:disabled{opacity:.42}.number-key.digit-finished{opacity:.45}.pencil-mode .number-key{background:var(--blue-soft)}.pencil-mode .number-key>span{font-size:22px}.input-hint{text-align:center;margin-top:16px;min-height:16px}.game-footer,.input-hint{color:var(--secondary);font-size:11px}.game-footer{justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:27px;padding-top:10px}.game-footer,.game-footer>span{display:flex;align-items:center}.game-footer>span{gap:6px}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--green)}.game-footer button{display:flex;gap:5px;align-items:center;min-height:34px}.desktop-caption{text-align:center;font-size:11px;color:var(--secondary);margin:42px 0 5px;opacity:.8}.notice{display:flex;align-items:center;gap:8px;padding:12px;border-radius:9px;background:var(--blue-soft);font-size:12px;margin-top:15px}.notice button{padding:8px;margin-left:auto}.storage-warning{font-size:12px;line-height:1.5;color:var(--red);margin-top:12px}.completion{display:flex;align-items:center;gap:13px;padding:28px 0;animation:cover-in .22s ease}.completion h2{font-size:21px;letter-spacing:-.4px}.completion p{color:var(--secondary);font-size:12px;margin-top:4px}.completion .primary-button{margin-left:auto}.success-mark{width:45px;height:45px;display:grid;place-items:center;color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-radius:50%}.is-complete{border-color:var(--green)}.primary-button{border-radius:10px;min-height:44px;display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:0 18px;color:white;background:linear-gradient(#3584ed,#2471db);box-shadow:inset 0 1px 0 #ffffff20,0 2px 3px #2463aa1a;font-weight:600;font-size:14px}.full-width{width:100%}.text-button{min-height:42px;font-size:13px;font-weight:500;color:var(--secondary);margin-top:7px}.sheet{width:min(440px,calc(100vw - 32px));max-height:min(90svh,760px);padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 25px 90px #15223930;overscroll-behavior:contain}.sheet[open]{animation:sheet-in .2s cubic-bezier(.2,.8,.2,1)}.sheet::backdrop{background:#18233742;animation:cover-in .15s ease}.sheet-content{padding:32px;position:relative}.sheet-close{position:absolute;top:13px;right:13px;width:30px;height:30px;background:var(--canvas)}.sheet h2{font-size:24px;letter-spacing:-.7px;font-weight:680;margin:5px 22px 10px 0}.sheet-subtitle{font-size:14px;line-height:1.6;color:var(--secondary);margin-bottom:24px}.sheet-symbol{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);margin-bottom:20px}.sheet .app-mark{margin-bottom:22px}.difficulty-options{display:flex;flex-direction:column;gap:9px}.difficulty-options button{display:flex;flex-direction:column;gap:5px;position:relative;text-align:left;padding:16px;border:1px solid var(--line);border-radius:11px}.difficulty-options button>span:first-child{font-weight:600}.difficulty-options small{font-size:12px;color:var(--secondary)}.difficulty-options .chosen{border-color:var(--blue);background:var(--blue-soft)}.radio-mark{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--box-line);position:absolute;right:17px;top:50%;transform:translateY(-50%)}.chosen .radio-mark{background:#2776df;color:white;border-color:#2776df}.replacement-note{font-size:12px;color:var(--secondary);text-align:center;margin:21px 0 16px}.difficulty-options+.primary-button{margin-top:22px}.help-row h3,.install-instructions h3,.keyboard-help h3,.setting-section h3{font-size:14px;font-weight:600}.setting-section{margin-bottom:20px}.segmented{display:flex;background:var(--canvas);border-radius:9px;padding:3px;gap:3px;margin-top:10px}.segmented button{flex:1 1;min-height:36px;font-size:13px;border-radius:7px;color:var(--secondary)}.segmented .active{background:var(--surface);color:var(--ink);box-shadow:0 1px 5px #23395514}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.setting-row strong{font-size:14px;font-weight:550}.setting-row p{font-size:12px;color:var(--secondary);margin-top:5px}.switch{width:43px;height:26px;border-radius:20px;background:var(--box-line);padding:3px;flex-shrink:0;position:relative}.switch:before{content:"";position:absolute;inset:-9px 0}.switch span{display:block;width:20px;height:20px;border-radius:50%;background:white;box-shadow:0 1px 2px #0002;transition:transform .15s ease}.switch[aria-checked=true]{background:#2776df}.switch[aria-checked=true] span{transform:translateX(17px)}.privacy-note{font-size:12px;line-height:1.7;color:var(--secondary);margin:18px 0 22px}.help-row{display:flex;gap:15px;margin:23px 0}.help-row>svg{color:var(--blue);margin-top:2px}.help-row p,.install-instructions p,.keyboard-help p{font-size:13px;line-height:1.65;color:var(--secondary);margin-top:5px}.keyboard-help{padding:18px;background:var(--canvas);border-radius:10px;margin-bottom:24px}.keyboard-help h3{margin-bottom:12px}.keyboard-help p{font-size:11px}kbd{font-family:inherit;font-size:10px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:2px 4px;margin-right:4px}.install-instructions h3:not(:first-child){margin-top:20px}@media (hover:hover){.new-button:hover,.number-key:not(:disabled):hover{background:var(--blue-soft)}.icon-button:hover,.tool-button:not(:disabled):hover{background:var(--line)}.game-footer button:hover,.install-button:hover{color:var(--blue)}}@media (min-width:601px) and (max-height:950px){.app-bar{height:68px}.game{margin-top:12px;max-width:420px}.game-heading{margin-bottom:20px}.tools{padding-top:10px;padding-bottom:14px}.game-footer{margin-top:20px}.desktop-caption{margin-top:22px}}@media (max-width:600px){.app{padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom))}.app-bar{height:66px}.brand{font-size:16px}.app-actions{gap:12px}.settings-button{width:34px;height:34px}.install-button{font-size:12px}.game{margin-top:19px}.game-heading{margin-bottom:20px}h1{font-size:30px}.game-heading p{font-size:13px;margin-top:6px}.new-button{font-size:12px;padding:0 10px;min-height:38px}.game-meta{padding-bottom:9px}.tools{padding:12px 0 15px;gap:26px}.number-pad{gap:5px}.number-key{height:59px;border-radius:7px}.number-key>span{font-size:25px}.input-hint{margin-top:13px;font-size:10px}.game-footer{margin-top:20px;font-size:10px}.desktop-caption{display:none}.sheet{width:100%;max-width:100%;max-height:92svh;margin:auto 0 0;border-radius:22px 22px 0 0;border-bottom:0}.sheet-content{padding:31px 25px max(20px,env(safe-area-inset-bottom))}.sheet-handle{display:block;position:absolute;width:32px;height:4px;border-radius:4px;background:var(--line);top:10px;left:calc(50% - 16px)}.sheet-close{top:15px}.sheet h2{font-size:23px}.completion{gap:10px}.completion h2{font-size:19px}.completion p{font-size:11px}.completion .primary-button{font-size:12px;padding:0 12px}}@media (max-width:600px) and (max-height:760px){.app-bar{height:53px}.game{margin-top:8px;max-width:354px}.game-heading{margin-bottom:10px}.game-heading h1{font-size:25px}.game-heading p{display:none}.game-meta{padding-bottom:6px}.tools{padding:6px 0 10px}.number-key{height:52px}.input-hint{margin-top:10px}.game-footer{margin-top:13px}.progress-line{margin-top:7px}}@media (max-width:360px){.app{padding-left:12px;padding-right:12px}.install-button>span{display:none}.number-pad{gap:4px}.cell-number,.number-key>span{font-size:23px}.sheet-content{padding-left:20px;padding-right:20px}}@media (max-width:600px) and (max-height:640px){.tools{padding-top:4px;padding-bottom:6px}.progress-line{margin-top:5px}}@media (display-mode:standalone){.app-bar{height:60px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes cover-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}