:root{--bg:#f8fafc;--surface:#fff;--text:#10213e;--muted:#5c6b82;--line:#d9e1ec;--blue:#2563eb;--blue-dark:#1747b5;--blue-soft:#eaf1ff;--safe:#dbeafe;--mine:#fee2e2;--radius:14px;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--bg:#0d1729;--surface:#132139;--text:#edf4ff;--muted:#aab9ce;--line:#30435f;--blue:#78a5ff;--blue-dark:#a8c5ff;--blue-soft:#1c3159;--safe:#18335b;--mine:#4b2732}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.55}.site-header,main,footer{width:min(1120px,calc(100% - 40px));margin-inline:auto}.site-header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:1.15rem;font-weight:850;letter-spacing:-.05em;text-decoration:none;color:var(--text);white-space:nowrap}.brand span{color:var(--blue)}nav{display:flex;align-items:center;gap:22px}nav a,footer a{color:var(--muted);font-size:.9rem;text-decoration:none}nav a:hover,footer a:hover{color:var(--blue)}.menu-toggle{display:none}.home-hero{min-height:calc(100dvh - 70px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;gap:80px;padding:48px 0 72px}.kicker{margin:0 0 13px;color:var(--blue);font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.home-hero h1{max-width:600px;margin:0;font-size:clamp(2.75rem,6vw,5.3rem);line-height:.98;letter-spacing:-.07em}.home-hero>div>p:not(.kicker){max-width:500px;margin:25px 0 30px;color:var(--muted);font-size:1.1rem}.button{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:var(--radius);background:var(--blue);color:#fff;font-weight:750;text-decoration:none;box-shadow:0 8px 20px rgb(37 99 235 / .18);transition:transform .2s,background .2s}.button:hover{background:var(--blue-dark)}.button:active{transform:translateY(1px)}.hero-tool{padding:27px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 20px 45px rgb(29 54 95 / .12);transform:rotate(2deg)}.mini-top{display:flex;justify-content:space-between;margin-bottom:20px;color:var(--muted);font-size:.8rem;font-weight:700}.mini-top span:last-child{color:var(--blue)}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-width:300px}.mini-grid i{display:grid;aspect-ratio:1;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--blue);font-style:normal;font-weight:800}.mini-grid .safe{background:var(--safe);border-color:var(--blue)}.mini-grid .mine{background:var(--mine);border-color:#e65b66;color:#c02d3a}.hero-tool>p{margin:20px 0 0;font-size:.92rem}.directory,.how-section,.faq{padding:105px 0}.section-heading h2,.how-copy h2,.faq h2{max-width:650px;margin:0;font-size:clamp(2rem,4vw,3.35rem);line-height:1.05;letter-spacing:-.055em}.tool-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:40px}.tool-card{min-height:230px;display:flex;flex-direction:column;align-items:flex-start;padding:27px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s}.tool-card:hover{border-color:var(--blue);box-shadow:0 14px 30px rgb(29 54 95 / .11);transform:translateY(-3px)}.tool-card h3{margin:28px 0 8px;font-size:1.35rem;letter-spacing:-.04em}.tool-card p{max-width:39ch;margin:0;color:var(--muted);font-size:.92rem}.tool-card b{margin-top:auto;padding-top:23px;color:var(--blue);font-size:.9rem}.tool-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:var(--blue-soft);color:var(--blue);font-size:.76rem;font-weight:850}.nonogram-card{grid-row:span 2}.picross-card{background:var(--blue);border-color:var(--blue);color:#fff}.picross-card p,.picross-card b{color:#fff}.picross-card .tool-icon{background:#fff;color:var(--blue)}.how-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;border-top:1px solid var(--line)}.how-copy p{max-width:44ch;color:var(--muted)}.how-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0;padding:0;list-style:none}.how-list span{display:block;margin-bottom:10px;color:var(--blue);font-size:1.05rem;font-weight:850}.how-list p{margin:0;color:var(--muted);font-size:.9rem}.faq{max-width:720px;margin-inline:auto}.faq h2{margin-bottom:26px}.faq details{padding:18px 0;border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:750}.faq details p{max-width:60ch;margin:12px 0 0;color:var(--muted);font-size:.94rem}footer{display:flex;align-items:center;gap:24px;padding:35px 0;border-top:1px solid var(--line)}footer p{margin:0 auto 0 0;color:var(--muted);font-size:.82rem}footer div{display:flex;gap:18px}
/* Solver pages */.page-hero{padding:64px 0 44px;max-width:760px}.crumbs{display:flex;gap:7px;margin-bottom:20px;color:var(--muted);font-size:.82rem}.crumbs a{color:inherit}.page-hero h1{margin:0;font-size:clamp(2.5rem,6vw,4.4rem);line-height:1;letter-spacing:-.065em}.page-hero p{max-width:600px;margin:17px 0 0;color:var(--muted);font-size:1.05rem}.solver-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:25px;align-items:start}.tool-panel{padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.tool-panel h2{margin:0;font-size:1.35rem;letter-spacing:-.035em}.tool-panel>p{margin:8px 0 22px;color:var(--muted);font-size:.9rem}.controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:22px}.field{display:grid;gap:5px;color:var(--muted);font-size:.78rem;font-weight:700}.field input,.field textarea{border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.field input{width:76px;height:39px;padding:0 10px}.field textarea{min-height:122px;padding:10px;resize:vertical;line-height:1.45}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.button-row button,.controls button{min-height:40px;padding:0 14px;border:1px solid var(--blue);border-radius:8px;background:var(--blue);color:#fff;cursor:pointer;font:inherit;font-size:.87rem;font-weight:800;transition:transform .2s,background .2s}.button-row button.secondary{background:transparent;color:var(--blue)}.button-row button:active,.controls button:active{transform:translateY(1px)}.mine-grid{display:grid;gap:4px;width:max-content;max-width:100%;overflow:auto;padding:2px}.mine-grid input{width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font:800 1rem/1 ui-sans-serif;text-align:center;outline:none}.mine-grid input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.mine-grid input.safe{background:var(--safe);border-color:var(--blue);color:var(--blue)}.mine-grid input.mine{background:var(--mine);border-color:#e65b66;color:#b4232e}.status{min-height:50px;margin-top:20px;padding:13px 15px;border-radius:8px;background:var(--blue-soft);color:var(--text);font-size:.9rem}.status.error{background:var(--mine);color:#a41c28}.ad-slot{display:grid;min-height:230px;place-items:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:.75rem}.side-note{margin-top:25px;padding:18px;border-left:3px solid var(--blue);background:var(--blue-soft);font-size:.88rem}.side-note strong{display:block;margin-bottom:4px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:58px;padding:95px 0}.content-grid h2{margin:0 0 12px;font-size:1.8rem;letter-spacing:-.045em}.content-grid p,.content-grid li{color:var(--muted);font-size:.94rem}.content-grid ol{padding-left:20px}.related{padding:0 0 95px}.related h2{margin:0 0 25px;font-size:1.8rem;letter-spacing:-.045em}.related-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.related-links a{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-weight:750;text-decoration:none}.related-links a:hover{border-color:var(--blue);color:var(--blue)}.clue-editor{display:grid;grid-template-columns:1fr 1fr;gap:15px}.clue-editor .field textarea{width:100%}.nonogram-result{display:grid;gap:2px;width:max-content;max-width:100%;margin-top:22px;overflow:auto;padding:4px}.nonogram-result i{display:block;width:28px;aspect-ratio:1;border:1px solid var(--line);background:var(--bg)}.nonogram-result i.filled{background:var(--blue);border-color:var(--blue)}.nonogram-result i.unknown{background:linear-gradient(135deg,var(--bg) 49%,var(--line) 50%,var(--bg) 51%)}.run-editor{display:grid;gap:15px}.run-help{margin:0;color:var(--muted);font-size:.82rem}.solution-grid{display:grid;gap:5px;width:max-content;margin-top:20px}.solution-grid span{display:grid;width:45px;height:45px;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--bg);font-weight:850}.solution-grid span.changed{background:var(--safe);border-color:var(--blue);color:var(--blue)}
@media (prefers-reduced-motion:no-preference){.tool-card,.button{transition-duration:.22s}}@media (max-width:760px){.site-header,main,footer{width:min(100% - 32px,1120px)}.site-header{position:relative;min-height:62px}.menu-toggle{display:block;margin-left:auto;border:0;background:transparent;color:var(--text);font:700 .85rem ui-sans-serif;cursor:pointer}nav{display:none;position:absolute;top:56px;right:0;z-index:2;width:210px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 12px 25px rgb(29 54 95 / .12)}nav.open{display:grid;gap:0}nav a{padding:10px}.home-hero{grid-template-columns:1fr;gap:42px;min-height:0;padding:52px 0 70px}.home-hero h1{font-size:clamp(2.7rem,14vw,4.2rem)}.hero-tool{max-width:380px;transform:none}.directory,.how-section,.faq{padding:70px 0}.tool-grid{grid-template-columns:1fr}.nonogram-card{grid-row:auto}.tool-card{min-height:210px}.how-section{grid-template-columns:1fr;gap:35px}.how-list{grid-template-columns:1fr 1fr;gap:23px}.how-list li:last-child{grid-column:span 2}.page-hero{padding:45px 0 35px}.solver-layout{grid-template-columns:1fr}.ad-slot{min-height:100px;order:2}.tool-panel{padding:20px}.content-grid{grid-template-columns:1fr;gap:40px;padding:65px 0}.related{padding-bottom:65px}.related-links{grid-template-columns:1fr}.clue-editor{grid-template-columns:1fr}.mine-grid input{width:34px;height:34px}.nonogram-result i{width:24px}footer{flex-wrap:wrap;gap:13px}footer p{order:3;flex-basis:100%}}

/* Interaction-first solver controls */
.tool-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.preset-row,.segmented,.number-pad{display:flex;flex-wrap:wrap;gap:7px}.preset-row button,.segmented button,.number-pad button,.text-button,.icon-text{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer;font:750 .78rem ui-sans-serif}.preset-row button:hover,.text-button:hover,.icon-text:hover{border-color:var(--blue);color:var(--blue)}.segmented{margin:4px 0 17px;padding:4px;border-radius:10px;background:var(--bg);width:max-content}.segmented button{border:0;background:transparent}.segmented button[aria-pressed="true"]{background:var(--surface);color:var(--blue);box-shadow:0 1px 3px rgb(29 54 95 / .14)}.mine-grid{padding:4px}.mine-cell{display:grid;width:38px;height:38px;place-items:center;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);cursor:pointer;font:800 1rem/1 ui-sans-serif;transition:transform .15s,border-color .15s,background .15s}.mine-cell:hover,.mine-cell.selected{border-color:var(--blue)}.mine-cell.selected{box-shadow:0 0 0 3px var(--blue-soft)}.mine-cell.clue{background:var(--surface);color:var(--blue)}.mine-cell.flag,.mine-cell.mine{background:var(--mine);border-color:#e65b66;color:#b4232e}.mine-cell.safe{background:var(--safe);border-color:var(--blue);color:var(--blue)}.number-pad{margin-top:18px}.number-pad button{width:38px;padding:0;font-size:.9rem}.number-pad .pad-clear{width:auto;padding:0 12px;color:var(--muted)}.clue-editor .field textarea{min-height:185px}.nonogram-result span{display:block;width:28px;aspect-ratio:1;border:1px solid var(--line);background:var(--surface)}.nonogram-result span.filled{background:var(--blue);border-color:var(--blue)}.nonogram-result span.empty{background:var(--bg)}.run-builder{display:grid;gap:24px}.run-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:10px}.run-heading h3{margin:0;font-size:1rem}.run-heading p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.run-list{display:grid;gap:8px}.run-row{display:grid;grid-template-columns:72px minmax(150px,1fr) auto;align-items:end;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.run-row .field input{width:100%;min-width:0}.run-row .run-cells{min-width:0}.run-row .remove-run{height:39px}.solution-grid{width:100%}.solution-grid span{min-width:64px;height:58px}.solution-grid span small{font-size:.66rem;color:var(--muted)}
@media (max-width:760px){.tool-title-row{flex-direction:column;align-items:stretch}.preset-row{margin-top:2px}.mine-cell{width:34px;height:34px}.nonogram-result span{width:24px}.run-row{grid-template-columns:72px 1fr}.run-row .remove-run{grid-column:span 2}.run-heading{align-items:flex-start;flex-direction:column}}
