.hamburger{width:36px;height:36px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background .2s}@media (min-width: 769px){.hamburger{display:none}}.hamburger:hover{background:#ffffff0d}.hamburgerLine{width:20px;height:2px;background:var(--text);border-radius:2px;transition:all .3s ease}.hamburgerLine.open:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburgerLine.open:nth-child(2){opacity:0}.hamburgerLine.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menuContainer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;isolation:isolate}.menuOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:1;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.menuPanel{position:fixed;top:0;left:0;width:min(280px,80vw);height:100vh;background-color:var(--bg0);border-right:1px solid var(--stroke);z-index:2;padding:24px;overflow-y:auto;animation:slideIn .3s ease;box-shadow:4px 0 24px #000c}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.menuLink{display:block;padding:12px 16px;color:var(--text);text-decoration:none;border-radius:8px;transition:background .2s;font-weight:500}.menuLink:hover{background:var(--card2);text-decoration:none}.menuSection{padding:12px 16px;color:var(--faint);font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-top:8px}.menuDivider{height:1px;background:var(--stroke);margin:16px 0}.sideNav{position:fixed;top:0;left:0;width:240px;height:100vh;background-color:var(--bg0);border-right:1px solid var(--stroke);padding:24px;overflow-y:auto;display:none}.sideNavLink{display:block;padding:12px 16px;color:var(--text);text-decoration:none;border-radius:8px;transition:background .2s;font-weight:500}.sideNavLink:hover{background:var(--card2);text-decoration:none}.sideNavSection{padding:12px 16px;color:var(--faint);font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-top:8px}.sideNavDivider{height:1px;background:var(--stroke);margin:16px 0}@media (min-width: 769px){.sideNav{display:block}}.homeSection{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px)}.homeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,400px));gap:24px;width:100%;max-width:900px}.gameCard{border:1px solid var(--stroke);background:var(--card);border-radius:var(--radius-xl);padding:var(--gap-xl);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease}.gameCard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.gameTop{display:grid;grid-template-columns:auto 1fr;gap:var(--gap-md);align-items:start;padding-bottom:var(--gap-sm);border-bottom:1px solid var(--stroke)}.icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#00000040;border:1px solid var(--stroke);box-shadow:inset 0 1px #ffffff0a;font-weight:800;font-size:20px}.gameTitle{font-weight:700;letter-spacing:var(--letter-normal);margin-bottom:6px;font-size:16px}.gameDesc{font-size:13px;color:var(--muted);line-height:1.5}.tagRow{display:flex;gap:var(--gap-xs);flex-wrap:wrap;margin-top:var(--gap-lg);margin-bottom:var(--gap-lg)}.tag{font-size:12px;padding:5px 9px;border-radius:999px;background:#0000002e;border:1px solid var(--stroke);color:var(--faint)}.cardLinkButton{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 16px;border-radius:var(--radius-md);border:1px solid var(--stroke);background:linear-gradient(180deg,color-mix(in srgb,var(--green) 18%,transparent),color-mix(in srgb,var(--green) 8%,transparent));color:var(--text);font-weight:800;text-decoration:none!important;transition:border-color .16s ease}.cardLinkButton:hover{border-color:color-mix(in srgb,var(--green) 40%,transparent)}@media (max-width: 900px){.homeGrid{grid-template-columns:1fr;max-width:500px}.homeSection{min-height:auto;padding:32px 0}}@media (max-width: 640px){.homeGrid{gap:16px}.gameCard{padding:var(--gap-md)}}.modalOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modalContent{background:var(--bg1);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modalHeader{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--stroke)}.modalHeader h2{margin:0;font-size:1.5rem;color:var(--text)}.modalClose{background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--muted);padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.modalClose:hover{background-color:var(--bg2);color:var(--text)}.modalBody{padding:1.5rem}.statsSection{margin-bottom:2rem}.statsSection:last-child{margin-bottom:0}.statsSection h3{margin:0 0 1rem;font-size:1.125rem;color:var(--text);font-weight:600}.statsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 480px){.statsGrid{grid-template-columns:1fr}}.statCard{background:var(--bg2);border:1px solid var(--stroke);border-radius:8px;padding:1rem;text-align:center}.statValue{font-size:2rem;font-weight:700;color:var(--green);margin-bottom:.25rem}.statLabel{font-size:.875rem;color:var(--muted)}.statsTable{display:flex;flex-direction:column;gap:.75rem}.statsTableRow{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg2);border:1px solid var(--stroke);border-radius:6px}.statsTableLabel{font-size:.9375rem;color:var(--text);text-transform:capitalize}.statsTableValue{font-size:.9375rem;font-weight:600;color:var(--green)}.recentCompletionsList{display:flex;flex-direction:column;gap:.5rem}.recentCompletionItem{display:grid;grid-template-columns:1fr auto auto;gap:1rem;padding:.75rem 1rem;background:var(--bg2);border:1px solid var(--stroke);border-radius:6px;font-size:.875rem}.recentCompletionDate{color:var(--text)}.recentCompletionDifficulty{color:var(--muted);text-transform:capitalize}.recentCompletionTime{font-weight:600;color:var(--green);text-align:right}.settingsSection{margin-bottom:1.5rem}.settingsSection h3{font-size:1.1rem;margin:0 0 1rem;color:var(--text)}.settingRow{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-radius:8px;background:var(--bg2);margin-bottom:.75rem}.settingRow:last-child{margin-bottom:0}.settingLabel{flex:1}.settingLabel .settingTitle{font-weight:600;color:var(--text);margin-bottom:.25rem}.settingLabel .settingDescription{font-size:.875rem;color:var(--muted)}.toggleSwitch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggleSwitch input{opacity:0;width:0;height:0}.toggleSlider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg3);transition:.3s;border-radius:26px}.toggleSlider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggleSwitch input:checked+.toggleSlider{background-color:var(--blue)}.toggleSwitch input:checked+.toggleSlider:before{transform:translate(22px)}.toggleSwitch input:focus-visible+.toggleSlider{outline:2px solid var(--blue);outline-offset:2px}.completionModalBody{text-align:center}.completionCelebration{margin-bottom:1.5rem}.completionTitle{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 .5rem}.completionSubtitle{font-size:.9rem;color:var(--muted);margin:0}.completionStats{display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap}.completionStatCard{background:var(--bg2);border:1px solid var(--stroke);border-radius:.5rem;padding:.75rem 1rem;min-width:100px;flex:1;max-width:150px}.completionStatIcon{font-size:1.5rem;margin-bottom:.25rem}.completionStatValue{font-size:1.25rem;font-weight:700;color:var(--green);margin-bottom:.25rem}.completionStatLabel{font-size:.75rem;color:var(--muted);font-weight:500}.completionActions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--stroke)}.shareHeading{font-size:.875rem;font-weight:600;color:var(--text);margin:0 0 .75rem}.shareButtons{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.shareButton{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.shareButton svg{flex-shrink:0}.shareButton:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.shareButton:active{transform:translateY(0)}.shareButtonPrimary{background:var(--green);color:#fff}.shareButtonPrimary:hover{background:#059669}.shareButtonTwitter{background:#1da1f2;color:#fff}.shareButtonTwitter:hover{background:#1a8cd8}.shareButtonFacebook{background:#1877f2;color:#fff}.shareButtonFacebook:hover{background:#166fe5}.shareButtonCopy{background:var(--bg2);color:var(--text);border:1px solid var(--stroke)}.shareButtonCopy:hover{background:var(--bg1)}@media (max-width: 600px){.shareButtonText{display:none}.shareButton{padding:.75rem;min-width:48px}.shareButtons{gap:.5rem}}.sudokuGridWrap{display:flex;justify-content:center}.sudokuGrid{width:min(520px,100%);aspect-ratio:1 / 1;display:grid;grid-template-columns:repeat(9,1fr);border-radius:var(--radius-xl);overflow:hidden;border:2px solid var(--stroke);background:var(--bg2)}.cell{display:grid;place-items:center;border:1px solid var(--stroke);background:var(--card);color:var(--text);font-weight:800;font-size:clamp(16px,2.6vw,20px);padding:0;cursor:pointer;aspect-ratio:1 / 1;overflow:hidden}.cell:hover{background:var(--card2)}.cell.given{color:var(--text);background:var(--bg2);font-weight:900}.cell.selected{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:-2px;background:color-mix(in srgb,var(--green) 10%,transparent)}.cell.thickRight{border-right:3px solid var(--stroke)}.cell.thickBottom{border-bottom:3px solid var(--stroke)}.cell.conflict{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.cell.conflict.selected{outline-color:color-mix(in srgb,var(--red) 70%,transparent);background:color-mix(in srgb,var(--red) 22%,transparent)}.cell.matching{background:color-mix(in srgb,var(--blue) 20%,transparent)}.cell.given.matching{background:color-mix(in srgb,var(--blue) 20%,var(--bg2))}.sudokuFooterRow{margin-top:var(--gap-xl);display:flex;align-items:center;gap:var(--gap-md);flex-wrap:wrap}.sudokuStatus{color:var(--faint);font-size:13px}.sudokuStatus .win{color:var(--green);font-weight:800}.sudokuStatus .statusButton{background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.sudokuStatus .statusButton:hover{text-decoration-style:solid}.sudokuStatus .wrong{color:var(--blue);font-weight:700}.kakuroCell{position:relative;display:grid;place-items:center;border:1px solid var(--stroke);font-weight:800;font-size:clamp(16px,2.6vw,20px);padding:0;aspect-ratio:1 / 1;overflow:hidden}.kakuroClue{background:var(--bg2);cursor:default;pointer-events:none}.clueDiagonal{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom right,transparent 0%,transparent calc(50% - 1px),var(--stroke) calc(50% - 1px),var(--stroke) calc(50% + 1px),transparent calc(50% + 1px),transparent 100%)}.clueDown{position:absolute;top:4px;right:4px;font-size:clamp(10px,1.6vw,12px);font-weight:700;color:var(--text);z-index:1}.clueAcross{position:absolute;bottom:4px;left:4px;font-size:clamp(10px,1.6vw,12px);font-weight:700;color:var(--text);z-index:1}.kakuroEntry{background:var(--card);color:var(--text);cursor:pointer;border:none}.kakuroEntry:hover{background:var(--card2)}.kakuroEntry.selected{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:-2px;background:color-mix(in srgb,var(--green) 10%,transparent)}.kakuroEntry.conflict{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.kakuroEntry.conflict.selected{outline-color:color-mix(in srgb,var(--red) 70%,transparent);background:color-mix(in srgb,var(--red) 22%,transparent)}.kakuroEntry.matching{background:color-mix(in srgb,var(--blue) 20%,transparent)}.kakuroEntry.completeRun{background:color-mix(in srgb,var(--green) 15%,var(--card))}.kakuroEntry.completeRun.matching{background:color-mix(in srgb,var(--blue) 15%,color-mix(in srgb,var(--green) 15%,var(--card)))}.cellValue{display:block;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.cellNotes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px;gap:1px}.cellNotes span{font-size:clamp(8px,1.2vw,10px);font-weight:600;display:flex;align-items:center;justify-content:center}.noteActive{color:var(--blue)}.noteInactive{visibility:hidden}.kakuroGridWrap{display:flex;justify-content:center}.kakuroGrid{width:min(520px,100%);aspect-ratio:1 / 1;display:grid;border-radius:var(--radius-xl);overflow:hidden;border:2px solid var(--stroke);background:var(--bg2)}.numberPad{margin-top:20px;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--gap-sm);max-width:min(520px,100%);margin-left:auto;margin-right:auto}.numberButton{height:50px;border-radius:var(--radius-md);border:1px solid var(--stroke);background:var(--bg2);color:var(--text);font-weight:800;font-size:18px;cursor:pointer;transition:all .12s ease}.numberButton.clearButton{background:color-mix(in srgb,var(--red) 8%,transparent)}.numberButton.clearButton:hover:not(:disabled){border-color:color-mix(in srgb,var(--red) 40%,transparent);background:color-mix(in srgb,var(--red) 15%,transparent)}.numberButton.notesModeButton{grid-column:span 2}.numberButton.notesModeButton.active{border-color:color-mix(in srgb,var(--blue) 60%,transparent);background:color-mix(in srgb,var(--blue) 20%,transparent)}.kakuroFooterRow{margin-top:var(--gap-xl);display:flex;align-items:center;gap:var(--gap-md);flex-wrap:wrap}.kakuroStatus{color:var(--faint);font-size:13px}.kakuroStatus .win{color:var(--green);font-weight:800}.futoshikiCellWrapper{position:relative;display:flex;align-items:center;justify-content:center}.futoshikiCell{width:100%;aspect-ratio:1;border:1px solid var(--stroke);background:var(--card);color:var(--text);font-size:1.5rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;position:relative}.futoshikiCell:hover{background:var(--card2)}.futoshikiCell.selected{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:-2px;background:color-mix(in srgb,var(--green) 10%,transparent);z-index:1}.futoshikiCell.given{background:var(--bg2);font-weight:700;color:var(--text)}.futoshikiCell.conflict{background:color-mix(in srgb,var(--red) 15%,transparent);border-color:color-mix(in srgb,var(--red) 30%,transparent);color:var(--red)}.futoshikiCell.matching{background:color-mix(in srgb,var(--blue) 20%,transparent)}.cellValue{font-size:1.5rem;font-weight:inherit}.cellNotes{display:grid;gap:2px;width:100%;height:100%;padding:4px;font-size:.7rem;color:var(--blue)}.noteActive{display:flex;align-items:center;justify-content:center}.noteInactive{display:none}.inequality{position:absolute;pointer-events:none;z-index:2;color:var(--text)}.inequality svg{width:.875rem;height:.875rem;display:block}.inequalityRight{left:calc(100% + .25rem);top:50%;transform:translate(-50%,-50%)}.inequalityDown{top:calc(100% + .25rem);left:50%;transform:translate(-50%,-50%)}.futoshikiGridWrap{display:flex;justify-content:center;align-items:center}.futoshikiGrid{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);gap:.5rem;max-width:700px;width:100%;aspect-ratio:1}.futoshikiFooterRow{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem}.futoshikiStatus{font-size:1.125rem;font-weight:500}.futoshikiStatus .win{color:var(--green);font-weight:800}.futoshikiStatus .wrong{color:var(--blue);font-weight:700}.numberPad{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:400px;margin:1rem auto 0}.numberButton{aspect-ratio:1;font-size:1.25rem;font-weight:800;border:1px solid var(--stroke);background:var(--bg2);color:var(--text);cursor:pointer;transition:all .12s ease;border-radius:var(--radius-md)}.numberButton:hover:not(:disabled){border-color:color-mix(in srgb,var(--blue) 40%,transparent);background:color-mix(in srgb,var(--blue) 10%,transparent);transform:translateY(-1px)}.numberButton:active:not(:disabled){transform:translateY(0);background:color-mix(in srgb,var(--blue) 15%,transparent)}.numberButton:disabled{opacity:.3;cursor:not-allowed}.clearButton{background:color-mix(in srgb,var(--red) 8%,transparent)}.clearButton:hover:not(:disabled){border-color:color-mix(in srgb,var(--red) 40%,transparent);background:color-mix(in srgb,var(--red) 15%,transparent)}@media (max-width: 640px){.futoshikiPage{padding:1rem}.futoshikiTop{flex-direction:column;gap:1rem}.futoshikiTitle{font-size:1.5rem}.futoshikiSub{font-size:.875rem}.futoshikiGrid{gap:.375rem}.numberPad{grid-template-columns:repeat(4,1fr)}.futoshikiFooterRow{flex-direction:column;align-items:stretch}}:root{--gap-xs: 8px;--gap-sm: 10px;--gap-md: 12px;--gap-lg: 14px;--gap-xl: 16px;--gap-2xl: 18px;--radius-sm: 12px;--radius-md: 14px;--radius-lg: 16px;--radius-xl: 18px;--radius-full: 999px;--font-body: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--letter-tight: -.04em;--letter-snug: -.02em;--letter-normal: -.01em;--letter-wide: .08em;--green: #88c070;--green2: #9ed482;--blue: #7ba8d4;--red: #d47d7d}:root,[data-theme=dark]{--bg0: #1a1612;--bg1: #221e1a;--bg2: #2a2520;--card: rgba(255, 230, 200, .04);--card2: rgba(255, 230, 200, .06);--stroke: rgba(255, 220, 180, .12);--text: rgba(255, 250, 245, .95);--muted: rgba(255, 245, 235, .7);--faint: rgba(255, 240, 225, .45);--ambient-glow-1: rgba(136, 192, 112, .08);--ambient-glow-2: rgba(123, 168, 212, .08);--shadow: 0 8px 32px rgba(0, 0, 0, .4);--shadow-sm: 0 4px 16px rgba(0, 0, 0, .25);--shadow-card: 0 1px 0 rgba(255, 230, 200, .04), 0 8px 24px rgba(0, 0, 0, .35);--grain-opacity: .06;--grain-blend: soft-light;color-scheme:dark}[data-theme=light]{--bg0: #f9f6f1;--bg1: #f4efe7;--bg2: #ede7dd;--card: rgba(120, 90, 60, .03);--card2: rgba(120, 90, 60, .05);--stroke: rgba(100, 80, 60, .2);--text: rgba(30, 24, 20, 1);--muted: rgba(55, 45, 35, .85);--faint: rgba(80, 65, 50, .6);--ambient-glow-1: rgba(136, 192, 112, .04);--ambient-glow-2: rgba(123, 168, 212, .04);--shadow: 0 4px 16px rgba(100, 80, 60, .08);--shadow-sm: 0 2px 8px rgba(100, 80, 60, .06);--shadow-card: 0 1px 0 rgba(100, 80, 60, .03), 0 4px 12px rgba(100, 80, 60, .08);--grain-opacity: .025;--grain-blend: multiply;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1200px 900px at 20% 10%,var(--ambient-glow-1),transparent 60%),radial-gradient(1000px 700px at 70% 0%,var(--ambient-glow-2),transparent 55%),radial-gradient(1200px 900px at 20% 110%,var(--ambient-glow-1),transparent 60%),radial-gradient(1000px 700px at 70% 100%,var(--ambient-glow-2),transparent 55%),linear-gradient(180deg,var(--bg0) 0%,var(--bg1) 45%,var(--bg0) 100%);background-repeat:repeat;background-size:100% 140vh;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:var(--grain-opacity);background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.1),transparent 35%),radial-gradient(circle at 80% 10%,rgba(255,255,255,.07),transparent 40%),radial-gradient(circle at 60% 75%,rgba(0,0,0,.3),transparent 45%);mix-blend-mode:var(--grain-blend);filter:blur(.3px);transform:translateZ(0);animation:grainDrift 10s ease-in-out infinite}@keyframes grainDrift{0%{transform:translateZ(0)}50%{transform:translate3d(-10px,8px,0)}to{transform:translateZ(0)}}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.page{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}@media (min-width: 769px){.page{margin-left:240px}}.header,.main,.footerInner{width:min(1080px,calc(100% - 48px));margin:0 auto}.header,.main,.footer{position:relative;z-index:1}.header{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-xl);padding:22px 0 10px}.brand{font-weight:700;letter-spacing:var(--letter-snug);display:inline-flex;align-items:center;gap:var(--gap-sm)}.brand:before{content:"";width:10px;height:10px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--green),var(--blue));box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 12%,transparent)}.nav{display:flex;gap:var(--gap-lg);align-items:center}.navLink{opacity:.78;font-size:14px}.navLink:hover{opacity:1}.main{padding:28px 0 64px}.footer{padding:28px 0 36px}.footerInner{display:flex;gap:var(--gap-sm);align-items:center;color:var(--faint);font-size:13px}.footerSep{opacity:.35}.footerLink{opacity:.85}.button{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:linear-gradient(180deg,color-mix(in srgb,var(--green) 18%,transparent),color-mix(in srgb,var(--green) 8%,transparent));box-shadow:var(--shadow);font-weight:600;font-size:14px;text-decoration:none!important;cursor:pointer}.button:hover{border-color:color-mix(in srgb,var(--green) 40%,transparent)}.buttonGhost{background:var(--card);box-shadow:none}.buttonGhost:hover{border-color:color-mix(in srgb,var(--blue) 40%,transparent)}.kicker{margin:0 0 10px;color:var(--muted);letter-spacing:var(--letter-wide);text-transform:uppercase;font-size:12px}.title{margin:0 0 12px;letter-spacing:var(--letter-tight);line-height:1.04;font-size:clamp(34px,5vw,52px)}.subtitle{margin:0 0 18px;color:var(--muted);line-height:1.6;font-size:16px;max-width:62ch}.h2{margin:0;font-size:22px;letter-spacing:var(--letter-snug)}.card{border:1px solid var(--stroke);background:var(--card);border-radius:var(--radius-xl);padding:var(--gap-xl);box-shadow:var(--shadow-sm)}.card:hover{transform:translateY(-2px);transition:transform .16s ease,box-shadow .16s ease;box-shadow:var(--shadow)}.pill{font-size:12px;color:var(--faint);border:1px solid var(--stroke);background:var(--card);padding:6px 10px;border-radius:var(--radius-full)}.tag{font-size:12px;padding:5px 9px;border-radius:var(--radius-full);background:var(--bg2);border:1px solid var(--stroke);color:var(--faint)}.divider{height:1px;background:var(--stroke);margin:var(--gap-xl) 0}.icon{width:40px;height:40px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--bg2);border:1px solid var(--stroke);box-shadow:inset 0 1px 0 var(--card2);font-weight:800}.themeSwitcher{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-md);border:1px solid var(--stroke);background:var(--card);color:var(--text);cursor:pointer;transition:all .16s ease;margin-left:auto}.themeSwitcher:hover{border-color:color-mix(in srgb,var(--blue) 40%,transparent);background:color-mix(in srgb,var(--blue) 10%,transparent);transform:translateY(-1px)}.themeSwitcher:active{transform:translateY(0)}.themeSwitcher svg{display:block}body:has(.gamePage) .header{padding:12px 0 8px}body:has(.gamePage) .main{padding:16px 0 48px}.gameTop{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);flex-wrap:wrap;margin-bottom:var(--gap-md)}.gameInfo{flex:1;min-width:200px}.gameKicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted);margin-bottom:4px}.gameTitle{margin:0 0 4px;letter-spacing:var(--letter-tight);line-height:1.1;font-size:clamp(24px,3.5vw,32px)}.gameDate{margin:0;color:var(--faint);font-size:13px;line-height:1.4}.gameActions{display:flex;gap:var(--gap-xs);flex-wrap:wrap}.difficultyRow{margin-bottom:var(--gap-lg);display:flex;gap:var(--gap-sm);flex-wrap:wrap}.diffButton{height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--card);color:var(--text);font-weight:800;font-size:13px;text-transform:capitalize;cursor:pointer;transition:all .12s ease}.diffButton:hover:not(:disabled){border-color:color-mix(in srgb,var(--blue) 40%,transparent)}.diffButton.active{border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.diffButton:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 640px){body:has(.gamePage) .header{padding:10px 0 6px}body:has(.gamePage) .main{padding:12px 0 40px}.gameTop{gap:var(--gap-sm);margin-bottom:var(--gap-sm)}.gameKicker{font-size:10px;margin-bottom:2px}.gameTitle{font-size:clamp(20px,5vw,28px);margin-bottom:2px}.gameDate{font-size:12px}.gameActions{gap:6px}.gameActions .button{height:32px;padding:0 12px;font-size:13px}.difficultyRow{margin-bottom:var(--gap-md);gap:6px}.diffButton{height:32px;padding:0 12px;font-size:12px}body:has(.gamePage) .navLink{display:none}}@media (max-width: 900px){.hero{grid-template-columns:1fr}.heroCard{order:-1}.grid{grid-template-columns:1fr}.header,.main,.footerInner{width:min(720px,calc(100% - 36px))}}@media (max-width: 520px){.header,.main,.footerInner{width:min(720px,calc(100% - 28px))}.nav{gap:var(--gap-sm)}.title{font-size:36px}.numberPad{gap:var(--gap-xs)}.numberButton{height:54px;font-size:20px}.numberButton.clearButton{font-size:15px}.cell{font-size:18px}}
