:root{--bg:#fff;--bg-soft:#f6f6fa;--bg-card:#fff;--text:#14141f;--text-muted:#6a6a7d;--text-faint:#9a9aae;--border:#e6e6ef;--grid-line:#c8c8d8;--grid-line-strong:#9a9ab0;--accent:#5b5be0;--accent-hover:#4a4ad0;--accent-soft:#eeeefc;--accent-contrast:#fff;--cell-empty:#fff;--cell-filled:#14141f;--cell-mark:#c0c0d0;--cell-hint:#f0f0f7;--ink:var(--cell-filled);--radius-sm:6px;--radius:12px;--radius-lg:20px;--shadow-sm:0 1px 2px #14141f0f;--shadow:0 8px 24px #14141f14;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--page-max:720px}[data-theme=dark]{--bg:#12121c;--bg-soft:#191926;--bg-card:#1c1c2b;--text:#eeeef6;--text-muted:#9d9db4;--text-faint:#6c6c85;--border:#2a2a3c;--grid-line:#3a3a52;--grid-line-strong:#56566f;--accent:#8b8bff;--accent-hover:#a0a0ff;--accent-soft:#24243a;--accent-contrast:#12121c;--cell-empty:#1c1c2b;--cell-filled:#eeeef6;--cell-mark:#5a5a75;--cell-hint:#23233a;--shadow-sm:0 1px 2px #0006;--shadow:0 8px 24px #00000073}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-ink]{--ink:hsl(var(--ink-h), 62%, 26%)}[data-theme=dark][data-ink]{--ink:hsl(var(--ink-h), 66%, 64%)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0;font-size:16px;line-height:1.65}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.25}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}img,svg{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.topbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);display:flex}.brand{align-items:center;gap:var(--space-2);letter-spacing:-.02em;font-size:1.05rem;font-weight:700;display:flex}.brand-mark{background:var(--accent);border-radius:6px;width:22px;height:22px;box-shadow:inset -5px -5px #ffffff52}.brand-tag{color:var(--accent);background:var(--accent-soft);letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.footer{padding-top:var(--space-5);text-align:center;color:var(--text-faint);margin-top:auto;font-size:.78rem;line-height:1.6}.topbar-right{align-items:center;gap:var(--space-2);display:flex}.streak-chip{font-family:var(--font-mono);color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:700;line-height:1}.mode-wrap{align-items:center;display:flex;position:relative}.mode-btn{letter-spacing:.01em;color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border);touch-action:manipulation;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:700;transition:color .15s,background-color .15s}.mode-btn:hover{color:var(--text);background:var(--bg-soft)}.mode-btn.is-practice{color:var(--accent);background:var(--accent-soft);box-shadow:none}.level-pop{z-index:60;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:240px;box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:6px;animation:.16s both rise;display:flex;position:absolute;top:calc(100% + 10px);right:0}.level-pop[hidden]{display:none}.level-item{border-radius:var(--radius-sm);text-align:left;touch-action:manipulation;flex-direction:column;gap:1px;width:100%;padding:8px 10px;transition:background-color .12s;display:flex}.level-item:hover{background:var(--bg-soft)}.level-item.is-active{background:var(--accent-soft)}.level-name{color:var(--text);font-size:.84rem;font-weight:700}.level-blurb{color:var(--text-faint);font-size:.7rem}.level-item.is-active .level-name{color:var(--accent)}.level-item.is-active .level-blurb{color:var(--accent);opacity:.75}.level-divider{background:var(--border);height:1px;margin:4px 6px}.theme-btn{border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);touch-action:manipulation;background:0 0;border-radius:999px;flex:none;place-items:center;padding:0;transition:background-color .15s,color .15s;display:grid}.theme-btn:hover{background:var(--bg-soft);color:var(--text)}.theme-icon{width:15px;height:15px}.theme-icon-sun{display:none}[data-theme=dark] .theme-icon-sun{display:block}[data-theme=dark] .theme-icon-moon{display:none}.info-page{max-width:var(--page-max);padding:0 var(--space-4) var(--space-6);flex-direction:column;margin:0 auto;display:flex}.info{padding-top:var(--space-5);border-top:1px solid var(--border)}.page-title,.daily-page h1{margin:0 0 var(--space-2);letter-spacing:-.01em;font-size:1.22rem;font-weight:650;line-height:1.4}.page-title{margin-top:var(--space-6);margin-bottom:0}.info h2{font-size:1.08rem}.info-lead{margin-top:var(--space-2);color:var(--text-muted);font-size:.94rem}.info-steps{margin:var(--space-4) 0 0;gap:var(--space-3);color:var(--text-muted);padding-left:1.15rem;font-size:.92rem;line-height:1.6;display:grid}.info-steps strong{color:var(--text)}.info p+p{margin-top:var(--space-3);color:var(--text-muted);font-size:.92rem;line-height:1.6}.info code{font-family:var(--font-mono);color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:1px 5px;font-size:.85em}.faq{margin:var(--space-4) 0 0;font-size:.92rem;line-height:1.6}.faq dt{margin-top:var(--space-4);color:var(--text);font-weight:700}.faq dt:first-child{margin-top:0}.faq dd{color:var(--text-muted);margin:2px 0 0}.discussion-slot{margin-top:var(--space-4);min-height:60px}.discussion-slot .giscus,.discussion-slot .giscus-frame{border:none;width:100%}.discussion-hint{padding:var(--space-4);border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg-soft)}.discussion-hint-title{color:var(--text);font-size:.84rem;font-weight:700}.discussion-hint-steps{margin:var(--space-2) 0 0;gap:var(--space-2);color:var(--text-muted);padding-left:1.15rem;font-size:.8rem;line-height:1.55;display:grid}.daily-page h2{margin:0 0 var(--space-2);letter-spacing:-.01em;font-size:1.05rem}.daily-page-lead{margin:0 0 var(--space-4);color:var(--text-muted);font-size:.85rem;line-height:1.6}.daily-page-lead a{color:var(--accent);font-weight:600}.daily-page-clues{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.daily-page-clues h3{margin:0 0 var(--space-2);color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.daily-page-clues ol{max-height:300px;font-family:var(--font-mono);color:var(--text);margin:0;padding:0 0 0 1.4em;font-size:.72rem;line-height:1.9;overflow-y:auto}.daily-page-nav{margin:var(--space-4) 0 0;font-size:.78rem}.daily-page-nav a{color:var(--accent);font-weight:600}.catalog-theme{margin-bottom:var(--space-4)}.catalog-theme:last-child{margin-bottom:0}.catalog-theme-name{letter-spacing:-.01em;margin:0 0 2px;font-size:.8rem;font-weight:700}.catalog-theme-blurb{margin:0 0 var(--space-2);color:var(--text-faint);font-size:.68rem}.catalog-list{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.catalog-item{border-radius:var(--radius-sm);background:var(--bg-soft);box-shadow:inset 0 0 0 1px var(--border);text-align:left;cursor:pointer;border:0;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 9px;transition:background .15s,box-shadow .15s,transform .12s;display:flex}.catalog-item:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);transform:translateY(-1px)}.catalog-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.catalog-item-name{color:var(--text);font-size:.74rem;font-weight:600}.catalog-item-size{font-size:.6rem;font-family:var(--font-mono);color:var(--text-faint)}.page{max-width:720px;padding:var(--space-4) var(--space-4) var(--space-6);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.date-label{color:var(--text-muted);font-size:.82rem;font-weight:600;font-family:var(--font-mono);letter-spacing:.02em;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;padding:4px 8px;transition:background .15s,color .15s}.date-label:hover{color:var(--text);background:var(--bg-soft)}.date-label:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.date-label.is-archive{color:var(--accent);background:var(--accent-soft)}.board-slot{min-height:300px;padding:var(--space-2) 0;justify-content:center;align-items:center;display:flex}.board-loading,.board-error{text-align:center;padding:var(--space-6) var(--space-4);line-height:1.6}.board-loading{color:var(--text-muted);font-size:.9rem}.board-error{max-width:360px;margin:0 auto}.board-error-title{color:var(--text);font-size:.95rem;font-weight:600}.board-error-detail{font-family:var(--font-mono);color:var(--text-faint);word-break:break-word;margin-top:6px;font-size:.72rem}.retry-btn{margin-top:var(--space-4);background:var(--accent);color:var(--accent-contrast);touch-action:manipulation;border-radius:999px;padding:9px 22px;font-size:.84rem;font-weight:600;transition:background-color .15s}.retry-btn:hover:not(:disabled){background:var(--accent-hover)}.retry-btn:disabled{opacity:.6;cursor:default}.board{border:2px solid var(--grid-line-strong);border-radius:var(--radius-sm);background:var(--cell-empty);box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;display:grid;overflow:hidden}.corner{background:var(--bg-soft);border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line)}.clue{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-soft);justify-content:center;align-items:center;font-size:.7rem;font-weight:600;line-height:1;transition:opacity .2s,color .2s;display:flex}.clue-col{border-bottom:1px solid var(--grid-line);flex-direction:column;justify-content:flex-end;gap:1px;padding-bottom:3px}.clue-row{border-right:1px solid var(--grid-line);flex-direction:row;justify-content:flex-end;gap:2px;padding-right:4px}.clue.is-done{opacity:.28}.cell{background:var(--cell-empty);border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);cursor:pointer;transition:background-color .1s;position:relative}.cell.is-filled{background:var(--ink)}.cell.is-marked:before{content:"";background:linear-gradient(to bottom right, transparent calc(50% - 1px), var(--cell-mark) calc(50% - 1px), var(--cell-mark) calc(50% + 1px), transparent calc(50% + 1px)) no-repeat, linear-gradient(to bottom left, transparent calc(50% - 1px), var(--cell-mark) calc(50% - 1px), var(--cell-mark) calc(50% + 1px), transparent calc(50% + 1px)) no-repeat;background-size:100% 100%,100% 100%;position:absolute;inset:22%}.cell.group-end-x,.clue.group-end-x{border-right:2px solid var(--grid-line-strong)}.cell.group-end-y,.clue.group-end-y{border-bottom:2px solid var(--grid-line-strong)}.cell.no-right{border-right:none}.cell.no-bottom{border-bottom:none}.board.is-solved .cell.is-filled{background:var(--accent);transition:background-color .7s,transform .35s}.board.is-solved .cell.is-marked:before{opacity:.3}.board.is-solved .clue{opacity:.18}.hud{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);flex-wrap:wrap;display:flex}.tool,.reset-btn,.hud-stat{touch-action:manipulation}.hud-stat{flex-direction:column;gap:1px;display:flex}.hud-label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);font-size:.66rem;font-weight:700}.hud-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);font-size:1.05rem;font-weight:600}.tools{background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex;position:relative}.ink-wrap{align-items:center;display:flex}.ink-btn{border:1px solid var(--border);background:var(--ink);touch-action:manipulation;border-radius:8px;width:26px;height:26px;margin-left:3px;padding:0;transition:transform .12s,box-shadow .15s}.ink-btn:hover{transform:scale(1.06)}.ink-btn:active{transform:scale(.94)}.ink-btn.is-custom{box-shadow:inset 0 0 0 2px var(--bg-soft)}.ink-pop{z-index:40;gap:var(--space-3);width:238px;padding:var(--space-3) var(--space-3) var(--space-2);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;animation:.18s both rise;display:flex;position:absolute;bottom:calc(100% + 12px);right:-4px}.ink-pop[hidden]{display:none}.ink-title{letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);font-size:.66rem;font-weight:700}.ink-range{appearance:none;cursor:pointer;touch-action:manipulation;background:linear-gradient(90deg,#dd2c2c,#db9e24,#96ba2c,#2ba148,#26aac5,#6952e0,#d93ad9,#dd2c2c);border-radius:999px;outline:none;width:100%;height:18px;padding:0;box-shadow:inset 0 0 0 1px #0000001f}.ink-range::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:2px solid #14141f4d;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #14141f59}.ink-range::-moz-range-thumb{background:#fff;border:2px solid #14141f4d;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 4px #14141f59}.ink-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ink-presets{gap:5px;display:flex}.ink-dot{touch-action:manipulation;border:1px solid #14141f29;border-radius:999px;width:18px;height:18px;padding:0;transition:transform .12s,box-shadow .12s}.ink-dot:hover{transform:scale(1.12)}.ink-dot.is-active{box-shadow:0 0 0 2px var(--bg-card), 0 0 0 3.5px var(--text-muted)}.ink-reset{border-radius:var(--radius-sm);color:var(--text-muted);touch-action:manipulation;flex:none;padding:4px 8px;font-size:.72rem;font-weight:600;transition:color .15s,background-color .15s}.ink-reset:hover{color:var(--text);background:var(--bg-soft)}.ink-reset.is-active{color:var(--accent);background:var(--accent-soft)}.tool{color:var(--text-muted);border-radius:999px;padding:6px 16px;font-size:.82rem;font-weight:600;transition:color .15s,background-color .15s}.tool.is-active{background:var(--bg-card);color:var(--text);box-shadow:var(--shadow-sm)}.reset-btn{color:var(--text-muted);border-radius:var(--radius-sm);padding:8px 14px;font-size:.82rem;font-weight:600;transition:color .15s,background-color .15s}.reset-btn:hover{color:var(--text);background:var(--bg-soft)}.result-btn,.result-btn:hover{color:var(--accent);background:var(--accent-soft)}.win-overlay{z-index:50;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c0c1673;flex-direction:column;animation:.25s both fade-in;display:flex;position:fixed;inset:0}.win-overlay[hidden]{display:none}.win-card{width:100%;max-width:330px;max-height:calc(100dvh - 150px);padding:var(--space-5) var(--space-5) var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);text-align:center;animation:.4s cubic-bezier(.2,.85,.3,1) both rise;overflow-y:auto;box-shadow:0 24px 64px #00000047}.win-badge{margin-bottom:var(--space-3);background:var(--accent-soft);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:4px 12px;font-size:.68rem;font-weight:700;display:inline-block}.win-card h2{margin-bottom:var(--space-2);font-size:1.45rem}.win-meta{font-family:var(--font-mono);color:var(--text-muted);font-size:.9rem}.win-sub{margin-top:var(--space-3);color:var(--text-faint);font-size:.8rem}.win-btn{margin-top:var(--space-4);background:var(--accent);color:var(--accent-contrast);border-radius:999px;padding:10px 26px;font-size:.88rem;font-weight:600;transition:background-color .15s}.win-btn:hover{background:var(--accent-hover)}.win-btn.is-ghost{color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border);background:0 0;margin-top:0}.win-btn.is-ghost:hover{background:var(--bg-soft);color:var(--text)}.win-actions{margin-top:var(--space-4);flex-direction:column;gap:8px;display:flex}.win-actions .win-btn{margin-top:0}.win-row{gap:8px;display:flex}.win-row .win-btn{flex:1;padding:9px 12px;font-size:.82rem}.win-spoiler{margin-top:var(--space-4);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;font-size:.76rem;display:flex}.win-spoiler input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0}.win-close{color:#ffffffd9;touch-action:manipulation;border-radius:999px;padding:8px 22px;font-size:.8rem;font-weight:600}.win-close:hover{color:#fff}.win-streak{color:var(--accent);margin-top:8px;font-size:.82rem;font-weight:600}.win-badge-banner{margin-bottom:var(--space-3);color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 12px;font-size:.74rem;font-weight:700;animation:.5s cubic-bezier(.2,.9,.3,1.3) both badge-pop;display:inline-block}.win-badge-banner[hidden]{display:none}.win-stars{justify-content:center;align-items:center;gap:8px;margin:10px 0 6px;display:flex}.win-star{width:26px;height:26px;fill:var(--border);transition:fill .25s}.win-star.is-on{fill:#f6b93b;filter:drop-shadow(0 2px 6px #f6b93b66);animation:.45s cubic-bezier(.2,.9,.3,1.5) both star-pop}.win-perfect,.win-best{letter-spacing:.01em;margin-top:6px;font-size:.78rem;font-weight:700}.win-perfect{color:var(--text-muted)}.win-best{color:#e0912a}.win-perfect[hidden],.win-best[hidden]{display:none}.badge-shelf{margin-top:var(--space-4);justify-content:center;gap:8px;display:flex}.badge-dot{border:1px dashed var(--border);width:30px;height:30px;font-family:var(--font-mono);color:var(--text-faint);-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;font-size:.68rem;font-weight:700;display:grid}.badge-dot.is-earned{color:var(--accent-contrast);background:var(--accent);border:1px solid #0000}.badge-dot.is-new{animation:.55s cubic-bezier(.2,.9,.3,1.4) both badge-pop}.win-calendar{margin-top:var(--space-4)}.calendar{grid-template-columns:repeat(7,1fr);justify-items:center;gap:4px;display:grid}.calendar-head{color:var(--text-faint);letter-spacing:.06em;font-size:.58rem;font-weight:700}.calendar-day{aspect-ratio:1;background:var(--bg-soft);width:100%;max-width:24px;box-shadow:inset 0 0 0 1px var(--border);font:inherit;color:inherit;border:0;border-radius:4px;padding:0}button.calendar-day{cursor:pointer;transition:transform .12s,box-shadow .12s}button.calendar-day:hover{box-shadow:inset 0 0 0 1px var(--accent);transform:translateY(-1px)}button.calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-day.is-solved{background:var(--accent);box-shadow:none}.calendar-day.is-today{box-shadow:0 0 0 2px var(--accent)}.calendar-day.is-active{box-shadow:0 0 0 2px var(--text)}.calendar-day.is-future,.calendar-day.is-empty{opacity:.3}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-25deg)}60%{opacity:1;transform:scale(1.25)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes badge-pop{0%{opacity:0;transform:scale(.5)}65%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.sheet-overlay{z-index:60;padding:var(--space-4);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c0c1680;justify-content:center;align-items:center;animation:.2s both fade-in;display:flex;position:fixed;inset:0}.sheet-overlay[hidden]{display:none}.sheet-card{width:100%;max-width:340px;max-height:calc(100dvh - 80px);padding:var(--space-4) var(--space-4) var(--space-5);background:var(--bg-card);border-radius:var(--radius-lg);animation:.3s cubic-bezier(.2,.85,.3,1) both rise;overflow-y:auto;box-shadow:0 24px 64px #00000047}.sheet-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.sheet-title{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:700}.sheet-close{background:var(--bg-soft);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.sheet-close svg{width:15px;height:15px}.sheet-close:hover{color:var(--text);background:var(--border)}.sheet-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sheet-lead{margin:6px 0 var(--space-4);color:var(--text-muted);font-size:.78rem;line-height:1.5}.archive-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.archive-month{letter-spacing:-.01em;font-size:.85rem;font-weight:700}.archive-nav{border-radius:var(--radius-sm);background:var(--bg-soft);width:28px;height:28px;color:var(--text);cursor:pointer;border:0;padding:0;font-size:1rem;line-height:1;transition:background .15s,opacity .15s}.archive-nav:hover:not(:disabled){background:var(--border)}.archive-nav:disabled{opacity:.3;cursor:default}.archive-nav:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.archive-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.archive-weekday{color:var(--text-faint);letter-spacing:.06em;text-align:center;padding-bottom:2px;font-size:.58rem;font-weight:700}.archive-blank{aspect-ratio:1}.archive-day{aspect-ratio:1;background:var(--bg-soft);box-shadow:inset 0 0 0 1px var(--border);color:var(--text);font-size:.68rem;font-family:var(--font-mono);cursor:pointer;border:0;border-radius:5px;padding:0;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s}.archive-day:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--accent);transform:translateY(-1px)}.archive-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.archive-day.is-solved{background:var(--accent);color:#fff;box-shadow:none}.archive-day.is-today{box-shadow:0 0 0 2px var(--accent)}.archive-day.is-active{box-shadow:0 0 0 2px var(--text)}.archive-day.is-future,.archive-day.is-empty{opacity:.26;cursor:default}.archive-foot{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.archive-today{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);cursor:pointer;border:0;padding:5px 10px;font-size:.7rem;font-weight:700}.archive-today:hover{background:var(--accent);color:#fff}.archive-today:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.archive-hint{color:var(--text-faint);text-align:right;font-size:.66rem}.archive-loading{padding:var(--space-5) 0;color:var(--text-muted);text-align:center;margin:0;font-size:.8rem}.hint-btn:disabled{opacity:.45;cursor:default}.cell.hint-fill{box-shadow:inset 0 0 0 2px var(--accent);animation:.7s 4 hint-pulse}.cell.hint-wrong{animation:.7s 4 hint-pulse;box-shadow:inset 0 0 0 2px #e05252}@keyframes hint-pulse{50%{transform:scale(.82)}}.win-hint-note{color:var(--text-faint);margin:4px 0 0;font-size:.72rem}.onboard-bar{justify-content:space-between;align-items:center;gap:var(--space-3);margin:0 0 var(--space-2);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);padding:9px 12px;font-size:.76rem;line-height:1.4;display:flex}.onboard-bar[hidden]{display:none}.onboard-skip{color:var(--accent);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:2px 4px;font-size:.72rem;font-weight:700}.onboard-skip:hover{text-decoration:underline}.onboard-skip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
