html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}:root{--styles-loaded:1;--bg:#faf9f7;--card:#fff;--border:#d4d0c8;--border-light:#e8e6e1;--box-border:#6b6255;--text:#1a1a1a;--text-muted:#6b6b6b;--faint:#ccc;--rule-text:#555;--given-bg:#f1efe8;--blue:#2563eb;--blue-bg:#2563eb14;--red:#dc2626;--thermo:#6e7080;--thermo-wrong:#dc2626;--thermo-draft:#2563eb;--red-bg:#fee2e2;--green:#15803d;--green-bg:#dcfce7;--wedge-green:#1f7a5c;--wedge-green-bg:#1f7a5c1f;--sun:#ce7a2e;--sun-bg:#ce7a2e1f;--moon:#303a56;--moon-bg:#303a561a;--sun-deep:#9b4c18;--sun-light:#eca552;--sun-hi:#f8d27a;--moon-deep:#1b2238;--moon-light:#5a76a8;--moon-hi:#a9c2e6;--note-even:#ad5c0a;--note-odd:#2b4c9b;--note-invalid:#c4232c;--cell-selected-bg:#2563eb29;--cell-conflict-bg:#dc262614;--cell-conflict-hatch:#dc262647;--cell-match-bg:#15803d2e;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#17181c;--card:#1e1f24;--border:#35373e;--border-light:#2a2b31;--box-border:#9598a8;--text:#f1f0ee;--text-muted:#8b8c92;--faint:#55565c;--rule-text:#b6b6ba;--given-bg:#25262c;--blue:#6ea0ff;--blue-bg:#6ea0ff1f;--red:#f2837a;--thermo:#cdcfdc;--thermo-wrong:#f2837a;--thermo-draft:#60a5fa;--red-bg:#f2837a24;--green:#4ade80;--green-bg:#4ade8024;--wedge-green:#5fc9a0;--wedge-green-bg:#5fc9a029;--sun:#e3a35a;--sun-bg:#e3a35a29;--moon:#8b98c4;--moon-bg:#8b98c429;--sun-deep:#b56a2c;--sun-light:#f2c27d;--sun-hi:#fde2a8;--moon-deep:#58659a;--moon-light:#b4c2e8;--moon-hi:#e0e8f8;--note-even:#e3a35a;--note-odd:#8b98c4;--note-invalid:#ff6b6b;--cell-selected-bg:#6ea0ff3d;--cell-conflict-bg:#f2837a1f;--cell-conflict-hatch:#f2837a52;--cell-match-bg:#4ade8033;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#17181c;--card:#1e1f24;--border:#35373e;--border-light:#2a2b31;--box-border:#9598a8;--text:#f1f0ee;--text-muted:#8b8c92;--faint:#55565c;--rule-text:#b6b6ba;--given-bg:#25262c;--blue:#6ea0ff;--blue-bg:#6ea0ff1f;--red:#f2837a;--thermo:#cdcfdc;--thermo-wrong:#f2837a;--thermo-draft:#60a5fa;--red-bg:#f2837a24;--green:#4ade80;--green-bg:#4ade8024;--sun:#e3a35a;--sun-bg:#e3a35a29;--moon:#8b98c4;--moon-bg:#8b98c429;--sun-deep:#b56a2c;--sun-light:#f2c27d;--sun-hi:#fde2a8;--moon-deep:#58659a;--moon-light:#b4c2e8;--moon-hi:#e0e8f8;--note-even:#e3a35a;--note-odd:#8b98c4;--note-invalid:#ff6b6b;--cell-selected-bg:#6ea0ff3d;--cell-conflict-bg:#f2837a1f;--cell-conflict-hatch:#f2837a52;--cell-match-bg:#4ade8033;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light][data-contrast=more]{--bg:#fff;--card:#fff;--border:#8c8577;--border-light:#ece9e2;--box-border:#2f2a22;--text:#111;--text-muted:#4a4a4a;--rule-text:#333;--given-bg:#ece8de;--sun:#a55a1c;--sun-deep:#7a3a10;--sun-light:#e0913f;--sun-hi:#f6c86a;--moon:#1f2945;--moon-deep:#0f1528;--moon-light:#4a66a0;--moon-hi:#9fb9e6;--note-even:#8f4300;--note-odd:#1f3f8f;--note-invalid:#a3141c}:root[data-theme=dark][data-contrast=more]{--bg:#0b0b0d;--card:#121317;--border:#8a8c94;--border-light:#24252b;--box-border:#d4d6de;--text:#fff;--text-muted:#d4d4d8;--rule-text:#e4e4e7;--given-bg:#24252b;--note-even:#f5b86a;--note-odd:#8b98c4;--note-invalid:#ff8a8a}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition:none!important;animation:none!important}body{margin:0}#root{background:var(--bg);box-sizing:border-box;flex-direction:column;min-height:100svh;display:flex}#game{box-sizing:border-box;font-family:var(--sans);flex-direction:column;flex-grow:1;align-items:center;padding:24px 16px 32px;display:flex}.game-header{text-align:center;margin-bottom:12px}.game-header h1{letter-spacing:-.4px;color:var(--text);margin:0;font-size:22px;font-weight:600}.puzzle-tag{color:var(--text-muted);font-weight:400}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tools-row{box-sizing:border-box;width:min(456px,100%);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.tools-row-left,.tools-row-right{align-items:center;gap:8px;display:flex}.tools-row-right{gap:10px}.icon-button{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}@media (hover:hover){.icon-button:hover{color:var(--blue)}}.icon-button-icon{width:100%;height:100%}.theme-toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;line-height:0}.theme-toggle-track{background:var(--border);box-sizing:border-box;border-radius:12px;align-items:center;width:44px;height:24px;padding:2px;transition:background-color .2s;display:flex}.theme-toggle-thumb{background:var(--card);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:transform .2s;display:flex;box-shadow:0 1px 2px #0003}.theme-toggle.dark .theme-toggle-thumb{transform:translate(20px)}.theme-toggle-icon{width:13px;height:13px}.theme-toggle.light .theme-toggle-icon{color:var(--sun)}.theme-toggle.dark .theme-toggle-icon{color:var(--moon)}.theme-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:12px}.board{--cell-size:clamp(34px, min(14vw, calc((100svh - 230px) / 7.86)), 76px);grid-template-columns:repeat(6, var(--cell-size));grid-template-rows:repeat(6, var(--cell-size));touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid;position:relative}.board.drawing{touch-action:none}.thermos{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.thermo{opacity:.38;fill:var(--thermo);stroke:var(--thermo);stroke-width:.22px;stroke-linecap:round;stroke-linejoin:round}.thermo polyline{fill:none}.thermo.wrong{--thermo:var(--thermo-wrong);opacity:.5}.thermo.draft{--thermo:var(--thermo-draft)}.cell{box-sizing:border-box;border:1.5px solid var(--border);background:var(--card);cursor:pointer;color:var(--text);border-radius:6px;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background-color .1s;display:flex;position:relative}.box-outline{--box-line:3px;z-index:1;box-sizing:border-box;border:var(--box-line) solid var(--box-border);pointer-events:none;border-radius:8px;position:absolute}.cell-value{font-size:calc(var(--cell-size) * .5);line-height:1}.cell.given{background:var(--given-bg)}.cell.given .cell-value{font-weight:700}.cell.forced .cell-value{color:var(--blue);font-weight:500}.cell.entry .cell-value{color:var(--blue);font-weight:600}.cell.target{background:var(--given-bg);cursor:default}.cell.target .cell-value{color:var(--text-muted);font-weight:600}.cell.peer{background:var(--border-light)}.cell.given.peer{background:color-mix(in srgb, var(--given-bg) 60%, var(--border-light))}.cell.selected{border-color:var(--blue);background:var(--cell-selected-bg);box-shadow:inset 0 0 0 1.5px var(--blue)}.cell.conflict{background:repeating-linear-gradient(135deg, var(--cell-conflict-hatch) 0 3px, var(--cell-conflict-bg) 3px 7px), var(--card);border-color:var(--red)}.cell.conflict .cell-value{color:var(--red)}.cell.conflict:after{content:"!";width:calc(var(--cell-size) * .24);height:calc(var(--cell-size) * .24);background:var(--red);color:var(--card);font-size:calc(var(--cell-size) * .18);font-weight:700;line-height:calc(var(--cell-size) * .24);text-align:center;border-radius:50%;position:absolute;top:2px;right:2px}.cell.hint-context,.cell.given.hint-context{background:color-mix(in srgb, var(--blue) 14%, var(--card))}.cell.ambiguous{background:var(--sun-bg);border-color:var(--sun)}.cell.ambiguous:before{content:"";border:1.5px dashed var(--sun);pointer-events:none;border-radius:4px;position:absolute;inset:3px}.cell-notes{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);width:84%;height:84%;display:grid;position:relative}.note-slot{font-size:calc(var(--cell-size) * .24);color:var(--text-muted);justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex}.cell.pencil .note-slot{color:var(--note-odd)}.cell-ghost{font-size:calc(var(--cell-size) * .66);color:var(--text);opacity:.11;pointer-events:none;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.edge-target{z-index:5;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.edge-h{width:calc(var(--cell-size) * .34);height:calc(var(--cell-size) * .5)}.edge-v{width:calc(var(--cell-size) * .5);height:calc(var(--cell-size) * .34)}.edge-static{cursor:default;pointer-events:none;width:0;height:0}.kropki-dot{--dot-fill:#111;--dot-ring:var(--card);width:calc(var(--cell-size) * .24);height:calc(var(--cell-size) * .24);background:var(--dot-fill);box-shadow:0 0 0 2px var(--dot-ring);border-radius:50%;flex-shrink:0}:root[data-theme=dark] .kropki-dot{--dot-fill:#000;--dot-ring:#c9cad2}.kropki-dot.wrong,:root[data-theme=dark] .kropki-dot.wrong{--dot-fill:var(--red)}.kropki-dot.inline{--cell-size:60px;vertical-align:-1px;margin:0 3px 0 2px;display:inline-block}@media (hover:hover){.edge-target:not(.edge-static):hover:empty:after{content:"";width:calc(var(--cell-size) * .2);height:calc(var(--cell-size) * .2);background:var(--text);opacity:.2;border-radius:50%}}.edge-target:focus-visible{outline:2px solid var(--blue);border-radius:4px}.status-row{width:min(456px,100%);min-height:2.9em;color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;font-size:13px;line-height:1.4;display:flex}.status-count{flex-shrink:0}.status-count strong{color:var(--text);font-size:15px}.status-message{text-align:right}.status-best{font:inherit;color:var(--blue);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.status-message.status-hint{text-align:left;flex:1}.hint-text{color:var(--text)}.hint-instruction{text-underline-offset:2px;text-decoration:underline}.status-good{color:var(--green);font-weight:600}.status-bad{color:var(--red)}.number-pad{--pad-size:clamp(32px, min(13vw, calc((100svh - 230px) / 7.86 * .93)), 72px);grid-template-columns:repeat(var(--pad-columns), var(--pad-size));grid-auto-rows:var(--pad-size);justify-content:center;gap:5px;margin-top:4px;display:grid}.number-pad.with-mini{--pad-size:clamp(32px, min(11.4vw, calc((100svh - 230px) / 7.86 * .93)), 72px)}.pad-left{grid-row:span 2;height:auto;min-height:0}.pad-button.pad-wide{grid-column:span 2;width:auto}.pad-left-mini{grid-column:span 2}.pad-button{--cell-size:var(--pad-size);width:var(--pad-size);height:var(--pad-size);box-sizing:border-box;border:1.5px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:6px;font-family:inherit;transition:border-color .15s,opacity .15s}.pad-button.pad-left{height:auto}.pad-digit{font-size:calc(var(--pad-size) * .46);font-weight:600}@media (hover:hover){.pad-button:hover:not(:disabled){border-color:var(--blue)}}.pad-button:disabled{opacity:.4;cursor:default}.pad-action{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;font-size:13px;display:flex}.pad-label{white-space:nowrap;max-width:calc(100% - 4px);display:block;overflow:hidden}.pad-action-icon{width:calc(var(--pad-size) * .36);height:calc(var(--pad-size) * .36);color:var(--text)}.pad-action:disabled .pad-action-icon{color:var(--faint)}.pad-action.active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.pad-action.active .pad-action-icon{color:var(--blue)}.mini-grid{box-sizing:border-box;border:2px solid var(--box-border);background:var(--given-bg);border-radius:6px;grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(6,minmax(0,1fr));width:100%;height:100%;display:grid;overflow:hidden}.mini-cell{min-height:0;font-size:calc(var(--pad-size) * .27);color:var(--text);border-right:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex}.mini-cell:nth-child(6n){border-right:none}.mini-cell:nth-child(n+31){border-bottom:none}.mini-cell.box-right{border-right:2px solid var(--box-border)}.mini-cell.box-bottom{border-bottom:2px solid var(--box-border)}.mini-cell.selected{background:var(--cell-selected-bg);color:var(--blue);box-shadow:inset 0 0 0 1.5px var(--blue)}.build-footer{color:var(--text-muted);text-align:center;margin-top:20px;font-size:13px}.build-footer a{color:var(--blue);text-decoration:none}@media (hover:hover){.build-footer a:hover{text-decoration:underline}}@media (height<=700px){#game{padding-top:8px;padding-bottom:16px}.game-header{margin-bottom:4px}.game-header h1{font-size:18px}.tools-row{margin-bottom:6px}.board{--cell-size:clamp(34px, min(14vw, calc((100svh - 181px) / 7.86)), 76px)}.status-row{margin-top:4px}.number-pad{--pad-size:clamp(32px, min(13vw, calc((100svh - 181px) / 7.86 * .93)), 72px)}.number-pad.with-mini{--pad-size:clamp(32px, min(11.4vw, calc((100svh - 181px) / 7.86 * .93)), 72px)}}.modal-overlay{z-index:998;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--card);text-align:center;box-sizing:border-box;border-radius:16px;width:100%;max-width:340px;max-height:calc(100svh - 32px);padding:28px 24px 24px;overflow-y:auto;box-shadow:0 8px 32px #00000047}.modal-card:focus{outline:none}.modal-title{color:var(--text);margin:0 0 6px;font-size:22px;font-weight:600}.modal-subtitle{color:var(--text-muted);margin:0 0 20px;font-size:13px}.modal-stats{justify-content:center;align-items:stretch;margin-bottom:22px;display:flex}.modal-stat{text-align:center;flex:1;max-width:88px}.modal-stat+.modal-stat{border-left:1px solid var(--border-light)}.modal-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.modal-stat-label{color:var(--text-muted);margin-top:2px;font-size:13px}.modal-share{box-sizing:border-box;background:var(--blue);color:#fff;cursor:pointer;text-align:center;border:none;border-radius:10px;width:100%;margin-bottom:10px;padding:12px;font-family:inherit;font-size:15px;font-weight:500;text-decoration:none;display:block}.modal-share.secondary{color:var(--blue);border:1.5px solid var(--blue);background:0 0}.best-answer{flex-direction:column;align-items:center;margin-bottom:14px;display:flex}.best-answer .board{--cell-size:34px}.best-answer .cell{cursor:default}.best-answer-caption{color:var(--text-muted);margin:0 0 8px;font-size:13px}.modal-close{width:100%;color:var(--text-muted);border:1px solid var(--border-light);cursor:pointer;background:0 0;border-radius:10px;padding:10px;font-family:inherit;font-size:14px}.how-to-play-card{text-align:left}.how-to-play-card .modal-title{text-align:center}.how-to-play-body{color:var(--text);margin-bottom:18px;font-size:14px;line-height:1.5}.how-to-play-body p{margin:0 0 10px}.settings-card{text-align:left}.settings-card .modal-title{text-align:center;margin-bottom:18px}.settings-row{flex-direction:column;gap:10px;margin-bottom:22px;display:flex}.settings-label{color:var(--text);flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.settings-description{color:var(--text-muted);font-size:13px;font-weight:400;line-height:1.5}.settings-row.settings-row-switch{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:16px}.switch{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;padding:0;line-height:0}.switch-track{background:var(--border);box-sizing:border-box;border-radius:11px;align-items:center;width:40px;height:22px;padding:2px;transition:background-color .2s;display:flex}.switch-thumb{background:var(--card);border-radius:50%;width:18px;height:18px;transition:transform .2s;box-shadow:0 1px 2px #0003}.switch.on .switch-track{background:var(--blue)}.switch.on .switch-thumb{transform:translate(18px)}.switch:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:11px}.option-list{flex-direction:column;gap:8px;display:flex}.option{border:1.5px solid var(--border);background:var(--card);color:var(--text);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;font-family:inherit;display:flex}.option.active{border-color:var(--blue);background:var(--blue-bg);box-shadow:inset 0 0 0 1px var(--blue)}.option-label{font-size:14px;font-weight:600}.option-description{color:var(--text-muted);font-size:13px;line-height:1.4}.load-status{text-align:center;max-width:320px;color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;margin:48px auto;padding:0 16px;font-size:14px;display:flex}.load-status p{margin:0}.load-status-title{color:var(--text);font-size:17px;font-weight:600}.load-retry{background:var(--blue);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:10px;margin-top:8px;padding:10px 20px}
