@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #F9FAFB;--surface: #FFFFFF;--border: #E5E7EB;--border-subtle: #F3F4F6;--text: #111827;--text-2: #6B7280;--text-3: #9CA3AF;--accent: oklch(.52 .22 254);--accent-hover: oklch(.45 .22 254);--accent-soft: oklch(.97 .03 254);--accent-mid: oklch(.9 .06 254);--error: oklch(.55 .2 25);--error-soft: oklch(.97 .03 25);--success: oklch(.55 .18 145);--success-soft: oklch(.97 .03 145);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--font: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", monospace}main.sn-container{padding:0;max-width:100%;margin:0}.sn-footer{display:none}#app-root{font-family:var(--font);background:var(--bg);color:var(--text)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes celebrate{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.center-screen{height:100vh;display:flex;align-items:center;justify-content:center}.loading-text{font-family:var(--mono);color:var(--text-3);font-size:13px}.menu{min-height:calc(100vh - 344px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;animation:fadeIn .3s ease}.menu-header{margin-bottom:48px;text-align:center}.logo-square{width:56px;height:56px;background:var(--text);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.brand{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.title{font-size:36px;font-weight:600;letter-spacing:-.03em;color:var(--text)}.subtitle{font-size:14px;color:var(--text-2);margin-top:6px}.level-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.level-btn{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;font-family:var(--font);transition:all .15s;text-align:left}.level-btn:hover{border-color:var(--level-color, var(--accent));box-shadow:var(--shadow-md)}.level-btn:hover .level-label{color:var(--level-color, var(--accent))}.level-label{font-size:16px;font-weight:600;color:var(--text);transition:color .15s;letter-spacing:-.01em}.level-desc{font-size:12px;color:var(--text-3);margin-top:2px}.level-best{text-align:right;font-family:var(--mono);color:var(--text-3)}.best-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.best-time{font-size:12px}.arrow{font-size:18px;color:var(--border)}.hint{margin-top:40px;font-size:12px;color:var(--text-3);font-family:var(--mono)}.hint-sm{margin-top:8px;font-size:11px}.game{min-height:calc(100vh - 344px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 16px 32px;animation:fadeIn .25s ease}.game-header{width:100%;max-width:420px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.link-btn{background:none;border:none;cursor:pointer;font-family:var(--font);font-size:13px;color:var(--text-2);padding:0}.diff-pill{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;background:var(--surface);border:1px solid;border-radius:var(--radius-sm)}.stats{width:100%;max-width:420px;display:flex;gap:0;margin-bottom:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.stat{flex:1;padding:12px 0;text-align:center;border-right:1px solid var(--border)}.stat:last-child{border-right:none}.stat-label{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-bottom:3px}.stat-value{font-size:15px;font-weight:600;font-family:var(--mono);color:var(--text)}.board{width:100%;max-width:420px;aspect-ratio:1;background:var(--surface);border:2px solid var(--text);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;display:grid;grid-template-rows:repeat(9,1fr);transition:box-shadow .3s}.board.won{box-shadow:0 0 0 3px var(--success);animation:celebrate .5s ease}.board-row{display:grid;grid-template-columns:repeat(9,1fr);border-bottom:1px solid var(--border)}.board-row:last-child{border-bottom:none}.board-row.thick{border-bottom:2px solid var(--text)}.cell{display:flex;align-items:center;justify-content:center;cursor:pointer;border-right:1px solid var(--border);transition:background .1s;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cell:last-child{border-right:none}.cell.thick-r{border-right:2px solid var(--text)}.cell.shake{animation:shake .4s ease}.cell-num{font-size:clamp(14px,3.5vw,22px);font-family:var(--mono);line-height:1}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:90%;height:90%}.note{display:flex;align-items:center;justify-content:center;font-size:clamp(6px,1.2vw,8px);font-family:var(--mono);color:var(--text-3);line-height:1}.note-grid.on-selected .note{color:#fffc}.numpad{margin-top:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:10px}.num-row{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.num-btn{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-family:var(--mono);font-size:18px;font-weight:600;color:var(--text);box-shadow:var(--shadow-sm);transition:all .1s}.num-btn:disabled{color:var(--border);cursor:default}.num-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.action-btn{padding:11px 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-2);box-shadow:var(--shadow-sm);transition:all .12s}.action-btn:hover{background:var(--bg)}.action-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.win-banner{margin-top:24px;width:100%;max-width:420px;background:var(--surface);border:1px solid var(--success);border-radius:var(--radius-lg);padding:28px 24px;box-shadow:var(--shadow-md);animation:fadeIn .4s ease;text-align:center}.win-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--success);margin-bottom:8px}.win-time{font-size:32px;font-weight:600;font-family:var(--mono);letter-spacing:-.02em;color:var(--text);margin-bottom:4px}.new-best{font-size:12px;color:var(--success);font-weight:500;margin-bottom:12px}.win-actions{display:flex;gap:8px;margin-top:20px}.btn-secondary{flex:1;padding:11px 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-2)}.btn-primary{flex:2;padding:11px 0;border:none;border-radius:var(--radius-md);background:var(--text);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;color:#fff}.best-wrap{display:flex;flex-direction:column;align-items:flex-end}
