:root{--bg:#f7f5f0;--surface:#fff;--text:#2b2a33;--muted:#7a7684;--border:#d9d5cc;--grid-line:#cfc9bd;--accent:#2b2a33;--accent-text:#fff;--marker:#e0262b;--strike:#e0262b66;--warning-bg:#fff4d6;--warning-border:#e8c766;--ok:#2f8f4e;--gold:#e3a10b;--shadow:0 10px 30px -12px #00000040;--radius:12px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.45 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#17171c;--surface:#212128;--text:#ececf1;--muted:#9a98a6;--border:#34343e;--grid-line:#3c3c47;--accent:#ececf1;--accent-text:#17171c;--marker:#ff4d4f;--strike:#ff4d4f73;--warning-bg:#3a3017;--warning-border:#7d6522;--ok:#5fcf85;--shadow:0 10px 30px -12px #000000b3}}*{box-sizing:border-box}body{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0}#root{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));justify-content:center;display:flex}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.short{display:none}h1{letter-spacing:-.02em;margin:0;font-size:2.5rem}p{margin:0}.muted{color:var(--muted)}.ok{color:var(--ok)}.view{flex-direction:column;gap:16px;width:100%;max-width:640px;display:flex}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:10px 18px;font-weight:600;transition:transform .1s,background .15s,opacity .15s}@media (hover:hover){.btn:hover:not(:disabled){border-color:var(--muted)}}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn--ghost{background:0 0;padding:6px 12px;font-weight:500}.btn--danger{color:var(--marker);border-color:var(--marker)}.setup__header{flex-direction:column;gap:4px;display:flex}.entries{resize:vertical;width:100%;min-height:260px;font:16px/1.6 var(--mono);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:14px 16px}.entries:focus{border-color:var(--muted)}.setup__meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:.95rem;display:flex}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.setup__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.warning{border-radius:var(--radius);background:var(--warning-bg);border:1px solid var(--warning-border);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.warning__actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.toolbar__title{color:var(--muted);font-weight:700}.board{--size:3;aspect-ratio:1;background:var(--surface);border:2px solid var(--grid-line);border-radius:var(--radius);width:100%;max-width:max(280px,100svh - 170px);box-shadow:var(--shadow);align-self:center;transition:box-shadow .4s;position:relative;overflow:hidden;container-type:inline-size}.board__grid{grid-template-columns:repeat(var(--size), 1fr);grid-template-rows:repeat(var(--size), 1fr);background:var(--grid-line);gap:1px;width:100%;height:100%;display:grid}.board__lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cell{background:var(--surface);min-width:0;color:var(--text);font:inherit;font-size:clamp(11px, calc(100cqi / var(--size) * .14), 22px);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;justify-content:center;align-items:center;padding:6%;font-weight:600;line-height:1.2;transition:background .15s;display:flex;position:relative}@media (hover:hover){.cell:hover{background:color-mix(in srgb, var(--marker) 5%, var(--surface))}}.cell:active{background:color-mix(in srgb, var(--marker) 10%, var(--surface))}.cell:focus-visible{outline:2px solid var(--muted);outline-offset:-4px}.cell__text{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;text-align:center}.cell--empty{background:repeating-linear-gradient(-45deg, transparent 0 8px, color-mix(in srgb, var(--grid-line) 35%, transparent) 8px 9px), var(--surface)}.sketch-circle{pointer-events:none;width:92%;height:92%;position:absolute;inset:4%;overflow:visible}.sketch-circle path,.strike{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:.35s ease-out forwards draw}.sketch-circle path{stroke:var(--marker);stroke-width:4.5px}.strike{stroke:var(--strike);stroke-width:7px;animation-duration:.5s}@keyframes draw{to{stroke-dashoffset:0}}.board--x{border-color:var(--marker)}.board--blackout{border-color:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 35%, transparent), var(--shadow)}.achievements{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.badges{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.badge{border:1px dashed var(--border);color:var(--muted);border-radius:999px;padding:4px 12px;font-size:.9rem}.badge--done{border-style:solid;border-color:var(--marker);color:var(--marker);font-weight:700}.celebration{background:var(--surface);border:3px solid var(--marker);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow);text-align:center;cursor:pointer;z-index:10;border-radius:20px;padding:18px 32px;animation:.45s cubic-bezier(.2,1.6,.4,1) pop;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}.celebration__title{color:var(--marker);letter-spacing:.02em;text-transform:uppercase;font-size:2.5rem;font-weight:900}.celebration__detail{color:var(--muted)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)rotate(-6deg)}}@media (width<=480px){#root{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}h1{font-size:2rem}.long{display:none}.short{display:inline}.view--setup{min-height:calc(100svh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.entries{resize:none;flex:1;min-height:200px}.setup__actions{bottom:max(12px, env(safe-area-inset-bottom));flex-direction:column-reverse;position:sticky}.setup__actions .btn,.warning__actions .btn{flex:1;padding:14px 18px}.setup__actions .btn--ghost{background:var(--bg)}.setup__actions .btn--primary{box-shadow:var(--shadow)}.checkbox input{width:20px;height:20px}.view--play{gap:12px}.toolbar .btn--ghost{min-height:44px;padding:10px 12px}.board{border-radius:8px;max-width:max(280px,100svh - 150px)}.cell{-webkit-hyphens:auto;hyphens:auto;padding:4%}.achievements{flex-direction:column;align-items:flex-start}.celebration{padding:14px 20px}.celebration__title{font-size:2rem}}@media (height<=500px) and (orientation:landscape){#root{padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom))}.view--play{grid-template-rows:auto 1fr;grid-template-columns:auto minmax(180px,1fr);gap:8px 16px;max-width:none;display:grid}.view--play .board{width:calc(100svh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));grid-area:1/1/span 2;max-width:none}.view--play .toolbar{flex-wrap:wrap;grid-column:2}.view--play .achievements{flex-direction:column;grid-column:2;align-self:start;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.sketch-circle path,.strike{stroke-dashoffset:0;animation:none}.celebration{animation:none}}
