.cell{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-cell-border);background-color:var(--color-cell-bg);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:clamp(1.4rem,2.5vw,2.4rem);font-weight:var(--font-weight-regular);cursor:pointer;user-select:none;position:relative;transition:background-color var(--duration-fast) var(--easing-standard);aspect-ratio:1 / 1;-webkit-tap-highlight-color:transparent}.cell[data-col="2"],.cell[data-col="5"]{border-right:2px solid var(--color-box-border)}.cell[data-row="2"],.cell[data-row="5"]{border-bottom:2px solid var(--color-box-border)}.cell.is-given{background-color:var(--color-cell-given-bg);color:var(--color-cell-given-text);font-weight:var(--font-weight-bold);cursor:default}.cell:not(.is-given).has-value{color:var(--color-cell-user-text)}.cell.is-selected{background-color:var(--color-cell-selected-bg)!important;box-shadow:inset 0 0 0 2px var(--color-cell-selected-ring);z-index:2}.cell.is-peer:not(.is-selected){background-color:var(--color-cell-peer-bg)}.cell.is-same-digit:not(.is-selected):not(.is-peer){background-color:var(--color-cell-same-digit)}.cell.is-conflict:not(.is-selected){background-color:var(--color-cell-conflict-bg)!important;color:var(--color-cell-conflict-text)!important}.cell:focus{outline:none}.cell-pencil{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:1px}.pencil-mark{display:flex;align-items:center;justify-content:center;font-size:clamp(.8rem,1.2vw,1.1rem);font-weight:var(--font-weight-regular);color:var(--color-cell-pencil-text);line-height:1}.numpad{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2);max-width:var(--board-max);margin:0 auto var(--space-4)}@media(min-width:480px){.numpad{grid-template-columns:repeat(10,1fr)}}.num-btn{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;min-height:44px;background:var(--color-bg-surface);color:var(--color-text-primary);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-family-base);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);box-shadow:var(--shadow-sm);-webkit-tap-highlight-color:transparent}.num-btn:hover{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent)}.num-btn:active{transform:scale(.95);background:var(--color-accent);color:var(--color-text-inverse)}.num-btn.erase-btn{font-size:var(--font-size-md);color:var(--color-text-muted)}.num-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus),var(--shadow-sm)}.ad-slot-banner{min-height:var(--ad-banner-h);margin:var(--space-4) auto;max-width:var(--board-max);background:var(--color-bg-subtle);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.ad-slot-leaderboard{min-height:var(--ad-leaderboard-h);margin:var(--space-6) 0;background:var(--color-bg-subtle);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.win-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(2px);padding:var(--space-4)}.win-overlay[hidden]{display:none}.win-card{background:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-8);text-align:center;max-width:360px;width:100%;box-shadow:var(--shadow-lg)}.win-icon{font-size:4.8rem;margin-bottom:var(--space-4);display:block}.win-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-2)}.win-body{color:var(--color-text-secondary);margin-bottom:var(--space-2)}.win-difficulty{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-1)}.win-time{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-accent);margin-bottom:var(--space-6)}.win-time[hidden]{display:none}.win-record{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin:0 auto var(--space-6);padding:var(--space-3) var(--space-4);border-radius:999px;background:linear-gradient(135deg,#fffbebfa,#fef3c7fa);border:1px solid rgba(217,119,6,.28);color:#92400e}.win-record[hidden]{display:none}.win-record-ribbon{display:inline-flex;align-items:center;padding:.42rem .85rem;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff7ed;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;box-shadow:0 10px 24px #ea580c2e}.win-record-current{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:#7c2d12}.win-record-previous{font-size:var(--font-size-sm);text-decoration:line-through;text-decoration-thickness:1.5px;color:#b45309}.win-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.win-share-btn{display:inline-flex;align-items:center;gap:var(--space-2)}.win-share-btn:disabled{opacity:.45;cursor:not-allowed}.win-challenge{margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:linear-gradient(135deg,#fffbebfa,#fef3c7fa);border:1px solid rgba(217,119,6,.28);color:#92400e;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.win-challenge[hidden]{display:none}.win-counter{margin-top:var(--space-3)}.win-counter[hidden]{display:none}.win-counter-btn{width:100%}.win-social-share{display:flex;gap:var(--space-2);justify-content:center;margin-top:var(--space-3)}.social-share-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:1.5px solid var(--color-border-strong);color:var(--color-text-secondary);background:transparent;text-decoration:none;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);flex-shrink:0}.social-share-btn:hover{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}.social-share-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.social-share-btn--wa:hover{background:#dcfce7;color:#16a34a;border-color:#16a34a}[data-theme=dark] .social-share-btn--wa:hover{background:#14532d;color:#4ade80;border-color:#4ade80}@media(prefers-color-scheme:dark){.social-share-btn--wa:hover{background:#14532d;color:#4ade80;border-color:#4ade80}}.content-section{padding-top:var(--space-8);border-top:1px solid var(--color-border)}.content-section h2:first-of-type{margin-top:0}.game-sidebar-content{display:flex;flex-direction:column;gap:var(--space-6)}.sidebar-new-game{width:100%}.sidebar-controls-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sidebar-controls-list li{display:flex;align-items:center;gap:var(--space-2);margin:0}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 4px;background:var(--color-bg-subtle);border:1px solid var(--color-border-strong);border-radius:3px;font-size:1rem;font-family:var(--font-family-mono);color:var(--color-text-secondary);box-shadow:0 1px 0 var(--color-border-strong)}.toast{position:fixed;bottom:var(--space-8);left:50%;transform:translate(-50%);z-index:300;padding:var(--space-3) var(--space-6);background:var(--color-text-primary);color:var(--color-bg-surface);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);pointer-events:none;opacity:0;transition:opacity .2s ease;white-space:nowrap}.toast.is-visible{opacity:1}.challenge-banner[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:linear-gradient(135deg,#fffbebfa,#fef3c7fa);border:1.5px solid rgba(217,119,6,.5);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.challenge-banner[data-astro-cid-j7pv25f6][hidden]{display:none}.challenge-banner-icon[data-astro-cid-j7pv25f6]{font-size:1.4em;flex-shrink:0}.challenge-banner-content[data-astro-cid-j7pv25f6]{flex:1;display:flex;flex-direction:column;gap:2px}.challenge-banner-title[data-astro-cid-j7pv25f6]{font-weight:var(--font-weight-bold);color:#92400e}.challenge-banner-time[data-astro-cid-j7pv25f6]{color:#78350f;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.daily-banner[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-accent-subtle);border:1.5px solid var(--color-accent);border-radius:var(--radius-md);text-decoration:none;color:var(--color-text-primary);font-size:var(--font-size-sm);transition:background var(--duration-fast),border-color var(--duration-fast)}.daily-banner[data-astro-cid-j7pv25f6]:hover{background:var(--color-accent);color:var(--color-text-inverse);text-decoration:none}.daily-banner-icon[data-astro-cid-j7pv25f6]{font-size:1.4em;flex-shrink:0}.daily-banner-text[data-astro-cid-j7pv25f6]{flex:1}.daily-banner-arrow[data-astro-cid-j7pv25f6]{font-size:1.2em;flex-shrink:0;color:var(--color-accent)}.daily-banner[data-astro-cid-j7pv25f6]:hover .daily-banner-arrow[data-astro-cid-j7pv25f6]{color:var(--color-text-inverse)}.resume-banner[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-accent-subtle);border:1.5px solid var(--color-accent);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.resume-banner[data-astro-cid-j7pv25f6][hidden]{display:none}.resume-banner-msg[data-astro-cid-j7pv25f6]{flex:1;min-width:0;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.resume-banner-btns[data-astro-cid-j7pv25f6]{display:flex;gap:var(--space-2);flex-shrink:0}.resume-banner-btn-sm[data-astro-cid-j7pv25f6]{height:32px;padding:0 var(--space-3);font-size:var(--font-size-sm)}.resume-banner-close[data-astro-cid-j7pv25f6]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-base);border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--duration-fast),background var(--duration-fast)}.resume-banner-close[data-astro-cid-j7pv25f6]:hover{color:var(--color-text-primary);background:#00000014}.resume-banner-close[data-astro-cid-j7pv25f6]:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media(max-width:540px){.resume-banner[data-astro-cid-j7pv25f6]{display:grid;grid-template-areas:"msg close" "btns btns";grid-template-columns:1fr auto;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.resume-banner-msg[data-astro-cid-j7pv25f6]{grid-area:msg;align-self:center}.resume-banner-btns[data-astro-cid-j7pv25f6]{grid-area:btns}.resume-banner-close[data-astro-cid-j7pv25f6]{grid-area:close;align-self:start;margin-top:2px}}.game-section[data-astro-cid-j7pv25f6]{margin-bottom:var(--space-8)}.difficulty-bar[data-astro-cid-j7pv25f6]{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.diff-btn[data-astro-cid-j7pv25f6]{height:36px;padding:0 var(--space-4);background:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-pill);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.04em;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);white-space:nowrap}.diff-btn[data-astro-cid-j7pv25f6]:hover{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent)}.diff-btn[data-astro-cid-j7pv25f6].is-active{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.diff-btn[data-astro-cid-j7pv25f6]:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.controls-bar[data-astro-cid-j7pv25f6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);gap:var(--space-4)}.timer-display[data-astro-cid-j7pv25f6]{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-variant-numeric:tabular-nums;min-width:4.5ch;display:block}.controls-group[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.icon-btn[data-astro-cid-j7pv25f6]{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;padding:var(--space-1);background:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family-base);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.icon-btn[data-astro-cid-j7pv25f6]:hover,.icon-btn[data-astro-cid-j7pv25f6].is-active{background:var(--color-accent-subtle);color:var(--color-accent);border-color:var(--color-accent)}.icon-btn[data-astro-cid-j7pv25f6]:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.icon-label[data-astro-cid-j7pv25f6]{font-size:1rem;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;line-height:1}.board-loading[data-astro-cid-j7pv25f6]{display:flex;align-items:center;justify-content:center;min-height:315px;font-size:var(--font-size-base);color:var(--color-text-muted)}.sudoku-board[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);border:2px solid var(--color-box-border);width:100%;max-width:var(--board-max);aspect-ratio:1 / 1;margin:0 auto var(--space-4);border-radius:var(--radius-sm);overflow:hidden;outline:none;box-shadow:var(--shadow-md)}.sudoku-board[data-astro-cid-j7pv25f6]:focus-visible{box-shadow:var(--shadow-focus),var(--shadow-md)}
