@font-face{font-family:Nemonemo Sans;font-style:normal;font-weight:45 920;font-display:swap;src:url(./NemonemoSans-Variable.subset-youeL4tE.woff2)format("woff2")}:root{--color-paper:#f4f7fb;--color-paper-raised:#fcfdff;--color-paper-axis:#e9eef3;--color-paper-axis-clue:#eaf1f8;--color-paper-clue-contradiction:#ffe4e2;--color-ink:#18202a;--color-muted:#575e68;--color-clue-done:#49515b;--color-grid-faint:#dfe3e8;--color-grid:#abb2bb;--color-grid-strong:#454e59;--color-focus:#c40e22;--color-focus-on-ink:#f87e77;--color-accent:#c40e22;--color-accent-ink:snow;--color-pixel-fallback:var(--color-ink);--font-display:"Nemonemo Sans", "Pretendard", "Noto Sans KR", system-ui, sans-serif;--font-body:"Nemonemo Sans", "Pretendard", "Noto Sans KR", system-ui, sans-serif;--font-wordmark:var(--font-body);--font-ui:var(--font-body);--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-ml:1.25rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:9rem;--space-desktop-gutter:2rem;--space-cell-mark-inset:clamp(var(--space-3xs), 12%, var(--space-xs));--text-note:.875rem;--text-tool:.9375rem;--text-base:1rem;--text-clue:1.125rem;--text-title:1.25rem;--text-dialog:1.375rem;--text-wordmark:1.875rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-mark-pop:steps(1, jump-end);--dur-micro:.12s;--dur-mark-pop:.168s;--dur-short:.22s;--dur-dialog:.3s;--rule-hairline:1px;--rule-board:2px;--rule-focus:2px;--radius-control:.1875rem;--radius-cell-mark:.0625rem;--radius-dialog:0;--z-base:1;--z-raised:10;--z-sticky:200;--z-modal:400;--z-tooltip:600}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(97.2042% -.492424 -2.20424);--color-paper-raised:lab(99.4103% -.412047 -1.83783);--color-paper-axis:lab(93.8446% -.984877 -3.21442);--color-paper-axis-clue:lab(94.6593% -1.43623 -4.22469);--color-paper-clue-contradiction:lab(92.9422% 10.8185 5.5831);--color-ink:lab(11.7655% -1.2217 -7.83173);--color-muted:lab(39.6355% -1.30761 -6.52551);--color-clue-done:lab(33.8276% -1.3974 -7.22588);--color-grid-faint:lab(90.124% -.650436 -2.93552);--color-grid:lab(72.1273% -1.17052 -5.47739);--color-grid-strong:lab(32.6602% -1.49702 -7.93153);--color-focus:lab(42.2156% 65.0989 42.7908);--color-focus-on-ink:lab(67.2188% 46.928 26.6535);--color-accent:lab(42.2156% 65.0989 42.7908);--color-accent-ink:lab(98.785% 1.83249 .984478)}}:root{color:var(--color-ink);font-family:var(--font-ui);font-synthesis:none;background:var(--color-paper);text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{min-width:320px;overflow-x:clip}html{background:var(--color-paper);min-height:100%}body{min-height:100vh;background-color:var(--color-paper);background-image:linear-gradient(var(--color-grid-faint) var(--rule-hairline), transparent var(--rule-hairline)), linear-gradient(90deg, var(--color-grid-faint) var(--rule-hairline), transparent var(--rule-hairline));background-repeat:repeat;background-size:var(--space-lg) var(--space-lg);min-height:100dvh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{appearance:none;border-radius:var(--radius-control);color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:var(--space-2xs)}.app-shell{width:min(100%,75.25rem);min-height:100vh;min-height:100dvh;padding:0 max(var(--space-md), env(safe-area-inset-right)) max(var(--space-lg), env(safe-area-inset-bottom)) max(var(--space-md), env(safe-area-inset-left));border-right:var(--rule-hairline) solid var(--color-grid-faint);border-left:var(--rule-hairline) solid var(--color-grid-faint);background:color-mix(in oklch, var(--color-paper), transparent 8%);margin:0 auto}.site-header{border-bottom:var(--rule-hairline) solid var(--color-ink);grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:3.25rem;display:grid}.wordmark{min-height:2.75rem;color:var(--color-ink);font-family:var(--font-wordmark);font-size:clamp(1.25rem, 4.8vw, var(--text-wordmark));letter-spacing:-.025em;white-space:nowrap;align-items:center;font-weight:820;line-height:1.08;text-decoration:none;display:inline-flex}.header-actions{display:contents}.header-puzzle-controls{min-width:0;padding:var(--space-2xs) 0 var(--space-xs);border-top:var(--rule-hairline) solid var(--color-grid);align-items:center;gap:var(--space-2xs);grid-area:2/1/auto/-1;display:flex}.header-actions>.text-action{grid-area:1/2}.text-action{min-width:2.75rem;min-height:2.75rem;font-size:var(--text-tool);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);white-space:nowrap;color:var(--color-ink);background:0 0;border:0;justify-content:center;align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.game-layout{padding-top:var(--space-sm)}.game-status{width:min(100%,35rem);min-height:2rem;margin:0 auto var(--space-sm);justify-content:flex-end;align-items:center;display:flex}.hint-balance{color:var(--color-muted);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;font-weight:550}.hint-balance strong{color:var(--color-ink);font-weight:750}.loading-hint-balance{padding-top:var(--space-xs);border-top:var(--rule-hairline) solid var(--color-grid);font-size:var(--text-note)}.puzzle-size-control{white-space:nowrap;flex:.82 5.5rem;align-items:center;min-width:0;display:inline-flex;position:relative}.select-control-label{color:var(--color-muted);font-size:var(--text-note);letter-spacing:.01em;white-space:nowrap;font-weight:650}.header-puzzle-controls .puzzle-size-control{gap:var(--space-2xs);flex:.9 1 0}.header-puzzle-controls .stage-select-control{gap:var(--space-2xs);flex:1.2 1 0}.header-puzzle-controls .puzzle-size-select,.header-puzzle-controls .stage-select{flex:auto;width:auto}.puzzle-size-select{width:100%;min-width:0;min-height:2.75rem;padding:0 var(--space-xs);border:0;border-bottom:var(--rule-hairline) solid var(--color-grid-strong);outline:var(--rule-focus) solid transparent;outline-offset:var(--rule-hairline);color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-base);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);white-space:nowrap;background-color:#0000;border-radius:0;font-weight:650;line-height:1}.stage-select-control{align-items:center;gap:var(--space-xs);white-space:nowrap;flex:1.18 7rem;min-width:0;min-height:2.75rem;display:inline-flex}.stage-select{width:100%;min-width:0;min-height:2.75rem;padding:0 var(--space-xs);border:0;border-bottom:var(--rule-hairline) solid var(--color-grid-strong);color:var(--color-ink);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:0;font-weight:680}.stage-select:focus-visible,.puzzle-size-select:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:var(--rule-hairline)}.stage-select:active,.puzzle-size-select:active{border-bottom-color:var(--color-ink);box-shadow:inset 0 calc(var(--rule-hairline) * -1) 0 var(--color-ink)}.stage-select:disabled,.puzzle-size-select:disabled{border-bottom-color:var(--color-grid);color:var(--color-muted);cursor:not-allowed;opacity:.55}.loading-stage{width:min(100%,35rem);padding:var(--space-3xl) 0;border-bottom:var(--rule-hairline) solid var(--color-grid-strong);margin:0 auto}.loading-stage>*{margin:0 0 var(--space-xs)}.loading-stage>p{color:var(--color-muted)}.loading-stage h1{overflow-wrap:anywhere;min-width:0}.board-stage{min-width:0}.puzzle-grid-viewport{--minimum-board-size:0rem;width:100%;max-width:100%;margin:0 auto;overflow:visible;container-type:inline-size}.puzzle-grid-viewport[data-puzzle-size="20"]{--minimum-board-size:30rem}.puzzle-grid-viewport.is-scrollable{overscroll-behavior:contain;scrollbar-color:var(--color-grid-strong) transparent;scrollbar-width:thin;max-height:max(15rem,100dvh - 17rem);overflow:auto}.puzzle-grid-viewport.is-scrollable:focus-visible{outline:var(--rule-focus) solid var(--color-focus);outline-offset:var(--space-2xs)}.puzzle-grid-shell{--fitted-board-size:15rem;--board-size:max(var(--fitted-board-size), var(--minimum-board-size));--row-clue-width:2.5rem;--column-clue-height:4.75rem;--clue-gap:var(--space-xs);--row-clue-padding-end:calc(var(--space-xs) + var(--clue-gap));width:calc(var(--row-clue-width) + var(--clue-gap) + var(--board-size));grid-template-columns:calc(var(--row-clue-width) + var(--clue-gap)) var(--board-size);grid-template-rows:var(--column-clue-height) var(--board-size);margin:0 auto;display:grid}.column-clues,.row-clues{color:var(--color-ink);font-size:var(--text-clue);font-variant-numeric:tabular-nums;font-weight:650;line-height:1}.column-clue,.row-clue{position:relative}.column-clues{grid-template-columns:repeat(var(--grid-width), 1fr);display:grid}.column-clue{min-width:0;min-height:0;padding-bottom:var(--space-xs);justify-content:flex-end;align-items:center;gap:var(--space-3xs);flex-direction:column;display:flex}.puzzle-grid-viewport.is-scrollable .clue-corner,.puzzle-grid-viewport.is-scrollable .column-clues,.puzzle-grid-viewport.is-scrollable .row-clues{background:var(--color-paper)}.puzzle-grid-viewport.is-scrollable .clue-corner{z-index:calc(var(--z-raised) + 2);position:sticky;top:0;left:0}.puzzle-grid-viewport.is-scrollable .column-clues{z-index:calc(var(--z-raised) + 1);position:sticky;top:0}.puzzle-grid-viewport.is-scrollable .row-clues{z-index:calc(var(--z-raised) + 1);position:sticky;left:0}.column-clue:before{width:0;min-height:var(--space-2xs);margin-bottom:var(--space-3xs);border-left:var(--rule-hairline) dotted var(--color-grid);content:"";flex:auto;align-self:center}.row-clues{grid-template-rows:repeat(var(--grid-height), 1fr);display:grid}.row-clue{min-width:0;min-height:0;padding-right:var(--row-clue-padding-end);white-space:nowrap;justify-content:flex-end;align-items:center;display:flex}.row-clue:before{width:auto;height:0;margin-right:var(--space-xs);border-top:var(--rule-hairline) dotted var(--color-grid);content:"";flex:auto}.clue-values{min-width:0;margin:calc(var(--space-3xs) * -1);padding:var(--space-3xs);background:0 0;line-height:1;display:flex;position:relative}.column-clue .clue-values{align-items:center;gap:var(--space-3xs);flex-direction:column}.row-clue .clue-values{align-items:center}.clue-boundary{z-index:var(--z-raised);background:var(--color-ink);content:"";opacity:0;pointer-events:none;display:block;position:absolute}.column-clue .clue-boundary{right:0;bottom:calc(var(--rule-board) * -1);height:var(--rule-board);left:0}.row-clue .clue-boundary{top:0;right:calc(var(--rule-board) * -1);width:var(--rule-board);bottom:0}.column-clue.is-current,.row-clue.is-current{font-weight:750}.column-clue.is-current>.clue-values,.row-clue.is-current>.clue-values{background:var(--color-paper-axis-clue)}.column-clue.is-current>.clue-boundary,.row-clue.is-current>.clue-boundary{opacity:1}.column-clue.is-current:before{border-left-color:var(--color-grid-strong);border-left-style:solid}.row-clue.is-current:before{border-top-color:var(--color-grid-strong);border-top-style:solid}.column-clue.is-done,.row-clue.is-done{color:var(--color-clue-done);font-weight:500;text-decoration:none}.column-clue.is-current.is-done,.row-clue.is-current.is-done{color:var(--color-ink);font-weight:750}.column-clue.is-done:after,.row-clue.is-done:after{width:var(--space-xs);border-top:var(--rule-hairline) solid var(--color-clue-done);content:"";opacity:.62;position:absolute}.column-clue.is-done:after{right:50%;bottom:var(--space-3xs);transform:translate(50%)}.row-clue.is-done:after{right:var(--row-clue-padding-end);bottom:var(--space-3xs)}.puzzle-grid-shell:not(.is-complete) .column-clue.is-contradictory>.clue-values,.puzzle-grid-shell:not(.is-complete) .row-clue.is-contradictory>.clue-values{color:var(--color-ink);background:var(--color-paper-clue-contradiction)}.puzzle-grid-shell:not(.is-complete) .column-clue.is-contradictory>.clue-values:after,.puzzle-grid-shell:not(.is-complete) .row-clue.is-contradictory>.clue-values:after{right:var(--space-3xs);bottom:0;left:var(--space-3xs);height:var(--rule-hairline);background:var(--color-ink);content:"";pointer-events:none;position:absolute}.puzzle-grid-shell.is-complete .column-clue,.puzzle-grid-shell.is-complete .row-clue{color:var(--color-clue-done);font-weight:500;text-decoration:none}.puzzle-grid-shell.is-complete .clue-values{background:0 0}.puzzle-grid-shell.is-complete .clue-boundary{opacity:0}.puzzle-grid-shell.is-complete .column-clue.is-current:before{border-left-color:var(--color-grid);border-left-style:dotted}.puzzle-grid-shell.is-complete .row-clue.is-current:before{border-top-color:var(--color-grid);border-top-style:dotted}.game-board{width:var(--board-size);height:var(--board-size);background:var(--color-paper-raised);grid-template-columns:repeat(var(--grid-width), 1fr);grid-template-rows:repeat(var(--grid-height), 1fr);isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;border:0;outline:0;display:grid;position:relative;overflow:hidden}.game-board:after{z-index:var(--z-base);border:var(--rule-board) solid var(--color-grid-strong);content:"";pointer-events:none;position:absolute;inset:0}.board-row{display:contents}.board-cell{--cell-focus:var(--color-focus);--cell-mark-color:var(--color-ink);--cell-surface:var(--color-paper-raised);border:0;border-right:var(--rule-hairline) solid var(--color-grid);border-bottom:var(--rule-hairline) solid var(--color-grid);background:var(--cell-surface);cursor:crosshair;border-radius:0;outline:0;min-width:0;min-height:0;margin:0;padding:0;position:relative}.board-cell[data-column-boundary=strong]{border-right:var(--rule-board) solid var(--color-grid-strong)}.board-cell[data-row-boundary=strong]{border-bottom:var(--rule-board) solid var(--color-grid-strong)}.puzzle-grid-shell:not(.is-complete) .board-cell.is-axis{--cell-surface:var(--color-paper-axis)}.puzzle-grid-shell.is-complete .board-cell{--cell-surface:var(--color-paper-raised)}.board-cell.mark-filled{background-color:var(--cell-surface)}.board-cell.mark-filled:before{inset:var(--space-cell-mark-inset);animation:mark-pop var(--dur-mark-pop) var(--ease-mark-pop) both;border-radius:var(--radius-cell-mark);background-color:var(--cell-mark-color);box-shadow:none;content:"";pointer-events:none;border:0;position:absolute}@media (hover:hover) and (pointer:fine){.puzzle-size-select:not(:disabled):hover{background:var(--color-paper-axis)}.board-cell:not([aria-disabled=true]):not(.is-preview):hover{box-shadow:inset 0 0 0 var(--rule-hairline) var(--color-grid-strong)}}.board-cell.mark-crossed:before,.board-cell.mark-crossed:after{--mark-rotate:45deg;width:62%;height:2px;animation:mark-pop var(--dur-mark-pop) var(--ease-mark-pop) both;background:var(--color-ink);content:"";transform-origin:50%;position:absolute;top:48%;left:19%}.board-cell.mark-crossed:after{--mark-rotate:-45deg}.board-cell.is-preview{box-shadow:inset 0 0 0 3px color-mix(in oklch, var(--cell-focus), transparent 25%)}.board-cell.is-cursor:focus-visible{z-index:var(--z-base);box-shadow:inset 0 0 0 2px var(--cell-focus), inset 0 0 0 4px var(--color-paper-raised);outline:0}.board-cell.is-revealed{--cell-mark-color:var(--pixel-color,var(--color-pixel-fallback))}.puzzle-grid-shell.has-started-reveal .board-cell.is-revealed{background-color:var(--pixel-color,var(--color-pixel-fallback))}.puzzle-grid-shell.has-started-reveal .board-cell.mark-crossed:before,.puzzle-grid-shell.has-started-reveal .board-cell.mark-crossed:after{visibility:hidden;animation:none}.puzzle-grid-shell.has-started-reveal .board-cell.mark-filled.is-revealed:before{display:none}.puzzle-grid-shell.has-started-reveal .board-cell.is-cursor:focus-visible{outline:var(--rule-focus) solid var(--cell-focus);outline-offset:calc(var(--rule-focus) * -1);box-shadow:none}.puzzle-grid-shell.is-picture-complete .game-board{background:var(--color-paper-raised)}.puzzle-grid-shell.is-picture-complete .board-cell{background:0 0;border-bottom-width:0;border-right-width:0}.puzzle-grid-shell.is-picture-complete .board-cell.is-cursor:focus-visible{outline:0}.puzzle-grid-shell.is-picture-complete .game-board:after{visibility:hidden}.board-cell[aria-disabled=true]{cursor:default;opacity:1}.play-note{width:min(100%,35rem);min-height:1.4em;margin:var(--space-md) auto var(--space-sm);color:var(--color-muted);font-size:var(--text-base);font-variant-numeric:tabular-nums;pointer-events:none;text-align:center;font-weight:500;line-height:1.4}.play-note.is-complete{color:var(--color-ink);font-weight:650}.play-note.has-feedback:not(.is-complete){color:var(--color-ink)}.tool-dock{width:min(100%,35rem);min-height:5.5rem;padding:var(--space-2xs) var(--space-xs);border-top:var(--rule-hairline) solid var(--color-grid-strong);border-bottom:var(--rule-hairline) solid var(--color-grid-strong);background:var(--color-paper-raised);grid-template-rows:1.25rem minmax(3.75rem,auto);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 auto;display:grid}.cycle-legend{min-width:0;min-height:0;padding:0 var(--space-xs);justify-content:center;align-items:center;gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-tool);white-space:nowrap;flex-direction:row;grid-column:1/-1;font-weight:650;line-height:1.2;display:flex}.cycle-guidance{align-items:center;gap:var(--space-2xs);flex-direction:row;display:inline-flex}.cycle-guidance__drag:before{margin-right:var(--space-2xs);content:"·"}.cycle-marks{align-items:center;gap:var(--space-2xs);color:var(--color-muted);font-size:.72rem;display:flex}.cycle-mark{border:var(--rule-hairline) solid var(--color-ink);width:1.05rem;height:1.05rem;color:var(--color-ink);place-items:center;font-size:1rem;font-weight:650;line-height:1;display:inline-grid}.cycle-mark.is-fill{background:var(--color-ink)}.cycle-mark.is-erase{border-color:var(--color-grid);background:var(--color-paper-raised)}.tool-button{min-width:0;min-height:3.75rem;padding:var(--space-2xs) 0;border:var(--rule-board) solid transparent;justify-content:center;align-items:center;gap:var(--space-2xs);font-size:var(--text-tool);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);white-space:nowrap;background:0 0;flex-direction:column;font-weight:650;line-height:1.2;display:flex;position:relative}.cycle-legend+.tool-button:before,.tool-button+.tool-button:before{top:50%;left:calc(var(--rule-board) * -1);width:var(--rule-hairline);height:var(--space-xl);background:var(--color-grid);content:"";position:absolute;transform:translateY(-50%)}.cycle-legend+.tool-button:before{display:none}.tool-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.65rem;height:1.65rem;overflow:visible}.tool-button svg.is-mirrored{transform:scaleX(-1)}.tool-button:disabled{color:var(--color-muted);cursor:not-allowed;opacity:1}.tool-button:disabled svg{opacity:.55}.completion-actions{width:min(100%,35rem);min-height:5rem;padding:var(--space-xs) var(--space-md);border-top:var(--rule-hairline) solid var(--color-grid-strong);border-bottom:var(--rule-hairline) solid var(--color-grid-strong);background:color-mix(in oklch, var(--color-paper-raised), transparent 3%);justify-content:center;align-items:center;gap:var(--space-md);margin:0 auto;display:flex}.completion-summary{gap:.1rem;min-width:0;display:grid}.completion-stage-label{color:var(--color-muted);font-size:var(--text-note);margin:0;line-height:1.35}.completion-action-row{align-items:center;gap:var(--space-xs);display:flex}.site-footer{margin-top:var(--space-xl);padding:var(--space-sm) 0;border-top:var(--rule-hairline) solid var(--color-grid);color:var(--color-muted);font-size:var(--text-note);font-variant-numeric:tabular-nums;text-align:center;justify-content:center;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.site-footer nav{justify-content:center;align-items:center;gap:var(--space-sm);flex-wrap:wrap;max-width:100%;display:inline-flex}.site-footer a{color:inherit;text-underline-offset:var(--space-3xs);white-space:nowrap}.primary-action{min-height:2.75rem;padding:var(--space-sm) var(--space-md);border:var(--rule-hairline) solid var(--color-accent);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-accent-ink);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);white-space:nowrap;font-weight:700}.secondary-action{min-height:2.75rem;padding:var(--space-sm) var(--space-md);border:var(--rule-hairline) solid var(--color-ink);border-radius:var(--radius-control);color:var(--color-ink);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);white-space:nowrap;background:0 0;margin-left:0;font-weight:700}.hint-confirmation{margin-bottom:0}.hint-confirmation>p{margin:0}.dialog-hint-balance{margin:calc(var(--space-2xs) * -1) 0 var(--space-md);padding-bottom:var(--space-xs);border-bottom:var(--rule-hairline) solid var(--color-grid);font-size:var(--text-note)}.restart-confirmation p{margin:0}.dialog-actions{margin-top:var(--space-lg);justify-content:flex-end;align-items:center;gap:var(--space-xs);display:flex}.dialog-backdrop{z-index:var(--z-modal);padding:var(--space-md);background:color-mix(in oklch, var(--color-ink), transparent 66%);animation:dialog-backdrop-in var(--dur-short) var(--ease-out) both;align-items:end;display:grid;position:fixed;inset:0}.editorial-dialog{width:min(100%,31rem);max-height:calc(100dvh - var(--space-md) * 2);padding:var(--space-lg);border:var(--rule-hairline) solid var(--color-ink);border-radius:var(--radius-dialog);background:var(--color-paper-raised);animation:dialog-panel-in var(--dur-dialog) var(--ease-out) both;margin:0 auto;overflow-y:auto}.editorial-dialog h2{margin:0 0 var(--space-sm);font-size:var(--text-dialog);line-height:1.25}.editorial-dialog p{color:var(--color-muted);line-height:1.55}.help-dialog{width:min(100%,52rem);height:min(48rem, 100dvh - var(--space-md) * 2);max-height:calc(100dvh - var(--space-md) * 2);grid-template-rows:auto minmax(0,1fr) auto;padding:0;display:grid;overflow:hidden}.help-guide__header{padding:var(--space-lg) var(--space-lg) var(--space-ml);border-bottom:var(--rule-hairline) solid var(--color-grid-strong)}.help-guide__title{letter-spacing:-.025em;overflow-wrap:anywhere;word-break:keep-all;min-width:0;max-width:28rem;margin:0}.help-guide__title:focus{outline:0}.help-guide__lede{max-width:64ch;margin:var(--space-xs) 0 0;font-size:var(--text-base);word-break:keep-all;line-height:1.65}.help-guide__hint-balance{margin:var(--space-sm) 0 0;font-size:var(--text-note)}.help-guide__scroller{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;scroll-padding-block:var(--space-lg);touch-action:pan-y;overflow:hidden auto}.help-guide__article{padding:0 var(--space-lg) var(--space-xl)}.help-index{border-bottom:var(--rule-hairline) solid var(--color-grid-strong);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.help-index a{min-width:0;min-height:2.75rem;padding:var(--space-xs) 0;align-items:center;gap:var(--space-xs);color:var(--color-ink);font-size:var(--text-note);-webkit-text-decoration-color:var(--color-grid);text-decoration-color:var(--color-grid);text-decoration-thickness:var(--rule-hairline);text-underline-offset:var(--space-3xs);white-space:nowrap;font-weight:650;line-height:1;display:flex}.help-index a:nth-child(odd){padding-right:var(--space-sm)}.help-index a:nth-child(2n){padding-left:var(--space-sm);border-left:var(--rule-hairline) solid var(--color-grid)}.help-index span{color:var(--color-muted);font-variant-numeric:tabular-nums}.help-section{padding:var(--space-xl) 0;border-bottom:var(--rule-hairline) solid var(--color-grid);scroll-margin-top:var(--space-md)}.help-section__number{margin:0 0 var(--space-xs);color:var(--color-muted);font-size:var(--text-note);font-variant-numeric:tabular-nums;letter-spacing:.025em;font-weight:700}.help-section h3{min-width:0;max-width:35rem;margin:0 0 var(--space-md);font-size:var(--text-title);letter-spacing:-.015em;overflow-wrap:anywhere;word-break:keep-all;font-weight:700;line-height:1.35}.help-section>p:not(.help-section__number){max-width:64ch;margin:var(--space-sm) 0 0;color:var(--color-muted);word-break:keep-all;line-height:1.7}.help-section strong,.help-example strong{color:var(--color-ink)}.help-formula{padding-left:var(--space-md);border-left:var(--rule-board) solid var(--color-ink);font-variant-numeric:tabular-nums;font-weight:700;color:var(--color-ink)!important}.help-example{max-width:42rem;margin:var(--space-lg) 0;padding:var(--space-md) 0;border-top:var(--rule-hairline) solid var(--color-grid);border-bottom:var(--rule-hairline) solid var(--color-grid)}.help-example figcaption{margin-bottom:var(--space-md);gap:var(--space-2xs);display:grid}.help-example figcaption strong{font-size:var(--text-base);line-height:1.45}.help-example figcaption span{max-width:64ch;color:var(--color-muted);font-size:var(--text-note);word-break:keep-all;line-height:1.55}.help-logic-line,.help-candidate-row{align-items:center;gap:var(--space-sm);grid-template-columns:4.75rem minmax(0,1fr);min-width:0;display:grid}.help-logic-clue,.help-candidate-row>span:first-child{color:var(--color-ink);font-size:var(--text-note);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:700}.help-logic-cells{border-top:var(--rule-hairline) solid var(--color-grid-strong);border-left:var(--rule-hairline) solid var(--color-grid-strong);width:min(100%,27.5rem);min-width:0;display:grid}.help-logic-cell{aspect-ratio:1;border-right:var(--rule-hairline) solid var(--color-grid-strong);border-bottom:var(--rule-hairline) solid var(--color-grid-strong);background:var(--color-paper-raised);min-width:0;position:relative}.help-logic-cell.is-filled:before{border-radius:var(--radius-cell-mark);background:var(--color-ink);content:"";position:absolute;inset:14%}.help-logic-cell.is-crossed:before,.help-logic-cell.is-crossed:after{top:calc(50% - var(--rule-hairline) / 2);height:var(--rule-hairline);background:var(--color-ink);content:"";position:absolute;left:18%;right:18%}.help-logic-cell.is-crossed:before{transform:rotate(45deg)}.help-logic-cell.is-crossed:after{transform:rotate(-45deg)}.help-candidate-list{gap:var(--space-xs);display:grid}.help-candidate-row.is-result{margin-top:var(--space-xs);padding-top:var(--space-sm);border-top:var(--rule-board) solid var(--color-grid-strong)}.help-candidate-row.is-result>span:first-child{color:var(--color-ink)}.help-control-list{max-width:42rem;margin:var(--space-lg) 0 0;border-top:var(--rule-hairline) solid var(--color-grid)}.help-control-list div{padding:var(--space-sm) 0;border-bottom:var(--rule-hairline) solid var(--color-grid);gap:var(--space-md);grid-template-columns:minmax(7.5rem,.4fr) minmax(0,1fr);display:grid}.help-control-list dt{color:var(--color-ink);font-weight:700}.help-control-list dd{color:var(--color-muted);word-break:keep-all;margin:0;line-height:1.55}.help-checklist{max-width:42rem;margin:var(--space-lg) 0 0;padding-left:var(--space-ml);color:var(--color-muted)}.help-checklist li{padding-left:var(--space-2xs);line-height:1.65}.help-checklist li+li{margin-top:var(--space-xs)}.help-checklist li::marker{color:var(--color-ink);font-variant-numeric:tabular-nums;font-weight:700}.help-hint-note{padding-top:var(--space-md);border-top:var(--rule-hairline) solid var(--color-grid)}.help-guide__footer{min-height:4rem;padding:var(--space-xs) var(--space-lg) calc(var(--space-xs) + env(safe-area-inset-bottom));border-top:var(--rule-hairline) solid var(--color-grid-strong);background:var(--color-paper-raised);justify-content:flex-end;align-items:center;display:flex}.help-guide__footer .primary-action{min-width:9.5rem;line-height:1}.help-index a:active{color:var(--color-ink);text-decoration-thickness:var(--rule-board)}.shortcut-list{margin:var(--space-md) 0 var(--space-ml);border-top:var(--rule-hairline) solid var(--color-grid)}.shortcut-list div{padding:var(--space-sm) 0;border-bottom:var(--rule-hairline) solid var(--color-grid);gap:var(--space-md);grid-template-columns:minmax(7.5rem,1fr) 1fr;display:grid}.shortcut-list dt{font-weight:700}.shortcut-list dd{color:var(--color-muted);margin:0}.text-action:disabled,.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.55}@keyframes dialog-backdrop-in{0%{opacity:0}}@keyframes dialog-panel-in{0%{opacity:0;transform:translateY(var(--space-xs))}}@media (hover:hover) and (pointer:fine){.wordmark:hover{text-decoration:underline;text-decoration-thickness:var(--rule-hairline);text-underline-offset:var(--space-3xs)}.text-action:not(:disabled):hover,.stage-select:not(:disabled):hover,.secondary-action:not(:disabled):hover,.tool-button:not(:disabled):hover{background:var(--color-paper-axis)}.primary-action:not(:disabled):hover{background:color-mix(in oklch, var(--color-accent), var(--color-paper-raised) 10%)}.help-index a:hover{text-decoration-thickness:var(--rule-board)}}.wordmark:active{text-decoration:underline;text-decoration-thickness:var(--rule-board);text-underline-offset:var(--space-3xs)}.help-index a:active,.site-footer a:active{text-decoration-thickness:var(--rule-board)}.text-action:active,.tool-button:not(:disabled):active,.primary-action:active,.secondary-action:active{transform:translateY(1px)}.sr-only,.sr-live{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-live{position:fixed}@media (max-width:23.8125rem){.header-actions{gap:0}.header-puzzle-controls .puzzle-size-select,.header-puzzle-controls .stage-select{padding-right:var(--space-2xs);padding-left:var(--space-2xs);font-size:var(--text-tool)}.completion-actions{gap:var(--space-2xs);flex-direction:column}.completion-stage-label{display:none}.completion-summary{text-align:center;width:100%;max-width:none}.completion-action-row{justify-content:center;width:100%}.completion-action-row>button{flex:1 1 0}.puzzle-grid-shell{--row-clue-padding-end:var(--space-2xs)}.column-clues,.row-clues{font-size:var(--text-tool)}.row-clue:before{margin-right:var(--space-3xs)}.help-guide__header,.help-guide__article{padding-right:var(--space-md);padding-left:var(--space-md)}.help-guide__header{padding-top:var(--space-md);padding-bottom:var(--space-md)}.help-guide__footer{padding-right:var(--space-md);padding-left:var(--space-md)}.help-logic-line,.help-candidate-row{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}.help-logic-clue,.help-candidate-row>span:first-child{text-align:left}.help-control-list div{gap:var(--space-2xs);grid-template-columns:1fr}}@media (max-width:47.9375rem){.puzzle-grid-viewport[data-puzzle-size="20"]{--minimum-board-size:0rem}.puzzle-grid-viewport.is-scrollable{max-height:none;overflow:visible}.puzzle-grid-shell{--mobile-board-block-fit:calc(100svh - 19.75rem - var(--column-clue-height) - env(safe-area-inset-bottom));--fitted-board-size:max(8rem, min(calc(100cqw - var(--row-clue-width) - var(--clue-gap)), var(--mobile-board-block-fit)));--row-clue-padding-end:var(--space-2xs)}.puzzle-grid-viewport.is-scrollable .clue-corner,.puzzle-grid-viewport.is-scrollable .column-clues,.puzzle-grid-viewport.is-scrollable .row-clues{z-index:auto;background:0 0;position:static}.column-clues,.row-clues{font-size:var(--text-note)}.puzzle-grid-viewport[data-puzzle-size="20"] .column-clues,.puzzle-grid-viewport[data-puzzle-size="20"] .row-clues{font-size:clamp(.5rem,2.55cqw,.625rem)}.puzzle-grid-viewport[data-puzzle-size="20"] .puzzle-grid-shell{--row-clue-width:2.25rem}.puzzle-grid-viewport[data-puzzle-size="20"] .column-clue .clue-values{gap:0;line-height:.9}.puzzle-grid-viewport[data-puzzle-size="20"] .clue-values{margin:0;padding:0}}@media (min-width:48rem){.site-header{gap:var(--space-md);display:flex}.header-actions{justify-content:flex-end;align-items:center;gap:var(--space-2xs);min-width:0;margin-left:auto;display:flex}.header-puzzle-controls{border-top:0;width:min(31rem,54vw);padding:0}.help-guide__header{padding:var(--space-xl) var(--space-xl) var(--space-lg)}.help-guide__article{padding-right:var(--space-xl);padding-bottom:var(--space-2xl);padding-left:var(--space-xl)}.help-index{grid-template-columns:repeat(3,minmax(0,1fr))}.help-index a:nth-child(odd),.help-index a:nth-child(2n){padding-right:var(--space-sm);padding-left:var(--space-sm);border-left:var(--rule-hairline) solid var(--color-grid)}.help-index a:nth-child(3n+1){border-left:0;padding-left:0}.help-guide__footer{padding-right:var(--space-xl);padding-left:var(--space-xl)}}@media (min-width:48rem) and (max-width:75.1875rem){.tool-dock{grid-template-rows:auto;grid-template-columns:minmax(6.75rem,1fr) repeat(4,minmax(4rem,4rem))}.cycle-legend{min-height:4rem;padding:var(--space-2xs) var(--space-xs);flex-direction:column;grid-column:auto}.cycle-guidance{flex-direction:column;gap:0}.cycle-guidance__drag:before{content:none}.cycle-legend+.tool-button:before{display:block}.puzzle-grid-shell{--fitted-board-size:26.25rem;--row-clue-width:4.5rem;--column-clue-height:6.5rem;--clue-gap:var(--space-sm)}.column-clues,.row-clues{font-size:var(--text-clue)}.tool-dock,.completion-actions{width:min(35rem, 100% - var(--space-md) * 2);margin-left:auto;margin-right:auto}}@media (min-width:48rem) and (max-width:75.1875rem) and (max-height:52rem){.app-shell{padding-bottom:max(var(--space-lg), env(safe-area-inset-bottom))}.site-header{min-height:3rem}.game-layout{padding-top:var(--space-xs)}.play-note{min-height:0;font-size:var(--text-note);margin:0;line-height:1.35}.tool-dock,.completion-actions{min-height:4.75rem;padding-top:var(--space-2xs);padding-bottom:var(--space-2xs)}}@media (max-width:47.9375rem) and (max-height:42rem){.app-shell{padding-bottom:max(var(--space-lg), env(safe-area-inset-bottom))}.site-header{min-height:3rem}.game-layout{padding-top:var(--space-xs)}.puzzle-grid-shell{--mobile-board-block-fit:calc(100svh - 15.625rem - var(--column-clue-height) - env(safe-area-inset-bottom))}.play-note{display:none}.tool-dock,.completion-actions{min-height:4.75rem;padding-top:var(--space-2xs);padding-bottom:var(--space-2xs)}}@media (min-width:75.25rem){.app-shell{padding:0 var(--space-desktop-gutter) var(--space-lg)}.site-header{min-height:4rem}.game-layout{padding-top:var(--space-xl);grid-template-columns:18.6% 53.3% 28.1%;align-items:start;display:grid}.board-stage{grid-area:1/2}.game-status{width:100%;padding-left:min(var(--space-desktop-gutter), 2.25vw);grid-area:1/3;align-self:start;margin:0}.puzzle-grid-shell{--fitted-board-size:min(31.25rem, 34.75vw);--row-clue-width:min(5.5rem, 6.1vw);--column-clue-height:min(6.75rem, 7.5vw);--clue-gap:min(var(--space-sm), .85vw);margin-left:auto;margin-right:0}.play-note{width:min(37.5rem,100%);min-height:2.75rem;margin:var(--space-md) auto var(--space-sm);position:static;bottom:auto;left:auto;right:auto}.tool-dock{width:min(31.25rem,100%);min-height:4.75rem;padding:var(--space-2xs) 0;border-top:var(--rule-hairline) solid var(--color-grid-strong);border-bottom:var(--rule-hairline) solid var(--color-grid-strong);background:0 0;grid-template-rows:auto auto;grid-template-columns:repeat(4,minmax(0,1fr));margin-left:auto;margin-right:0;position:static}.tool-dock .cycle-legend{flex-direction:row;grid-column:1/-1;min-height:2rem}.tool-dock .cycle-guidance{gap:var(--space-2xs);flex-direction:row}.tool-dock .cycle-guidance__drag:before{margin-right:var(--space-2xs);content:"·"}.tool-dock .cycle-legend+.tool-button:before{display:none}.completion-actions{width:min(31.25rem,100%);min-height:4.75rem;padding:var(--space-2xs) var(--space-md);border-top:var(--rule-hairline) solid var(--color-grid-strong);border-bottom:var(--rule-hairline) solid var(--color-grid-strong);background:0 0;margin-left:auto;margin-right:0;position:static}.tool-button{min-height:3.75rem}.dialog-backdrop{place-items:center}}@media (min-width:75.25rem) and (max-height:52rem){.game-layout{padding-top:var(--space-lg)}.puzzle-grid-shell{--fitted-board-size:28.125rem;--column-clue-height:6rem;margin-left:auto;margin-right:auto}.play-note{min-height:2.5rem;margin-top:var(--space-sm);margin-bottom:var(--space-xs)}.tool-dock{width:28.125rem;min-height:4.25rem;padding:var(--space-2xs) 0;margin-left:calc(50% - 10.9375rem)}.completion-actions{width:28.125rem;min-height:4.25rem;padding:var(--space-2xs) var(--space-md);margin-left:calc(50% - 10.9375rem)}.tool-button{min-height:3.75rem}}@media (min-width:75.25rem) and (max-height:48rem){.site-header{min-height:3.5rem}.game-layout{padding-top:var(--space-xs)}.puzzle-grid-shell{--fitted-board-size:26.25rem;--row-clue-width:5rem;--column-clue-height:5rem}.play-note{min-height:2rem;margin-top:var(--space-xs);margin-bottom:var(--space-2xs)}.tool-dock,.completion-actions{width:26.25rem;margin-left:calc(50% - 10.25rem)}}@media (prefers-contrast:more),(forced-colors:active){.puzzle-size-select{border-bottom-color:currentColor}.puzzle-size-select:focus-visible,.puzzle-grid-viewport.is-scrollable:focus-visible{outline-color:highlight}.board-cell,.completion-actions,.tool-dock,.tool-button,.game-board:after{border-color:currentColor}.clue-boundary{background:canvastext}.board-cell.mark-filled:before{background-color:canvastext}.board-cell.mark-crossed:before,.board-cell.mark-crossed:after{background:canvastext}.board-cell.is-cursor:focus-visible{outline:var(--rule-focus) solid Highlight;outline-offset:calc(var(--rule-focus) * -1);box-shadow:none}.puzzle-grid-shell.has-started-reveal .board-cell.is-cursor:focus-visible{outline-color:highlight}}@media (forced-colors:active){.puzzle-grid-shell:not(.is-complete) .column-clue.is-contradictory>.clue-values,.puzzle-grid-shell:not(.is-complete) .row-clue.is-contradictory>.clue-values{color:canvastext;outline:var(--rule-hairline) solid CanvasText;outline-offset:calc(var(--rule-hairline) * -1);background:canvas}.puzzle-grid-shell:not(.is-complete) .column-clue.is-contradictory>.clue-values:after,.puzzle-grid-shell:not(.is-complete) .row-clue.is-contradictory>.clue-values:after{height:var(--rule-board);background:canvastext}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:var(--dur-micro)!important;transition-duration:.01ms!important;animation-iteration-count:1!important}.editorial-dialog{animation-name:dialog-fade-in}.board-cell.mark-filled:before,.board-cell.mark-crossed:before,.board-cell.mark-crossed:after{animation-name:mark-fade-in;animation-timing-function:var(--ease-out)}.text-action:active,.tool-button:not(:disabled):active,.primary-action:active,.secondary-action:active{transform:none}}@keyframes mark-pop{0%{opacity:.18;transform:rotate(var(--mark-rotate,0deg)) scale(.54)}24%{opacity:1;transform:rotate(var(--mark-rotate,0deg)) scale(1.1)}52%{transform:rotate(var(--mark-rotate,0deg)) scale(.94)}76%{transform:rotate(var(--mark-rotate,0deg)) scale(1.03)}to{opacity:1;transform:rotate(var(--mark-rotate,0deg)) scale(1)}}@keyframes mark-fade-in{0%{opacity:.18}}@keyframes dialog-fade-in{0%{opacity:0}}
