:root{font-synthesis:none;text-rendering:optimizelegibility;--bg-main:#f4f8ff;--bg-accent-a:#abc7f059;--bg-accent-b:#e0edffe6;--card-bg:#fffffff5;--card-border:#abbede8c;--shadow:0 18px 48px #415f911f;--text-main:#30445f;--text-soft:#6f829d;--text-muted:#8596ae;--headline-accent:#3c5475;--button-bg:#ecf3ff;--button-text:#5f7391;--button-hover:#dfeaff;--button-active:linear-gradient(135deg, #8eb1e8, #6f96d9);--button-active-text:#fff;--board-border:#4a678c;--board-gap:#a8c0e8;--cell-bg:#fff;--cell-related:#eef5ff;--cell-same:#dfebff;--cell-selected:#b9d3ff;--cell-selected-ring:#5b86d7;--given-text:#364f71;--input-text:#3f6bc2;--wrong-text:#cf4d65;--notes-text:#7f95b9;--pad-bg:#edf3fd;--pad-text:#3f67b4;--panel-soft:#eef4ff;--line-soft:#dbe5f3;--toast-bg:#314b72f5;--toast-text:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg-main:#0f1520;--bg-accent-a:#5b80c22e;--bg-accent-b:#263452a6;--card-bg:#141d2cf0;--card-border:#58709666;--shadow:0 20px 55px #00000061;--text-main:#edf3ff;--text-soft:#b8c7e1;--text-muted:#95a6c4;--headline-accent:#94b5ff;--button-bg:#202d44;--button-text:#bfd1f0;--button-hover:#273752;--button-active:linear-gradient(135deg, #5d8de1, #4673c2);--button-active-text:#fff;--board-border:#8ea8cf;--board-gap:#536889;--cell-bg:#172131;--cell-related:#213149;--cell-same:#294062;--cell-selected:#335488;--cell-selected-ring:#9ebdfd;--given-text:#edf3ff;--input-text:#94b5ff;--wrong-text:#ff7c93;--notes-text:#8fa4c6;--pad-bg:#1d2b42;--pad-text:#d7e4ff;--panel-soft:#1a273b;--line-soft:#2f3f5a;--toast-bg:#e2ecfff5;--toast-text:#19304f}:root[data-theme=warm]{--bg-main:#fff8f4;--bg-accent-a:#f7d4dab8;--bg-accent-b:#f4c5aa75;--card-bg:#fffdfbf5;--card-border:#c9939e4d;--shadow:0 22px 60px #6f454f1a;--text-main:#5a3d46;--text-soft:#81656d;--text-muted:#987a82;--headline-accent:#ad5c6c;--button-bg:#f9eceb;--button-text:#8a6871;--button-hover:#f6dfe2;--button-active:linear-gradient(135deg, #d88494, #c66f81);--button-active-text:#fffaf8;--board-border:#6b4a53;--board-gap:#b98c96;--cell-bg:#fffdfb;--cell-related:#fff1f1;--cell-same:#f9dfe3;--cell-selected:#f3c9d0;--cell-selected-ring:#c56e80;--given-text:#563a43;--input-text:#c16678;--wrong-text:#c74459;--notes-text:#9b7881;--pad-bg:linear-gradient(160deg, #d88595, #c76d80);--pad-text:#fffaf8;--panel-soft:#fff0ef;--line-soft:#f1dfe0;--toast-bg:#7b4854f5;--toast-text:#fff}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg-main)}body{min-width:320px;min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 8% 4%, var(--bg-accent-a), transparent 24rem), radial-gradient(circle at 96% 10%, var(--bg-accent-b), transparent 22rem), linear-gradient(180deg, color-mix(in srgb, var(--bg-main) 92%, white 8%) 0%, var(--bg-main) 100%);margin:0}button{font:inherit}button:focus-visible{outline:3px solid color-mix(in srgb, var(--cell-selected-ring) 40%, white 60%);outline-offset:3px}.loading-screen{min-height:100vh;color:var(--text-main);align-content:center;place-items:center;gap:10px;font-weight:750;display:grid}.loading-heart{color:var(--headline-accent);font-size:2.4rem;animation:1.2s ease-in-out infinite softPulse}@keyframes softPulse{50%{opacity:.72;transform:scale(1.12)}}.app-shell{grid-template-columns:minmax(0,690px) 286px;align-items:start;gap:24px;width:min(1120px,100%);margin:0 auto;padding:30px;display:grid}.game-card,.info-card{background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:28px}.game-card{padding:28px}.info-card{padding:23px;position:sticky;top:24px}.toast-popup{z-index:999;background:var(--toast-bg);color:var(--toast-text);letter-spacing:.01em;border-radius:999px;padding:12px 18px;font-weight:800;animation:.16s ease-out toastIn;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0000002e}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.brand-lockup{min-width:0}.eyebrow,.info-kicker{color:var(--headline-accent);letter-spacing:.14em;margin:0 0 5px;font-size:.74rem;font-weight:850}h1{flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:0;line-height:.94;display:flex}.brand-love{color:var(--headline-accent);letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.05rem);font-weight:800}.brand-sudoku{color:var(--text-main);letter-spacing:.13em;font-size:clamp(1.05rem,2.6vw,1.45rem);font-weight:900}.brand-subtitle{max-width:500px;color:var(--text-soft);margin:10px 0 0;font-size:.93rem;line-height:1.45}h2{color:var(--text-main);margin:0 0 8px}.ghost-button,.action,.difficulty,.new-puzzle-button,.win-panel button,.theme-chip,.number-pad button{cursor:pointer;border:0;font-weight:780;transition:transform .12s,background .12s,box-shadow .12s,color .12s}.ghost-button{background:var(--button-bg);color:var(--button-text);box-shadow:inset 0 0 0 1px var(--card-border);border-radius:999px;flex:none;padding:10px 13px}.ghost-button:hover{background:var(--button-hover)}.top-controls{gap:10px;display:grid}.difficulty-row,.theme-switcher{gap:8px;display:grid}.difficulty-row{grid-template-columns:repeat(4,1fr)}.theme-switcher{grid-template-columns:repeat(3,1fr);margin-bottom:4px}.difficulty,.theme-chip{background:var(--button-bg);color:var(--button-text);border-radius:13px;padding:10px 8px}.difficulty:hover:not(:disabled),.theme-chip:hover{background:var(--button-hover);transform:translateY(-1px)}.difficulty.active,.theme-chip.active{color:var(--button-active-text);background:var(--button-active);box-shadow:0 7px 16px #6382b638}.difficulty:disabled{cursor:progress;opacity:.6}.new-puzzle-button{width:100%;color:var(--button-text);background:var(--button-bg);box-shadow:inset 0 0 0 1px var(--card-border);border-radius:14px;justify-content:center;align-items:center;gap:8px;margin:0 0 12px;padding:12px 14px;display:flex}.new-puzzle-button span{color:var(--headline-accent);font-size:1.05rem}.new-puzzle-button:hover:not(:disabled){background:var(--button-hover);transform:translateY(-1px)}.new-puzzle-button:disabled{opacity:.62;cursor:progress}.game-meta{color:var(--text-soft);justify-content:space-between;gap:10px;margin:12px 2px;font-size:.92rem;display:flex}.game-meta strong{color:var(--headline-accent)}.board{aspect-ratio:1;border:3px solid var(--board-border);background:var(--board-gap);touch-action:manipulation;border-radius:12px;grid-template-columns:repeat(9,1fr);gap:1px;width:min(100%,570px);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 12px 30px #3f5b8b1f}.cell{background:var(--cell-bg);min-width:0;min-height:0;color:var(--input-text);cursor:pointer;-webkit-user-select:none;user-select:none;border:0;place-items:center;padding:0;transition:background 90ms,box-shadow 90ms;display:grid;position:relative}.cell.box-right{border-right:2px solid var(--board-border)}.cell.box-bottom{border-bottom:2px solid var(--board-border)}.cell.related{background:var(--cell-related)}.cell.same-number{background:var(--cell-same)}.cell.selected{background:var(--cell-selected);box-shadow:inset 0 0 0 3px var(--cell-selected-ring);z-index:2}.cell.given .cell-value{color:var(--given-text);font-weight:850}.cell.wrong .cell-value{color:var(--wrong-text)}.cell-value{font-size:clamp(1.1rem,5.3vw,2.05rem);font-weight:700}.notes-grid{width:100%;height:100%;color:var(--notes-text);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);font-size:clamp(.48rem,1.8vw,.78rem);line-height:1;display:grid}.notes-grid span{place-items:center;display:grid}.action-row{grid-template-columns:repeat(3,1fr);gap:9px;width:min(100%,570px);margin:18px auto 10px;display:grid}.action{color:var(--button-text);background:var(--button-bg);border-radius:13px;padding:11px 8px}.action:hover{background:var(--button-hover)}.action.active{color:var(--button-active-text);background:var(--button-active);box-shadow:0 7px 16px #6382b633}.number-pad{grid-template-columns:repeat(9,1fr);gap:6px;width:min(100%,570px);margin:0 auto;display:grid}.number-pad button{aspect-ratio:1/1.05;background:var(--pad-bg);color:var(--pad-text);border-radius:11px;font-size:clamp(1rem,4vw,1.35rem);font-weight:850;box-shadow:0 5px 12px #5072aa1f}.number-pad button:hover{filter:brightness(1.025);transform:translateY(-1px)}.number-pad button:active{transform:translateY(1px)}.win-panel{background:var(--panel-soft);width:min(100%,570px);color:var(--text-main);border:1px solid var(--card-border);border-radius:18px;gap:7px;margin:16px auto 0;padding:17px;display:grid}.win-panel button{background:var(--button-active);color:var(--button-active-text);border-radius:12px;margin-top:5px;padding:10px}.status-message{width:min(100%,570px);min-height:1.4em;color:var(--text-soft);text-align:center;margin:11px auto 0;font-size:.86rem}.info-kicker{margin-bottom:4px}.info-card p{color:var(--text-soft);line-height:1.62}.info-card dl{gap:8px;margin:20px 0;display:grid}.info-card dl div{border-bottom:1px solid var(--line-soft);justify-content:space-between;padding-bottom:8px;display:flex}.info-card dt{color:var(--text-muted)}.info-card dd{color:var(--text-main);margin:0;font-weight:850}.small-note{font-size:.84rem;color:var(--headline-accent)!important}@media (width<=860px){.app-shell{grid-template-columns:1fr;padding:16px}.info-card{position:static}}@media (width<=540px){.app-shell{padding:0}.game-card,.info-card{box-shadow:none;border-left:0;border-right:0;border-radius:0}.game-card{min-height:100vh;padding:18px 12px 20px}.topbar{gap:10px;margin-bottom:14px}.brand-subtitle{max-width:270px;font-size:.78rem}.ghost-button{padding:8px 10px;font-size:.72rem}.difficulty,.theme-chip{padding:9px 4px;font-size:.82rem}.new-puzzle-button{font-size:.88rem}.game-meta{font-size:.8rem}.board{border-radius:7px}.number-pad{gap:4px}.number-pad button{border-radius:8px}.toast-popup{text-align:center;max-width:calc(100vw - 24px);font-size:.9rem;top:12px}}
