:root{--page:#faf7f2;--ink:#2e3a4b;--ink-2:#626d7c;--grid:#2e3a4b24;--fill-incomplete:#e8e5df;--fill-invalid:#f7d9d6;--over:#c8433a;--met:#1f8a4a;--focus:#2e6fd6;--tint:#2e3a4b1f;--hatch:#2e3a4b1a;--scrim:#2e3a4b59;--region-0:#f2b544;--region-1:#7fb7e0;--region-2:#8fcb8f;--region-3:#e39ac4;--region-4:#f09a6b;--region-5:#a9a0e8;--region-6:#7ed0c7;--region-7:#d9c06b;--region-8:#b6d67a;--region-9:#e8a0a0;--region-mix:100%;--font:ui-rounded, "Nunito", "SF Pro Rounded", system-ui, -apple-system, sans-serif;--cell-min:40px;--cell-max:56px;--gutter:28px;--page-pad:32px;--grid-border:2.5px;--outline-width:3.5px;--n:5;--cell:clamp(var(--cell-min), calc((100vw - var(--page-pad) - var(--gutter) - 2 * var(--grid-border)) / var(--n)), var(--cell-max));--dur-fill:.15s;--dur-pulse:.2s;--pulse-stagger:40ms;--dur-line-pulse:.7s}.board{--n:5;--cell:clamp(var(--cell-min), calc((100vw - var(--page-pad) - var(--gutter) - 2 * var(--grid-border)) / var(--n)), var(--cell-max))}@media (max-width:340px){:root{--page-pad:16px;--gutter:22px;--cell-min:38px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#1b2130;--ink:#e6eaf0;--ink-2:#9aa5b4;--grid:#e6eaf024;--fill-incomplete:#2b3345;--fill-invalid:#4a2b30;--over:#ef7a70;--met:#6fc98f;--focus:#8ab4f8;--tint:#e6eaf024;--hatch:#e6eaf01a;--scrim:#0000008c;--region-mix:78%}}:root[data-theme=dark]{--page:#1b2130;--ink:#e6eaf0;--ink-2:#9aa5b4;--grid:#e6eaf024;--fill-incomplete:#2b3345;--fill-invalid:#4a2b30;--over:#ef7a70;--met:#6fc98f;--focus:#8ab4f8;--tint:#e6eaf024;--hatch:#e6eaf01a;--scrim:#0000008c;--region-mix:78%}@media (prefers-reduced-motion:reduce){:root{--dur-fill:0s;--dur-pulse:0s;--pulse-stagger:0s;--dur-line-pulse:0s}}html{background:var(--page);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;overscroll-behavior:none}body{min-height:100vh;box-sizing:border-box;background:var(--page);min-height:100dvh;color:var(--ink);margin:0;padding:16px;line-height:1.4}@media (max-width:340px){body{padding:8px}}a{color:inherit}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toolbar{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.toolbar button,.btn{-webkit-appearance:none;appearance:none;font:inherit;border:2px solid var(--ink);min-height:44px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:0 0;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:700}.toolbar button:disabled,.btn:disabled{opacity:.4;cursor:default}.toolbar button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.howto,.lesson-text,textarea,.share-fallback,.prose{-webkit-user-select:text;user-select:text}body{flex-direction:column;max-width:560px;margin:0 auto;display:flex}.page{flex:1}.site-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.site-name{letter-spacing:.02em;align-items:center;gap:8px;min-height:44px;font-size:20px;font-weight:800;text-decoration:none;display:inline-flex}.site-logo{flex:none;width:28px;height:28px}.site-nav{flex-wrap:wrap;gap:4px 14px;margin-left:auto;font-size:15px;display:flex}.site-nav a[aria-current=page]{font-weight:700;text-decoration:none}.menu-toggle{-webkit-appearance:none;appearance:none;width:44px;height:44px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:8px;margin-left:auto;font-size:26px;line-height:1}@media (max-width:699.98px){.site-nav{display:none}}@media (min-width:700px){.menu-toggle{display:none}}.menu-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.site-name:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.site-nav a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}dialog.menu-sheet{width:100%;max-width:none;max-height:calc(100vh - 48px);box-sizing:border-box;border:1px solid var(--grid);background:var(--page);max-height:calc(100dvh - 48px);color:var(--ink);border-bottom:0;border-radius:16px 16px 0 0;margin:0;padding:0;position:fixed;top:auto;bottom:0;left:0;right:0;overflow:auto}dialog.menu-sheet[open]{animation:.16s ease-out menu-in}dialog.menu-sheet::backdrop{background:var(--scrim,#2e3a4b59)}@keyframes menu-in{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){dialog.menu-sheet[open]{animation:none}}html.menu-open{overflow:hidden}.menu-panel{padding:0 0 env(safe-area-inset-bottom,0px)}.menu-handle{background:var(--ink-2);opacity:.5;border-radius:2px;width:36px;height:4px;margin:10px auto 8px}.menu-list{margin:0;padding:0;list-style:none}.menu-list li+li{border-top:1px solid var(--grid)}.menu-list a{min-height:52px;color:var(--ink);align-items:center;gap:12px;padding:0 16px;font-size:17px;text-decoration:none;display:flex}.menu-list a:hover,.menu-list a:active{background:var(--tint)}.menu-list a:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.menu-list a[aria-current=page]{background:var(--tint);font-weight:700}.menu-list a[aria-current=page]:after{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;margin-left:auto}.menu-foot{border-top:1px solid var(--grid);color:var(--ink-2);gap:16px;padding:12px 16px 14px;font-size:13px;display:flex}.menu-foot .app-link{color:var(--ink-2)}.site-footer{color:var(--ink-2);gap:16px;margin-top:32px;font-size:13px;display:flex}.app-link{color:var(--ink-2)}h1{margin:0 0 12px;font-size:22px}h2{margin:20px 0 8px;font-size:18px}h3{margin:16px 0 6px;font-size:15px}p{max-width:36em;margin:0 0 12px}.muted{color:var(--ink-2);font-size:14px}.status-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;min-height:1.4em;margin:0 0 10px;font-size:15px;display:flex}.status-line .date{color:var(--ink-2)}.status-line .number{font-weight:700}.status-line .timer{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.note{color:var(--ink-2);margin:0 0 10px;font-size:14px}.board-wrap{max-width:100%;overflow-x:auto}.daily .board-wrap{min-height:calc(var(--gutter) + var(--n) * var(--cell) + 2 * var(--grid-border))}.error{padding:16px 0}.win{border:2px solid var(--ink);animation:win-in var(--dur-pulse) ease-out both;border-radius:12px;margin-top:20px;padding:14px 16px}.win p{margin:0 0 8px}.win .win-head{justify-content:space-between;align-items:center;gap:8px 12px;margin:0 0 6px;display:flex}.win .win-head .headline{margin:0}@media (max-width:339.98px){.win .win-head{flex-wrap:wrap}}.win .headline{font-size:18px;font-weight:800}.win .actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.win .actions:empty{display:none}.win .actions:not(:has(>:not(.share-status:empty))){display:none}.win .share-status{color:var(--met);font-weight:700}.win textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--grid);background:var(--page);color:var(--ink);resize:none;border-radius:8px;margin-top:10px;padding:8px;font-size:14px;line-height:1.3;display:block}@keyframes win-in{0%{opacity:0;transform:translateY(4px)}}.tutorial-prompt{color:var(--ink-2);align-items:center;gap:8px;margin:12px 0 0;font-size:14px;display:flex}.tutorial-prompt .dismiss{-webkit-appearance:none;appearance:none;width:32px;height:32px;color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:20px;line-height:1}.tutorial-prompt .dismiss:focus-visible{outline:2px solid var(--focus);outline-offset:2px}dialog.sheet{width:min(100%,520px);max-height:calc(100vh - 32px);box-sizing:border-box;border:2px solid var(--ink);background:var(--page);max-height:calc(100dvh - 32px);color:var(--ink);border-bottom:0;border-radius:16px 16px 0 0;margin:auto auto 0;padding:10px 16px 16px;overflow:auto}@media (min-width:700px){dialog.sheet{width:min(100% - 32px,480px);max-height:calc(100vh - 64px);border-bottom:2px solid var(--ink);border-radius:16px;max-height:calc(100dvh - 64px);margin:auto;padding:12px 20px 20px}}dialog.sheet::backdrop{background:#14182073}dialog.sheet .sheet-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}dialog.sheet h2{margin:0}dialog.sheet .close{-webkit-appearance:none;appearance:none;width:44px;height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:26px;line-height:1}dialog.sheet .close:focus-visible{outline:2px solid var(--focus);outline-offset:2px}dialog.sheet .howto p{margin:0 0 8px}dialog.sheet .howto .gesture{font-size:15px}dialog.sheet .howto h3{margin:8px 0 2px}dialog.sheet .howto-example{--example-cell:36px}@media (max-width:380px){dialog.sheet .howto-example{--example-cell:34px}}dialog.sheet .howto-example .example-slot{margin:4px 0}dialog.sheet .howto-example .muted{margin-bottom:0}dialog.sheet .sheet-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.link-btn{min-height:44px;color:var(--ink);text-underline-offset:3px;border-radius:999px;align-items:center;padding:0 12px;font-size:15px;font-weight:700;text-decoration:underline;display:inline-flex}.link-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.progress{gap:8px;margin:0 0 10px;display:flex}.progress .dot{border:2px solid var(--ink-2);box-sizing:border-box;width:10px;height:10px;transition:background-color var(--dur-fill), border-color var(--dur-fill), transform var(--dur-fill);background:0 0;border-radius:50%}.progress .dot[data-state=done]{border-color:var(--met);background:var(--met)}.progress .dot[data-state=current]{border-color:var(--ink);transform:scale(1.3)}.lesson-text{min-height:3.6em;margin:0 0 12px;font-size:16px}.lesson-nav{align-items:center;gap:12px;margin-top:20px;display:flex}.lesson-nav .next{margin-left:auto}.lesson-status{color:var(--met);font-weight:700}.howto .rules{font-weight:600}.howto-example{--example-cell:40px}.howto-example .example-slot{min-height:calc(var(--gutter) + 4 * var(--example-cell) + 2 * var(--grid-border));margin:8px 0}.howto-example .board{--cell:var(--example-cell)}.legend{margin:0 0 8px;padding:0;list-style:none}.legend li{align-items:center;gap:12px;margin:0 0 8px;font-size:15px;display:flex}.board.swatch{--n:1;--cell:28px;flex:none;grid-template-rows:auto;grid-template-columns:auto}.board.swatch .grid{grid-area:auto}.board.swatch .cell{text-align:center;cursor:default;font-size:15px;line-height:28px;display:block}.board.swatch .lock{width:10px;height:10px;top:2px;right:2px}.board.swatch .count{border:1px solid var(--grid);box-sizing:border-box;border-radius:6px;width:32px;height:28px}.calendar{max-width:420px}.cal-head{justify-content:space-between;align-items:center;gap:8px;margin:0 0 4px;display:flex}.cal-title{margin:0;font-size:18px}.cal-nav{-webkit-appearance:none;appearance:none;width:44px;height:44px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:8px;font-size:26px;line-height:1}.cal-nav:hover{background:var(--tint)}.cal-nav:focus-visible{background:var(--tint)}.cal-nav:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cal-nav:disabled{opacity:.3;cursor:default;background:0 0}.cal-grid{table-layout:fixed;border-collapse:separate;border-spacing:4px;width:calc(100% + 8px);margin:0 -4px}.cal-grid th{color:var(--ink-2);padding:0 0 2px;font-size:12px;font-weight:600}.cal-grid td{padding:0;overflow:visible}.day{aspect-ratio:1;min-height:40px;color:var(--ink);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:15px;font-weight:600;text-decoration:none;display:flex;overflow:visible}a.day:hover{background:var(--tint)}a.day:focus-visible{background:var(--tint)}a.day:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.day.muted{color:var(--ink-2);opacity:.45;font-weight:400}.day[data-state=solved]{background:color-mix(in srgb, var(--met) 14%, transparent)}a.day[data-state=solved]:hover{background:color-mix(in srgb, var(--met) 26%, transparent)}a.day[data-state=solved]:focus-visible{background:color-mix(in srgb, var(--met) 26%, transparent)}.day .num,.cal-legend .num{box-sizing:border-box;text-align:center;font-variant-numeric:tabular-nums;border-radius:50%;flex:none;width:30px;height:30px;line-height:30px;display:inline-block}.num.ring{border:2px solid var(--ink);line-height:26px}.mark{flex:none;width:12px;height:10px;display:block}.mark.check{color:var(--met)}.mark.dot{background:radial-gradient(circle, var(--ink-2) 3px, transparent 3.5px);width:10px}.cal-legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;font-size:13px;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.cal-legend .num{width:16px;height:16px;line-height:16px}.cal-legend .num.ring{line-height:12px}.cal-legend .mark{display:inline-block}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:0 0 20px;display:grid}.stat{border:2px solid var(--ink);border-radius:12px;padding:10px 12px}.stat .value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1.1;display:block}.stat .label{color:var(--ink-2);font-size:13px}.histogram{margin:0 0 16px;padding:0;list-style:none}.histogram li{font-variant-numeric:tabular-nums;grid-template-columns:4.5em 1fr 2em;align-items:center;gap:8px;margin:4px 0;font-size:14px;display:grid}.histogram .bar{background:var(--region-1);background:color-mix(in srgb, var(--region-1) var(--region-mix), var(--page));min-width:2px;height:18px;transition:width var(--dur-fill);border-radius:4px}.histogram .n{text-align:right;color:var(--ink-2)}#app.fill{flex-direction:column;flex:1;display:flex}.splash{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:8px 0 24px;display:flex}.site-header .sign-in{align-items:center;min-height:44px;margin-left:auto;font-size:15px;font-weight:600;display:inline-flex}.site-header .sign-in~.menu-toggle,.site-header .sign-in~.site-nav{margin-left:0}.site-header .sign-in:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.today-card{box-sizing:border-box;border:2.5px solid var(--ink);background:var(--page);text-align:center;border-radius:16px;width:100%;max-width:480px;padding:20px 20px 22px}.today-card .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0 0 4px;font-size:13px;font-weight:700}.today-card .card-title{margin:0 0 2px;font-size:26px;font-weight:800;line-height:1.2}.today-card .card-date,.today-card .card-note{color:var(--ink-2);margin:0;font-size:15px}.today-card .card-note{margin-top:8px;font-size:14px}.today-card .note{margin:8px 0 0}.today-card .solved-line{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:12px 0 0;font-size:15px}.today-card .btn.primary{box-sizing:border-box;background:var(--ink);width:100%;max-width:280px;min-height:52px;color:var(--page);justify-content:center;align-items:center;margin-top:16px;font-size:18px;text-decoration:none;display:inline-flex}.today-card .solved-line+.btn.primary{margin-top:10px}.streak-pill{background:var(--tint);color:var(--ink);text-align:center;border-radius:999px;margin:0;padding:8px 16px;font-size:15px;font-weight:600}.recent{grid-template-columns:repeat(6,1fr);gap:6px;width:100%;max-width:480px;margin-top:8px;display:grid}@media (max-width:359.98px){.recent{grid-template-columns:repeat(3,1fr)}}.tile{color:var(--ink);border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:8px 2px 10px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tile .tile-label{white-space:nowrap}.tile[data-state=unavailable]{color:var(--ink-2);opacity:.45;font-weight:400}a.tile:hover{background:var(--tint)}a.tile:focus-visible{background:var(--tint)}a.tile:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mini{flex:none;width:30px;height:30px}.mini .sq{fill:#0000;stroke:var(--ink-2);stroke-width:1.5px}.mini .sq.filled{fill:var(--ink-2);stroke:var(--ink-2)}.tile[data-state=solved] .mini .sq{fill:var(--met);stroke:var(--met)}.mini .check{stroke:var(--page);stroke-width:3.5px}.mini.clock{stroke:var(--ink);stroke-width:2px}.account .lead{margin:0 0 6px;font-size:17px;font-weight:700}.account .headline{margin:0 0 12px;font-weight:700}.signin-form{flex-direction:column;gap:8px;max-width:360px;margin-top:8px;display:flex}.signin-form label{font-size:14px;font-weight:700}.signin-form input{font:inherit;border:2px solid var(--ink);background:var(--page);min-height:44px;color:var(--ink);-webkit-user-select:text;user-select:text;border-radius:10px;padding:8px 12px;font-size:16px}.signin-form input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.signin-form .btn{align-self:flex-start;margin-top:4px}.form-error{color:var(--over);min-height:1.4em;margin:0;font-size:14px;font-weight:600}.form-error:empty{display:none}.account .signed-in-as{font-size:17px}.account .sync-status{min-height:1.4em}.account .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.btn.danger{border-color:var(--over);color:var(--over)}.account .delete-note{margin-top:8px}.account .dev-link{color:var(--ink-2);font-size:14px}.site-header .sign-in.account{text-overflow:ellipsis;white-space:nowrap;max-width:9em;overflow:hidden}.account [hidden]{display:none!important}body.wide{max-width:960px}.admin .lead{margin:0 0 4px;font-size:17px}.admin-actions{flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 16px;display:flex}.admin-actions .generated-at{font-size:14px}.admin-tiles{grid-template-columns:repeat(2,1fr)}@media (min-width:700px){.admin-tiles{grid-template-columns:repeat(4,1fr)}}.table-scroll{-webkit-overflow-scrolling:touch;margin:0 -16px 20px;padding:0 16px;overflow-x:auto}.admin-table{border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-top:1px solid var(--grid);vertical-align:middle;padding:8px 10px 8px 0}.admin-table th{color:var(--ink-2);border-top:0;font-size:12px;font-weight:600}.admin-table th.num,.admin-table td.num{text-align:right}.admin-table td:last-child,.admin-table th:last-child{padding-right:0}.admin-table.daily .players{width:45%;min-width:120px}.admin-table.daily .meter{align-items:center;gap:8px;width:100%;display:flex}.admin-table.daily .bar{background:var(--region-1);background:color-mix(in srgb, var(--region-1) var(--region-mix), var(--page));border-radius:4px;flex:0 auto;min-width:2px;height:14px;display:block}.admin-table.daily .n{flex:none}.admin-table.puzzles .date a{font-weight:600}.admin .show-all{margin-top:8px}.board{grid-template-columns:var(--gutter) auto;grid-template-rows:var(--gutter) auto;width:max-content;font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid}.board-wrap>.board{margin-inline-start:auto;margin-inline-end:auto}.board .corner{grid-area:1/1}.board .col-counts{grid-area:1/2;grid-template-columns:repeat(var(--n), var(--cell));align-items:end;padding-bottom:2px;display:grid}.board .row-counts{grid-area:2/1;grid-template-rows:repeat(var(--n), var(--cell));justify-items:end;padding-right:6px;display:grid}.board .count{font-size:clamp(14px, calc(var(--cell) * .3), 17px);color:var(--ink-2);opacity:.75;font-variant-numeric:tabular-nums;transition:color var(--dur-fill), opacity var(--dur-fill), transform var(--dur-fill);justify-content:center;align-items:center;font-weight:500;display:flex}.board .count[data-status=over],.board .count[data-status=met]{opacity:1;font-weight:800;transform:scale(1.15)}.board .count[data-status=over]{color:var(--over)}.board .count[data-status=met]{color:var(--met)}.board .grid{grid-area:2/2;grid-template-columns:repeat(var(--n), var(--cell));grid-template-rows:repeat(var(--n), var(--cell));border:var(--grid-border) solid var(--ink);background:var(--page);touch-action:none;display:grid;position:relative}.board .cell{-webkit-appearance:none;appearance:none;width:var(--cell);height:var(--cell);box-sizing:border-box;border:0;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);background:var(--page);color:var(--ink);font:inherit;font-weight:700;font-size:clamp(17px, calc(var(--cell) * .36), 20px);cursor:pointer;touch-action:none;transition:background-color var(--dur-fill);transform-origin:var(--ox,50%) var(--oy,50%);margin:0;padding:0;line-height:1;position:relative}.board .cell[data-last-col]{border-right:0}.board .cell[data-last-row]{border-bottom:0}.board .cell:focus{outline:none}.board .cell:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;z-index:1}.board .cell[data-state=incomplete]{background:var(--fill-incomplete)}.board .cell[data-state=invalid]{background:var(--fill-invalid)}.board .cell[data-state=valid]{background:var(--fill-incomplete)}.board .cell[data-state=valid][data-fill]{background:var(--region-color);background:color-mix(in srgb, var(--region-color) var(--region-mix), var(--page))}.board .clue{z-index:1;pointer-events:none;position:relative}.board .cell[data-locked]:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg, transparent 0 6px, var(--hatch) 6px 7px);background:repeating-linear-gradient(45deg, transparent 0 6px, color-mix(in srgb, var(--ink) 10%, transparent) 6px 7px);position:absolute;top:0;bottom:0;left:0;right:0}.board .lock{z-index:1;pointer-events:none;opacity:.7;width:12px;height:12px;position:absolute;top:3px;right:3px;overflow:visible}.board .lock .body{fill:var(--ink);stroke:none}.board .lock .shackle{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-linecap:round}.board .outlines{pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.board .outline{fill:none;stroke:var(--ink);stroke-width:var(--outline-width);stroke-linecap:round;stroke-linejoin:round;transform-box:view-box;transform-origin:var(--ox,50%) var(--oy,50%)}.board .outline[data-status=incomplete],.board .outline[data-status=invalid]{stroke-dasharray:7 6}.board[data-solved] .grid{pointer-events:none}.board[data-solved] .cell[data-state=valid],.board[data-solved] .outline{animation:pulse var(--dur-pulse) ease-in-out 1 both;animation-delay:calc(var(--i,0) * var(--pulse-stagger))}.board[data-solved=quiet] .cell,.board[data-solved=quiet] .outline{animation:none}@keyframes pulse{50%{transform:scale(1.07)}}.board .count.pulse-line{animation:line-pulse-label var(--dur-line-pulse) ease-in-out 2}.board .cell.pulse-line{animation:line-pulse-cell var(--dur-line-pulse) ease-in-out 2}@keyframes line-pulse-label{50%{opacity:.35;transform:scale(1.12)}}@keyframes line-pulse-cell{50%{box-shadow:inset 0 0 0 100vmax var(--tint)}}.board .ghost{pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.board .ghost circle{fill:var(--ink);opacity:.35}@media (prefers-reduced-motion:reduce){.board .pulse-line{animation:none}.board .ghost{display:none}}.move-bar{flex-wrap:wrap;align-items:center;gap:4px;width:196px;max-width:100%;margin:0 0 8px;display:flex}.move-bar .sq{background:var(--ink-2);border-radius:4px;width:16px;height:16px}.move-bar .sq[data-kind=essential]{background:var(--met)}.move-bar .sq[data-kind=spare]{background:var(--region-0)}.move-bar .sq[data-kind=over]{background:var(--over)}.move-bar .sq[data-kind=hint]{background:var(--region-1)}.move-bar .more{color:var(--ink-2);margin-left:2px;font-size:13px;font-weight:700}
