:root{color-scheme:light;--ink:#152126;--muted:#526269;--line:#dbe4e2;--paper:#f6f8f5;--card:#fff;--accent:#d7fa63;--focus:#2459d3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);line-height:1.55}a{color:inherit}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:1rem;z-index:10;background:#fff;padding:.6rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1.25rem,calc((100vw - 72rem)/2));background:#fff;border-bottom:1px solid var(--line)}.brand{font-size:1.15rem;font-weight:800;text-decoration:none;letter-spacing:-.04em}.brand span{color:#83a900}.language-menu{position:relative}.language-menu summary{cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:.5rem .8rem;list-style:none}.language-menu summary::-webkit-details-marker{display:none}.language-menu nav{position:absolute;z-index:5;right:0;top:calc(100% + .5rem);width:min(21rem,90vw);max-height:65vh;overflow:auto;padding:.5rem;background:#fff;border:1px solid var(--line);border-radius:1rem;box-shadow:0 12px 36px #15212620}.language-menu ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem;padding:0;margin:0;list-style:none}.language-menu a{display:block;padding:.45rem .6rem;border-radius:.5rem;text-decoration:none}.language-menu a:hover,.language-menu a[aria-current=page]{background:var(--paper)}.page-shell{width:min(100% - 2rem,72rem);margin:2rem auto}.breadcrumbs{display:flex;gap:.5rem;color:var(--muted);font-size:.9rem}.breadcrumbs a{text-decoration:none}.tool-intro{max-width:50rem;padding:2rem 0 1rem}.eyebrow{font-size:.78rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}h1,h2{line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(2rem,5vw,3.5rem);margin:.4rem 0}h2{font-size:1.4rem}.tool-intro>p:last-child{max-width:44rem;color:var(--muted);font-size:1.08rem}.tool-panel,.tool-explainer,.tool-faq,.tool-directory>li{background:var(--card);border:1px solid var(--line);border-radius:1.2rem;padding:clamp(1rem,3vw,2rem);box-shadow:0 5px 18px #15212608}.tool-panel{margin:1rem 0 2rem}.tool-explainer,.tool-faq{margin:1.25rem 0}.field{display:grid;gap:.35rem;margin:.9rem 0;max-width:44rem}.field label{font-weight:650}.field input,.field select,.field textarea,.game select{width:100%;min-height:2.8rem;border:1px solid #aab9b5;border-radius:.65rem;background:#fff;padding:.65rem .8rem;color:var(--ink);font:inherit}.field textarea{resize:vertical}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.actions,.game-toolbar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.button{min-height:2.75rem;border:1px solid var(--line);border-radius:.7rem;padding:.65rem 1rem;background:#fff;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.button--primary{background:var(--accent);border-color:#bddf4c}.button:disabled{opacity:.55;cursor:not-allowed}.hint,.status{color:var(--muted)}.status{min-height:1.5em}.result{margin-top:1.25rem;padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:#fbfdf9}.result[hidden],[hidden]{display:none!important}.tool-faq details{padding:.8rem 0;border-top:1px solid var(--line)}.tool-faq summary,.rules summary{cursor:pointer;font-weight:650}.tool-faq details p{color:var(--muted)}.tool-directory{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;padding:0;list-style:none}.tool-directory>li{flex:1 1 17rem;max-width:24rem}.tool-directory a{text-decoration:none}.tool-directory h2{font-size:1.2rem}.tool-directory p{color:var(--muted)}footer{padding:2rem 1rem;text-align:center;color:var(--muted)}.game{display:grid;gap:1rem}.mancala-board{display:grid;grid-template-columns:4rem repeat(6,minmax(2.6rem,1fr)) 4rem;gap:.4rem;align-items:center;overflow-x:auto;padding:.75rem;border-radius:1rem;background:#d2a56c}.mancala-board button{min-width:2.6rem;min-height:2.6rem;border:0;border-radius:50%;background:#fff;color:var(--ink);font:inherit;font-weight:750;cursor:pointer}.mancala-board [data-store]{border-radius:.65rem;background:#f1d9aa}.mancala-board button:disabled{opacity:.72;cursor:default}@media(max-width:600px){.site-header{padding-inline:1rem}.page-shell{width:min(100% - 1rem,72rem);margin:1rem auto}.mancala-board{grid-template-columns:3rem repeat(6,minmax(2.4rem,1fr)) 3rem;gap:.25rem}.mancala-board button{min-width:2.4rem;min-height:2.4rem}.tool-directory>li{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.sharpener-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.sharpener-compare{display:inline-flex;align-items:center;gap:.5rem;margin:.5rem 0;cursor:pointer}.sharpener-compare input{width:1.1rem;height:1.1rem}[data-sharpener-preview]{display:block;width:100%;max-height:70vh;object-fit:contain;background-color:#f2f4f6;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:1rem 1rem;background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;border:1px solid var(--line);border-radius:.65rem}@media(max-width:600px){.sharpener-controls{grid-template-columns:minmax(0,1fr)}}
.sketch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}[data-sketch-preview]{display:block;width:100%;max-height:70vh;object-fit:contain;background-color:#f2f4f6;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:1rem 1rem;background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;border:1px solid var(--line);border-radius:.65rem}[data-sketch-preview]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(max-width:600px){.sketch-controls{grid-template-columns:minmax(0,1fr)}}
.color-picker-preview-wrap{position:relative;width:min(100%,58rem);margin-block:1rem}.color-picker-preview-wrap canvas{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain;border:1px solid var(--line);border-radius:.65rem;background-color:#f2f4f6;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:1rem 1rem;background-position:0 0,0 .5rem,.5rem -.5rem,-.5rem 0;cursor:crosshair;touch-action:manipulation}.color-picker-preview-wrap canvas:focus-visible{outline:3px solid var(--focus);outline-offset:3px}[data-color-picker-marker]{position:absolute;width:1.25rem;height:1.25rem;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #152126;transform:translate(-50%,-50%);pointer-events:none}.color-picker-current{display:flex;align-items:center;gap:.75rem;max-width:100%;padding:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#fff}.color-picker-current p{margin:0;overflow-wrap:anywhere}.color-picker-current>span,.color-picker-swatch{flex:0 0 2rem;width:2rem;height:2rem;border:1px solid #8a9692;border-radius:.4rem;background-color:#fff;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:.75rem .75rem;background-position:0 0,0 .375rem,.375rem -.375rem,-.375rem 0}.color-picker-current>span{background-color:transparent}.color-picker-sample{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:.65rem 0;border-top:1px solid var(--line)}[data-color-picker-palette]{padding-inline-start:1.5rem}.color-picker-sample code{overflow-wrap:anywhere}
.mancala-board{grid-template-rows:repeat(2,auto)}.mancala-row{display:grid;grid-template-columns:repeat(6,minmax(2.6rem,1fr));gap:.4rem}.mancala-row--top{grid-column:2/8;grid-row:1}.mancala-row--bottom{grid-column:2/8;grid-row:2}.mancala-store{display:grid;grid-row:1/3;align-content:center;justify-items:center;gap:.35rem;min-height:6.4rem;padding:.35rem;border-radius:.65rem;background:#f1d9aa;text-align:center;font-size:.75rem}.mancala-store strong{font-size:1.15rem}.mancala-store:first-child{grid-column:1}.mancala-store:last-child{grid-column:8}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#b42318;box-shadow:0 0 0 1px #b42318}@media(max-width:600px){.mancala-board{grid-template-columns:3rem repeat(6,minmax(2.4rem,1fr)) 3rem}.mancala-row{grid-template-columns:repeat(6,minmax(2.4rem,1fr));gap:.25rem}.mancala-store{font-size:.65rem}}
[data-preview]{display:block;width:100%;height:auto;max-height:75vh;border:1px solid var(--line);border-radius:.65rem;background:#f3f3f3;touch-action:none;cursor:crosshair}.redaction-coordinates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .8rem;border:1px solid var(--line);border-radius:.8rem;padding:1rem}.redaction-coordinates .field{min-width:0}.redaction-coordinates [data-action=add-region]{margin-block:.6rem}[data-region-list]{display:grid;gap:.5rem;padding-inline-start:1.5rem}[data-region-list] li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}@media(max-width:600px){.redaction-coordinates{grid-template-columns:minmax(0,1fr)}}
 .domino-game .game-toolbar{align-items:flex-end}.domino-game .field{flex:1 1 13rem;margin:.25rem 0}.domino-board-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:.8rem;padding:.75rem;background:#fff;overscroll-behavior-inline:contain}.domino-board{display:flex;align-items:center;gap:.45rem;min-width:max-content;min-height:4.5rem;margin:0;padding:0;list-style:none}.domino-tile{display:inline-grid;grid-template-columns:1fr 1fr;min-width:3.4rem;min-height:3.4rem;border:1px solid #66736f;border-radius:.45rem;background:#fff;box-shadow:0 2px 4px #1521261c;color:var(--ink);font-weight:800;text-align:center}.domino-tile span{display:grid;place-items:center;padding:.25rem}.domino-tile span+span{border-left:1px solid #aab9b5}.domino-tile--played{flex:0 0 auto}.domino-hand{display:flex;flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none}.domino-hand-item{display:grid;justify-items:center;gap:.4rem;padding:.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--paper)}.domino-play-button{min-height:2.4rem;padding:.4rem .6rem;font-size:.82rem}.domino-hand[hidden]{display:none}
.upscaler-previews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;align-items:start}.upscaler-previews figure{margin:0;min-width:0}.upscaler-previews figcaption{font-weight:650;margin-block-end:.5rem}.upscaler-previews canvas{display:block;max-width:100%;height:auto;border:1px solid var(--border,#d7deeb);border-radius:.75rem;background:#fff}.upscaler-previews progress{display:block;width:100%;margin-block-start:.5rem}
.rafter-diagram{margin:1rem 0;max-width:100%;overflow:hidden}.rafter-diagram svg{display:block;width:min(100%,22rem);height:auto;color:var(--ink)}
.hitori-grid{display:grid;gap:.35rem;width:min(100%,32rem);margin:1rem auto;touch-action:manipulation}.hitori-row{display:grid;grid-template-columns:repeat(var(--hitori-size,8),minmax(2.35rem,1fr));gap:.35rem}.hitori-cell{display:grid;place-items:center;aspect-ratio:1;min-width:2.35rem;border:1px solid var(--line);border-radius:.6rem;background:#fff;color:var(--ink);font:inherit;font-size:1.25rem;font-weight:750;cursor:pointer}.hitori-cell[aria-pressed=true]{background:#172033;color:#fff;text-decoration:line-through}.hitori-cell:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.hitori-game .game-toolbar{align-items:end}.hitori-game .field{min-width:min(100%,10rem)}@media(max-width:600px){.hitori-grid{gap:.25rem}.hitori-row{gap:.25rem}.hitori-cell{min-width:2rem;font-size:1.1rem}}
.miter-compound-fields{max-width:44rem;margin:1rem 0;padding:.25rem 1rem 1rem;border:1px solid var(--line);border-radius:.8rem}.miter-diagram{display:grid;justify-items:center;max-width:24rem;margin:1.25rem 0;padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:#fff;color:var(--ink)}.miter-diagram svg{display:block;width:min(100%,20rem);height:auto}.miter-diagram text{fill:currentColor;font:12px ui-sans-serif,system-ui,sans-serif}.miter-diagram figcaption{color:var(--muted);font-size:.9rem;text-align:center}
.nurikabe-grid{display:grid;gap:.35rem;width:min(100%,24rem);margin:1rem auto;touch-action:manipulation}.nurikabe-row{display:grid;grid-template-columns:repeat(5,minmax(2.5rem,1fr));gap:.35rem}.nurikabe-cell{display:grid;place-items:center;aspect-ratio:1;min-width:2.5rem;border:1px solid var(--line);border-radius:.6rem;background:#fff;color:var(--ink);font:inherit;font-size:1.25rem;font-weight:750;cursor:pointer}.nurikabe-cell.is-clue{background:#f1f5f9;cursor:default}.nurikabe-cell.is-sea{background:#172033;color:#fff}.nurikabe-cell:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.nurikabe-game .game-toolbar{align-items:end}.nurikabe-game .field{min-width:min(100%,10rem)}@media(max-width:600px){.nurikabe-grid{gap:.25rem}.nurikabe-row{gap:.25rem}.nurikabe-cell{min-width:2.15rem;font-size:1.1rem}}
.color-name-result{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.65rem 0;border-bottom:1px solid var(--line)}.color-name-result>span:last-child{min-width:0;overflow-wrap:anywhere}.color-name-swatch{flex:0 0 2.25rem;width:2.25rem;height:2.25rem;border:1px solid #87918e;border-radius:.45rem}.color-name-aliases,.color-name-result small{color:var(--muted)}.color-name-result code{white-space:nowrap}
/* Keep the keyboard skip link off-canvas vertically, never thousands of pixels horizontally. */
.skip-link{position:fixed;left:auto;right:auto;inset-inline-start:1rem;inset-block-start:0;transform:translateY(-150%)}
.skip-link:focus{left:auto;right:auto;transform:translateY(0)}
