:root{--bg-a: #e9dcff;--bg-b: #f6e6ef;--bg-c: #ffe4d6;--ink: #2f2740;--ink-soft: #7d6f9a;--ink-faint: #9a8bb8;--card: rgba(255, 255, 255, .75);--card-solid: #fffdfd;--card-shadow: 0 8px 24px rgba(74, 60, 107, .1);--pill: rgba(255, 255, 255, .7);--pill-hover: rgba(255, 255, 255, .95);--cell: rgba(255, 255, 255, .8);--found: #c9b8f5;--found-ink: #2f2740;--w1: #c9b8f5;--w2: #b3e4d2;--w3: #b9d6f6;--w4: #ffcdb3;--w5: #f3e3a6;--sel: #4a3c6b;--sel-ink: #ffffff;--hint: #8fcfbf;--blank: rgba(74, 60, 107, .25);--accent: #4a3c6b;--button: #4a3c6b;--button-ink: #ffffff;--radius: 22px;--font-display: "Outfit", "Segoe UI", system-ui, -apple-system, sans-serif;--font-body: "DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg-a: #241b3a;--bg-b: #2b1f36;--bg-c: #34222c;--ink: #f1ecff;--ink-soft: #b3a6d1;--ink-faint: #8f82ad;--card: rgba(255, 255, 255, .08);--card-solid: #2f2543;--card-shadow: 0 8px 24px rgba(0, 0, 0, .25);--pill: rgba(255, 255, 255, .1);--pill-hover: rgba(255, 255, 255, .18);--cell: rgba(255, 255, 255, .1);--found: #7c63c9;--found-ink: #f1ecff;--w1: #7c63c9;--w2: #3f8f78;--w3: #4a7fb5;--w4: #b8683f;--w5: #a98a2c;--sel: #f1ecff;--sel-ink: #2a1f3d;--hint: #7fd1bb;--blank: rgba(241, 236, 255, .25);--accent: #d9ccff;--button: #d9ccff;--button-ink: #2a1f3d;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{background:linear-gradient(160deg,var(--bg-a) 0%,var(--bg-b) 45%,var(--bg-c) 100%) fixed;color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.4;min-height:100svh;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.app{max-width:460px;margin:0 auto;padding:16px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.top{display:flex;align-items:center;gap:10px}.back{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:-8px;border:0;background:none;border-radius:50%;color:var(--ink);cursor:pointer;flex-shrink:0}.back:hover{background:var(--pill)}.brand{margin:0;font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.3px;color:var(--accent);flex:1;min-width:0;overflow:hidden;white-space:nowrap}.top-actions{display:flex;gap:4px;align-items:center}.pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 10px;border:0;border-radius:999px;background:var(--pill);color:var(--accent);font:600 13px var(--font-body);white-space:nowrap;flex-shrink:0}.pill-button{cursor:pointer}.pill-button:hover{background:var(--pill-hover)}.pill-button:disabled{opacity:.45;cursor:default;background:var(--pill)}.pill-icon{padding:6px 9px}.pill-streak.is-zero{color:var(--ink-faint)}.screen{display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:6px}.card-label{font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-faint)}.card-date{margin:0;font-size:14px;color:var(--ink-soft)}.card-theme,.card-title{margin:0;font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--ink)}.card-state{margin:0;font-size:14px;color:var(--ink-soft)}.card .btn{align-self:flex-start;margin-top:6px}.card-archive .btn-secondary{background:var(--pill);color:var(--accent)}.card-archive .btn-secondary:hover{background:var(--pill-hover)}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:var(--card);border-radius:var(--radius);padding:14px 6px;box-shadow:var(--card-shadow)}.stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.stat-value{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--accent)}.stat-label{font-size:11px;color:var(--ink-soft);text-align:center}.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cal-title{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;text-align:center;flex:1}.cal-title:first-letter{text-transform:uppercase}.cal-nav{width:36px;height:36px;flex-shrink:0;border:0;border-radius:50%;background:var(--pill);color:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer}.cal-nav:hover{background:var(--pill-hover)}.cal-nav:disabled{opacity:.35;cursor:default;background:var(--pill)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;font-weight:600;color:var(--ink-faint)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 2px}.cal-day{position:relative;aspect-ratio:1;min-width:0;border:0;border-radius:50%;background:var(--cell);color:var(--ink);font:600 14px var(--font-body);cursor:pointer}.cal-day:hover:not(:disabled){background:var(--pill-hover)}.cal-day:disabled{cursor:default}.cal-day.is-outside{visibility:hidden}.cal-day.is-future,.cal-day.is-before-start{background:none;color:var(--ink-faint);opacity:.55}.cal-day.is-started{background:none;box-shadow:inset 0 0 0 2px var(--hint)}.cal-day.is-solved{background:var(--found);color:var(--found-ink);font-weight:700}.cal-day.is-today{background:var(--sel);color:var(--sel-ink);font-weight:700}.cal-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:4px 0 0;font-size:12px;color:var(--ink-soft)}.cal-legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.dot-solved{background:var(--found)}.dot-started{box-shadow:inset 0 0 0 2px var(--hint)}.dot-today{background:var(--sel)}.play-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.play-head .date{flex:1;min-width:0;margin:0}.badge-archive{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--pill);color:var(--accent);font:600 12px var(--font-body);letter-spacing:.3px;text-transform:uppercase;flex-shrink:0}.done-archive-note{margin:8px 0 0;font-size:13px;color:var(--ink-soft);font-style:italic}.date{margin:0;font-size:14px;color:var(--ink-soft)}.theme{background:var(--card);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.theme-label{display:block;font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-faint)}.theme-name{margin:2px 0 0;font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.2}.status{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:22px}.progress{font-size:14px;color:var(--ink-soft);white-space:nowrap}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.chips li{animation:chip-in .22s ease-out}.chip{font:600 13px var(--font-body);padding:4px 10px;border:0;border-radius:999px;background:var(--found);color:var(--found-ink);cursor:pointer;transition:opacity .16s ease,transform .12s ease}.chip.wc-1{background:var(--w1)}.chip.wc-2{background:var(--w2)}.chip.wc-3{background:var(--w3)}.chip.wc-4{background:var(--w4)}.chip.wc-5{background:var(--w5)}.chip[aria-pressed=true]{transform:scale(1.06);box-shadow:0 0 0 2px var(--accent)}.chip.is-dim{opacity:.4}@keyframes chip-in{0%{opacity:0;transform:translateY(4px)}}.current{min-height:30px;font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:6px;text-align:center;text-indent:6px;color:var(--accent)}.board-wrap{display:flex;justify-content:center}.board{--cols: 6;--rows: 8;position:relative;width:min(100%,calc((100svh - 360px) * var(--cols) / var(--rows)),420px);min-width:240px;aspect-ratio:var(--cols) / var(--rows);display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);touch-action:none;user-select:none;-webkit-user-select:none}.lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.lines polyline{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:.16;transition:opacity .16s ease}.lines .l-found{stroke:var(--found)}.lines .l-found.wc-1{stroke:var(--w1)}.lines .l-found.wc-2{stroke:var(--w2)}.lines .l-found.wc-3{stroke:var(--w3)}.lines .l-found.wc-4{stroke:var(--w4)}.lines .l-found.wc-5{stroke:var(--w5)}.lines .l-found.is-dim{opacity:.18}.lines .l-sel{stroke:var(--sel);stroke-width:.2}.cell{position:relative;z-index:1;place-self:center;width:78%;aspect-ratio:1;margin:0;padding:0;border:0;border-radius:50%;background:var(--cell);color:var(--ink);font:700 clamp(18px,6vw,26px) var(--font-display);line-height:1;cursor:pointer;transition:background-color .12s ease,color .12s ease,transform .12s ease}.cell:focus-visible{outline:2px solid var(--hint);outline-offset:2px}.cell.is-found{background:var(--found);color:var(--found-ink);transition:background-color .12s ease,color .12s ease,opacity .16s ease}.cell.is-found[data-wc="1"]{background:var(--w1)}.cell.is-found[data-wc="2"]{background:var(--w2)}.cell.is-found[data-wc="3"]{background:var(--w3)}.cell.is-found[data-wc="4"]{background:var(--w4)}.cell.is-found[data-wc="5"]{background:var(--w5)}.cell.is-found.is-start{box-shadow:inset 0 0 0 2.5px #2f274047}.cell.is-found.is-dim{opacity:.28}.cell.is-hinted:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px dashed var(--hint)}.cell.is-selected{background:var(--sel);color:var(--sel-ink)}.cell.is-selected:after{display:none}.cell.is-blank{cursor:default;pointer-events:none}.cell.is-blank:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blank);display:block;margin:0 auto}.cell.is-wrong{background:var(--sel);color:var(--sel-ink);animation:shake .26s ease}@keyframes shake{25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}.board.is-locked .cell{cursor:default}.board.has-focus .cell.is-found:not(.is-dim){transform:scale(1.06)}.feedback{margin:0;min-height:22px;text-align:center;font-size:14px;color:var(--ink-soft);transition:opacity .2s ease}.feedback.is-hidden{opacity:0}.done{background:var(--card);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:18px 20px;text-align:center;animation:done-in .32s ease-out}@keyframes done-in{0%{opacity:0;transform:translateY(8px)}}.done-title{margin:0;font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--accent)}.done-streak{margin:8px 0 0;font-size:18px;font-weight:600}.done-meta{margin:4px 0 0;font-size:14px;color:var(--ink-soft)}.done-next{margin:12px 0 0;font-size:14px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.done .btn{margin-top:14px}.screen-ad{display:flex;flex-direction:column;gap:12px}.ad-label{margin:0;font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-faint);text-align:center}.ad-slot{min-height:250px;border-radius:var(--radius);background:var(--card);box-shadow:var(--card-shadow);overflow:hidden;display:flex;align-items:center;justify-content:center}.ad-slot .adsbygoogle{width:100%}.ad-demo{position:relative;width:100%;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;background:repeating-linear-gradient(45deg,transparent 0 12px,rgba(74,60,107,.06) 12px 24px)}.ad-demo strong{font-family:var(--font-display);font-size:22px}.ad-demo small{font-size:13px;color:var(--ink-soft)}.ad-demo-badge{position:absolute;top:10px;right:12px;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--sel);color:var(--sel-ink)}.card-ad .card-tip{margin:6px 0 12px;font-size:14px;color:var(--ink-soft)}.card-ad .btn:disabled{opacity:.55;cursor:default}.banner{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius);background:var(--card-solid);box-shadow:var(--card-shadow);font-weight:600}.banner button,.btn{min-height:40px;padding:8px 16px;border:0;border-radius:999px;background:var(--button);color:var(--button-ink);font:600 14px var(--font-body);cursor:pointer}.error{text-align:center;color:var(--ink-soft)}.error h2{font-family:var(--font-display);font-weight:700;color:var(--ink)}.help{max-width:min(92vw,420px);border:0;border-radius:var(--radius);background:var(--card-solid);color:var(--ink);padding:22px 24px;font-size:15px;box-shadow:var(--card-shadow)}.help::backdrop{background:#2f274073}.help h2{margin:0 0 8px;font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--accent)}.help p{margin:0 0 10px}.help form{margin-top:12px;text-align:right}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-height:640px){.app{gap:8px}.theme-name{font-size:22px}}
