:root{--primary:#2563eb;--accent:#16a34a;--bg:#f8f9fa;--surface:#fff;--text:#0d0d0d;--muted:#6b7280;--line:#00000014;--peer:#2563eb0f;--selected:#16a34a1f;--conflict:#dc26261a}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}a{color:inherit;text-decoration:none}button{font-family:inherit}.container{max-width:1080px;margin:0 auto;padding:0 16px 80px}@media (min-width:480px){.container{padding:0 20px 80px}}.header{border-bottom:1px solid var(--line);z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8f9faf5;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex;position:sticky;top:0}.brand{letter-spacing:-.2px;color:var(--text);flex-shrink:0;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:700;display:flex}@media (max-width:400px){.brand span{display:none}}.logoMark{background:var(--text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;overflow:hidden}.logoMark img,.logoMark svg{width:34px;height:34px;display:block}.nav{scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap;color:var(--muted);border-radius:7px;flex-shrink:0;align-items:center;min-height:44px;padding:10px 9px;font-size:13px;font-weight:500;display:inline-flex}.nav a:hover{color:var(--text);background:#0000000d}@media (max-width:599px){.nav a.navGame{display:none}}.langBtn{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:7px;flex-shrink:0;align-items:center;min-height:40px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.langBtn:hover{color:var(--text);border-color:#00000026}.lead{color:var(--muted);margin:6px 0 0;font-size:15px;line-height:1.65}.muted{color:var(--muted);font-size:13.5px;line-height:1.5}.heroTitle{letter-spacing:-1px;font-size:clamp(26px,8vw,38px);font-weight:700;line-height:1.1}.card{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:18px;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #0000000a}.gridCards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.cta{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-size:13.5px;font-weight:600;transition:opacity .15s,transform .15s;display:inline-flex}.cta:hover{opacity:.85;transform:translateY(-1px)}.smallBtn{border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:44px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-size:13.5px;font-weight:500;transition:border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.smallBtn:hover{border-color:#00000038;transform:translateY(-1px);box-shadow:0 2px 6px #00000012}.badge{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:11.5px}.footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:48px;padding-top:20px;font-size:13px;display:flex}.footer a:hover{color:var(--text)}.prose{max-width:760px;margin:0 auto}.prose h1{letter-spacing:-.5px;margin:0 0 10px;font-size:22px;font-weight:700}@media (min-width:480px){.prose h1{font-size:26px}}@media (min-width:640px){.prose h1{font-size:28px}}.prose h2{margin:28px 0 8px;font-size:18px;font-weight:600}.prose p{margin:12px 0;line-height:1.78}.prose ul,.prose ol{line-height:1.78}.prose a{color:var(--primary);font-weight:600}.hr{background:var(--line);border:0;height:1px;margin:20px 0}.warmupGrid{grid-template-columns:repeat(3,1fr);gap:5px;max-width:200px;display:grid}.warmupKeypad{grid-template-columns:repeat(3,1fr);gap:6px;max-width:200px;margin-top:10px;display:grid}.warmupLevelRow{flex-wrap:wrap;align-items:stretch;gap:16px;margin-top:36px;display:flex}.warmupPanel{flex:0 0 100%}.levelPanel{flex-direction:column;flex:100%;display:flex}@media (min-width:560px){.warmupPanel{flex:0 0 240px}.levelPanel{flex:1 1 0;min-width:0}}.board{aspect-ratio:1;border:2px solid #0000002e;border-radius:10px;grid-template-columns:repeat(9,1fr);width:100%;display:grid;overflow:hidden}.cell{background:var(--surface);cursor:pointer;border-bottom:1px solid #00000012;border-right:1px solid #00000012;justify-content:center;align-items:center;min-height:0;padding:0;display:flex;position:relative}.cell.thickR{border-right:2px solid #0000002e}.cell.thickB{border-bottom:2px solid #0000002e}.cell.peer{background:var(--peer)}.cell.sel{background:var(--selected)}.cell.hint{outline-offset:-2px;outline:2px solid #2563eb66}.cell.conflict{background:var(--conflict)}.val{font-size:16px;font-weight:700}@media (min-width:400px){.val{font-size:18px}}@media (min-width:600px){.val{font-size:21px}}.val.user{color:var(--primary)}.notes{width:100%;height:100%;color:var(--muted);grid-template-columns:repeat(3,1fr);place-items:center;padding:3px;font-size:9.5px;display:grid}.grid2{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:720px){.grid2{grid-template-columns:1.1fr .9fr}}.keypad{gap:10px;display:grid}.keygrid,.tools{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.key{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;min-height:44px;font-weight:600;transition:background .12s,border-color .12s,transform .1s}.key:hover:not(:disabled){background:#0000000a;transform:translateY(-1px)}.key:disabled{opacity:.4;cursor:not-allowed}.key.active{background:#2563eb14;border-color:#2563eb4d}.key.primary{color:var(--primary);background:#2563eb14;border-color:#2563eb4d}.panel{gap:10px;display:grid}.panelTitle{justify-content:space-between;align-items:center;font-weight:600;display:flex}.box{border:1px solid var(--line);color:var(--muted);background:#00000005;border-radius:10px;padding:12px;line-height:1.55}.blogGrid{grid-template-columns:1fr;gap:14px;display:grid}@media (min-width:640px){.blogGrid{grid-template-columns:repeat(2,1fr)}}.blogGrid a.card{flex-direction:column;gap:6px;text-decoration:none;display:flex;position:relative}.blogGrid a.card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000017}.blogNum{letter-spacing:.04em;color:var(--muted);opacity:.55;margin-bottom:2px;font-size:11px;font-weight:800}.blogReadMore{color:var(--accent);margin-top:auto;padding-top:10px;font-size:13px;font-weight:600}.learnSection{margin-top:32px}.learnSection h2{letter-spacing:-.2px;margin:0 0 12px;font-size:17px;font-weight:700}.learnCardGrid{grid-template-columns:1fr;gap:12px;display:grid}@media (min-width:480px){.learnCardGrid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.learnCardGrid{grid-template-columns:repeat(3,1fr)}}.learnCard{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:6px;padding:16px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #0000000a}.learnCard:hover{transform:translateY(-2px);box-shadow:0 4px 14px #00000017}.learnCard strong{font-size:14.5px;font-weight:700}.learnCard p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.55}.learnCard a{color:var(--accent);margin-top:auto;font-size:13px;font-weight:600}.learnPracticeRow{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.modeBadge{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.modeBadge-beginner{color:#15803d;background:#16a34a1a;border-color:#16a34a40}.modeBadge-intermediate{color:#1d4ed8;background:#2563eb1a;border-color:#2563eb40}.modeBadge-advanced{color:#c2410c;background:#ea580c1a;border-color:#ea580c40}.modeBadge-classic{color:#374151;background:#6b72801a;border-color:#6b728040}.gameProgress{background:#00000012;border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.gameProgressBar{background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px;height:100%;transition:width .3s}.dailyHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.streakChip{color:#c2410c;background:#fb923c1f;border:1px solid #fb923c4d;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.dailyTimer{text-align:center;padding:14px 0 6px}.dailyTimer .timerValue{letter-spacing:-1px;font-size:clamp(28px,10vw,40px);font-weight:900;line-height:1}.dailyTimer .timerLabel{color:var(--muted);margin-top:4px;font-size:12.5px;font-weight:500}.dailyProgressBar{background:#00000012;border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.dailyProgressFill{background:linear-gradient(90deg,#2563eb,#16a34a);border-radius:999px;height:100%;transition:width .4s}.dailyCompleteBadge{color:#15803d;background:#16a34a1a;border:1px solid #16a34a40;border-radius:999px;align-items:center;gap:5px;margin-top:12px;padding:6px 14px;font-size:13px;font-weight:700;display:inline-flex}.dailyHint{color:var(--muted);text-align:center;margin-top:10px;font-size:12.5px}
