*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:IBM Plex Sans KR,Apple SD Gothic Neo,system-ui,sans-serif;font-size:15px;line-height:1.6;transition:background-color .16s}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60% 45% at 15% 0%, var(--bg-glow-a), transparent 70%), radial-gradient(70% 55% at 100% 100%, var(--bg-glow-b), transparent 70%);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--display-font,"Noto Serif KR", "Apple SD Gothic Neo", serif);color:var(--text);text-wrap:balance;margin:0}p{margin:0}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}input,select{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.btn{will-change:transform;transition:transform 90ms,filter .12s,box-shadow 90ms,background-color .12s;position:relative}.btn:not(:disabled):active{filter:brightness(.95);transform:scale(.97)translateY(1px)}.btn-accent{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-fill) 82%, #fff) 0%, var(--accent-fill) 55%, color-mix(in srgb, var(--accent-fill) 88%, #000) 100%);box-shadow:inset 0 1px 0 #ffffff38, 0 3px 0 color-mix(in srgb, var(--accent-fill) 70%, #000), 0 6px 14px #5e3a1e38}.btn-accent:not(:disabled):active{box-shadow:inset 0 1px 0 #ffffff29, 0 0 0 color-mix(in srgb, var(--accent-fill) 70%, #000), 0 2px 6px #5e3a1e2e;filter:none;transform:translateY(3px)}.btn-ink{box-shadow:0 2px #00000059}.btn-ink:not(:disabled):active{transform:translateY(2px);box-shadow:0 0 #00000059}.btn-surface,.btn-paper{box-shadow:var(--shadow-card)}.pressable{transition:transform 90ms,filter .12s}.pressable:active{filter:brightness(.97);transform:scale(.985)}:root[data-motion=off] .btn,:root[data-motion=off] .pressable{transition:none}:root[data-motion=off] .btn:not(:disabled):active,:root[data-motion=off] .pressable:active{transform:none}
:root{--paper:#f4f1ea;--surface:#fffdf8;--surface-alt:#f5ebda;--border:#ded8c9;--border-weak:#ede8dc;--border-strong:#c9a876;--divider:#e4dfd2;--chrome:#ede8dc;--accent:#8a5a32;--accent-fill:#8a5a32;--accent-dark:#5e3a1e;--accent-on-dark:#c79a5b;--text:#14181c;--text-body:#4a4640;--text-muted:#6b665c;--text-disabled:#8a857a;--ink:#14181c;--ink-border:#2a2f35;--on-ink:#f4f1ea;--on-ink-muted:#a7aeb4;--on-ink-accent:#c79a5b;--danger:#a8443a;--danger-bg:#fbedea;--danger-border:#e7c3bc;--board:#f6f1e6;--board-line:#1e160a38;--board-line-strong:#2a2622;--board-edge:#3c280c47;--shadow-board:0 10px 28px #3c280c2e, 0 2px 4px #3c280c1f;--cell-given:#14181c;--cell-entry:#8a5a32;--cell-note:#6b665c;--cell-peer:#1e160a0f;--cell-same:#8a5a3238;--cell-sel:#8a5a325c;--cell-pattern:#e0a83a4d;--cell-target:#8a5a3280;--cell-wrong:#a8443a;--cell-wrong-bg:#a8443a29;--xp:#e0a83a;--xp-dark:#a8781c;--flame:#e2622b;--bg-glow-a:#c79a5b38;--bg-glow-b:#8a5a321a;--track-off:#ded8c9;--knob-off:#fffdf8;--shadow-card:0 2px 0 #14181c0f;--shadow-float:0 18px 40px #14181c1a;--locked-opacity:.6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14181c;--surface:#1d2328;--surface-alt:#2a3138;--border:#2e353c;--border-weak:#2a3138;--border-strong:#5c4a2c;--divider:#2a3138;--chrome:#1a1f24;--accent:#c79a5b;--accent-fill:#a06b39;--accent-dark:#dbb47b;--accent-on-dark:#c79a5b;--text:#f4f1ea;--text-body:#c3c9cf;--text-muted:#8a939b;--text-disabled:#6e777f;--ink:#1a1f24;--ink-border:#2e353c;--on-ink:#f4f1ea;--on-ink-muted:#8a939b;--danger:#e0796d;--danger-bg:#2e1f1d;--danger-border:#5c332d;--board:#ece3cf;--board-edge:#00000073;--shadow-board:0 12px 30px #00000073, 0 2px 4px #0000004d;--bg-glow-a:#c79a5b33;--bg-glow-b:#0006;--track-off:#2e353c;--knob-off:#8a939b;--shadow-float:0 18px 40px #14181c29;--locked-opacity:.55;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#14181c;--surface:#1d2328;--surface-alt:#2a3138;--border:#2e353c;--border-weak:#2a3138;--border-strong:#5c4a2c;--divider:#2a3138;--chrome:#1a1f24;--accent:#c79a5b;--accent-fill:#a06b39;--accent-dark:#dbb47b;--accent-on-dark:#c79a5b;--text:#f4f1ea;--text-body:#c3c9cf;--text-muted:#8a939b;--text-disabled:#6e777f;--ink:#1a1f24;--ink-border:#2e353c;--on-ink:#f4f1ea;--on-ink-muted:#8a939b;--danger:#e0796d;--danger-bg:#2e1f1d;--danger-border:#5c332d;--board:#ece3cf;--board-edge:#00000073;--shadow-board:0 12px 30px #00000073, 0 2px 4px #0000004d;--bg-glow-a:#c79a5b33;--bg-glow-b:#0006;--track-off:#2e353c;--knob-off:#8a939b;--shadow-float:0 18px 40px #14181c29;--locked-opacity:.55;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-board=wood]{--board:#e4c48e;--board-line:#1e160a4d;--board-line-strong:#5e3a1e;--board-edge:#3c280c59;--cell-peer:#1e160a12;--cell-same:#8a5a3247;--cell-sel:#8a5a326b}:root[data-board=jade]{--board:#dcebe0;--board-line:#061e1038;--board-line-strong:#2f5a41;--board-edge:#061e104d;--cell-peer:#061e100f;--cell-same:#2f5a413d;--cell-sel:#2f5a4161;--cell-entry:#2f5a41}:root[data-board=slate]{--board:#e6eaee;--board-line:#141e2838;--board-line-strong:#2c3a48;--board-edge:#141e284d;--cell-peer:#141e280f;--cell-same:#2c486e38;--cell-sel:#2c486e5c;--cell-entry:#2c4a70}:root[data-board=ink]{--board:#2a2f35;--board-line:#f4f1ea2e;--board-line-strong:#c3c9cf;--board-edge:#00000080;--cell-given:#f4f1ea;--cell-entry:#e0b46a;--cell-note:#a7aeb4;--cell-peer:#f4f1ea0f;--cell-same:#e0b46a47;--cell-sel:#e0b46a6b;--cell-pattern:#e0b46a38;--cell-wrong-bg:#e0796d47;--cell-wrong:#ff9a8c}@media (prefers-color-scheme:dark){:root[data-board=paper]:not([data-theme=light]),:root:not([data-board]):not([data-theme=light]){--board:#ece3cf}:root[data-board=wood]:not([data-theme=light]){--board:#dcb97c}:root[data-board=jade]:not([data-theme=light]){--board:#c9dfd0}:root[data-board=slate]:not([data-theme=light]){--board:#d5dbe2}}:root[data-theme=dark][data-board=paper]{--board:#ece3cf}:root[data-theme=dark][data-board=wood]{--board:#dcb97c}:root[data-theme=dark][data-board=jade]{--board:#c9dfd0}:root[data-theme=dark][data-board=slate]{--board:#d5dbe2}:root{--digit-font:"Noto Serif KR", Georgia, serif}:root[data-digit=sans]{--digit-font:"IBM Plex Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif}:root[data-digit=mono]{--digit-font:"IBM Plex Mono", "SF Mono", Menlo, monospace}.sudoku{background:var(--board);border:2.5px solid var(--board-line-strong);width:100%;box-shadow:var(--shadow-board);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:12px;grid-template-columns:repeat(9,1fr);margin:0 auto;transition:background-color .16s;display:grid;overflow:hidden}.sudoku-large{border-radius:10px}.sudoku-dim .cell-digit,.sudoku-dim .cell-notes{visibility:hidden}@media (max-width:899px){.board-wrap{margin-inline:-16px}}.cell{aspect-ratio:1;border:.5px solid var(--board-line);color:var(--cell-entry);font-family:var(--digit-font);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;place-items:center;padding:0;font-size:clamp(16px,5.2vw,30px);font-weight:600;line-height:1;transition:background-color 90ms;display:grid;position:relative}@media (min-width:900px){.cell{font-size:28px}}.cell:focus-visible{outline:none}.cell-br{border-right:2px solid var(--board-line-strong)}.cell-bb{border-bottom:2px solid var(--board-line-strong)}.cell-bl{border-left:1px solid var(--board-line-strong)}.cell-bt{border-top:1px solid var(--board-line-strong)}.cell-given{color:var(--cell-given);cursor:default;font-weight:700}.cell-peer{background:var(--cell-peer)}.cell-same{background:var(--cell-same)}.cell-sel{background:var(--cell-sel)}.cell-pattern{background:var(--cell-pattern)}.cell-affected{background:var(--cell-pattern);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--xp) 70%, transparent)}.cell-target{background:var(--cell-target);box-shadow:inset 0 0 0 2.5px var(--accent-fill)}.cell-wrong{background:var(--cell-wrong-bg);color:var(--cell-wrong)!important}.cell-digit{transform-origin:50%;display:block}:root[data-motion=on] .cell-digit{animation:.16s ease-out gcDigit}@keyframes gcDigit{0%{opacity:0;transform:scale(1.5)}60%{opacity:1;transform:scale(.95)}to{transform:scale(1)}}.cell-notes{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;padding:1px;display:grid}.note{color:var(--cell-note);place-items:center;font-family:IBM Plex Sans KR,system-ui,sans-serif;font-size:clamp(7px,2vw,11px);font-weight:500;line-height:1;display:grid}@media (min-width:900px){.note{font-size:10px}}.note-same{color:var(--accent);font-weight:700}.note-strike{color:var(--danger);font-weight:700;text-decoration:line-through}@keyframes gcBoardWin{0%,to{transform:scale(1)}40%{transform:scale(1.02)}}.sudoku-win{animation:.6s ease-in-out gcBoardWin}.sudoku-win .cell-given,.sudoku-win .cell{color:var(--accent)}.numpad{grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;display:grid}.numpad button{aspect-ratio:.9;background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-card);line-height:1;font-family:var(--digit-font);color:var(--text);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:clamp(20px,6vw,30px);font-weight:700;transition:transform 90ms,background-color .12s;display:flex;position:relative}.numpad button:not(:disabled):active{background:var(--surface-alt);transform:scale(.94)}.numpad button:disabled{opacity:.32}.numpad .left{color:var(--text-muted);font-family:IBM Plex Sans KR,system-ui,sans-serif;font-size:10px;font-weight:600}.numpad-notes button{color:var(--text-muted);background:var(--surface-alt);font-size:clamp(14px,4vw,18px)}.tool-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tool{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);color:var(--text-body);border-radius:14px;justify-items:center;gap:4px;padding:10px 4px 8px;font-size:11.5px;font-weight:600;transition:transform 90ms,background-color .12s;display:grid}.tool:not(:disabled):active{transform:scale(.96)}.tool:disabled{opacity:.4}.tool-on{background:var(--ink);color:var(--on-ink);border-color:var(--ink-border)}.tool-badge{background:var(--accent-fill);color:#fffdf8;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:4px;right:4px}:root[data-easy=on]{--text-body:#2b2824;--text-muted:#4a4640;--text-disabled:#6b665c;--border:#c9c1ad;--border-weak:#d9d2c2}@media (prefers-color-scheme:dark){:root[data-easy=on]:not([data-theme=light]){--text-body:#dde2e7;--text-muted:#b3bcc4;--text-disabled:#8f99a2;--border:#465059;--border-weak:#3a434b}}:root[data-easy=on][data-theme=dark]{--text-body:#dde2e7;--text-muted:#b3bcc4;--text-disabled:#8f99a2;--border:#465059;--border-weak:#3a434b}:root[data-easy=on] .cell{font-weight:600}:root[data-easy=on] .numpad{gap:4px}:root[data-easy=on] .numpad button{border-radius:10px;font-size:clamp(17px,5vw,28px)}:root[data-easy=on] .numpad .left{font-size:9.5px}:root[data-easy=on] .tool{gap:2px;padding:6px 2px 5px}:root[data-easy=on] main.shell:has(.play-grid){padding-top:max(env(safe-area-inset-top), 10px)}:root[data-easy=on] .play-status{margin-bottom:6px!important}:root[data-easy=on] .play-pad{margin-top:6px!important}:root[data-easy=on] .play-pad .tool-row{margin-bottom:6px!important}:root[data-easy=on] .numpad button{aspect-ratio:1}
@keyframes gcSheetUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes gcFadeIn{0%{opacity:0}to{opacity:1}}.sheet-backdrop{z-index:50;background:#14181c73;justify-content:center;align-items:flex-end;animation:.14s ease-out gcFadeIn;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:88vh;color:var(--text);border:1px solid var(--border);padding:18px 20px max(env(safe-area-inset-bottom), 18px);box-shadow:var(--shadow-float);border-bottom:none;border-radius:22px 22px 0 0;animation:.2s ease-out gcSheetUp;overflow-y:auto}@media (min-width:900px){.sheet-backdrop{align-items:center}.sheet{border-bottom:1px solid var(--border);border-radius:22px;padding-bottom:20px}}:root[data-motion=off] .sheet,:root[data-motion=off] .sheet-backdrop{animation:none}.stat-tile{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;align-items:center;gap:8px;min-width:0;padding:9px 12px;display:flex}.stat-big{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700;line-height:1.15;display:block}.stat-sub{color:var(--text-muted);white-space:nowrap;font-size:10.5px;display:block}.flame{transform-origin:50% 90%;font-size:22px;line-height:1;animation:1.6s ease-in-out infinite gcFlame;display:inline-block}.flame-lg{font-size:40px}.flame-dim{filter:grayscale()opacity(.45);animation:none}@keyframes gcFlame{0%,to{transform:scale(1)rotate(-3deg)}50%{transform:scale(1.12)rotate(3deg)}}.xp-chip{background:color-mix(in srgb, var(--xp) 22%, transparent);color:var(--xp-dark);border:1px solid color-mix(in srgb, var(--xp) 55%, transparent);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-flex}:root[data-theme=dark] .xp-chip{color:#f2c86a}.progress-xp{background:linear-gradient(90deg, var(--xp), #f2c86a)}.badge-icon{background:var(--chrome);border-radius:50%;place-items:center;width:62px;height:62px;font-size:34px;line-height:1;display:inline-grid}.badge-on .badge-icon{background:radial-gradient(circle at 35% 30%, #fbe6b3, var(--xp) 70%, var(--xp-dark));box-shadow:0 4px 12px color-mix(in srgb, var(--xp) 45%, transparent)}.rank-badge{background:radial-gradient(circle at 35% 30%, #fbe6b3, var(--xp) 70%, var(--xp-dark));width:96px;height:96px;box-shadow:0 10px 28px color-mix(in srgb, var(--xp) 45%, transparent), inset 0 -4px 0 #0000001f;border-radius:50%;place-items:center;margin:0 auto 14px;font-size:50px;animation:.42s cubic-bezier(.2,1.4,.4,1) gcPop;display:grid}.rank-badge-sm{width:64px;height:64px;margin:0;font-size:32px;animation:none}@keyframes gcPop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.rank-card{background:var(--surface);width:min(92vw,380px);color:var(--text);border:1px solid var(--border-strong);text-align:center;box-shadow:var(--shadow-float);border-radius:24px;margin-bottom:12vh;padding:26px 22px 22px;animation:.22s ease-out gcSheetUp}.sheet-backdrop:has(.rank-card){align-items:center}.reward-xp{left:50%;top:calc(env(safe-area-inset-top) + 18px);z-index:60;background:radial-gradient(circle at 35% 30%, #fbe6b3, var(--xp) 70%, var(--xp-dark));color:#3d2a08;box-shadow:0 8px 22px color-mix(in srgb, var(--xp) 50%, transparent);pointer-events:none;border-radius:999px;padding:8px 18px;font-size:18px;font-weight:800;animation:1.3s ease-out forwards gcXp;position:fixed;transform:translate(-50%)}@keyframes gcXp{0%{opacity:0;transform:translate(-50%)translateY(14px)scale(.6)}18%{opacity:1;transform:translate(-50%)translateY(0)scale(1.1)}30%{transform:translate(-50%)translateY(0)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-16px)scale(.9)}}.reward-toast{left:50%;top:calc(env(safe-area-inset-top) + 14px);z-index:60;background:var(--ink);width:min(92vw,400px);color:var(--on-ink);border:1px solid var(--ink-border);box-shadow:var(--shadow-float);cursor:pointer;border-radius:18px;align-items:center;gap:12px;padding:11px 14px;animation:.26s cubic-bezier(.2,1.2,.4,1) gcToastIn;display:flex;position:fixed;transform:translate(-50%)}.reward-toast-icon{background:#f4f1ea1a;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-size:24px;display:grid}@keyframes gcToastIn{0%{opacity:0;transform:translate(-50%)translateY(-24px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.confetti{z-index:55;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{border-radius:2px;animation:2s ease-in forwards gcConfetti;position:absolute;top:-12px}@keyframes gcConfetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.7;transform:translateY(105vh)rotate(720deg)}}:root[data-motion=off] .flame,:root[data-motion=off] .rank-badge,:root[data-motion=off] .reward-toast,:root[data-motion=off] .rank-card{animation:none}:root[data-motion=off] .confetti{display:none}:root[data-easy=on]{zoom:1.22}:root[data-easy=on] .easy-hide{display:none!important}:root[data-easy=on] .label{letter-spacing:.06em;font-size:13px}:root[data-easy=on] .tabbar a{font-size:12.5px!important;font-weight:600!important}:root[data-easy=on] .btn{min-height:48px!important}:root[data-easy=on] .stat-sub{font-size:12px}:root[data-easy=on] .status-strip{grid-template-columns:1fr 1fr!important}:root[data-easy=on] .status-strip>:nth-child(2){grid-area:1/1/auto/-1}:root[data-easy=on] .stat-big{white-space:nowrap}:root[data-easy=on] .game-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:grid!important}@media (min-width:900px){:root[data-easy=on]{zoom:1.15}}.label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.shell{max-width:640px;padding:max(env(safe-area-inset-top), 26px) 22px 24px;margin:0 auto}.stack{gap:12px;display:grid}.tabbar{display:flex}.web-header,.only-desktop{display:none}@media (min-width:900px){.web-header{background:var(--chrome);border-bottom:1px solid var(--divider);z-index:20;align-items:center;gap:22px;height:62px;padding:0 44px;display:flex;position:sticky;top:0}.only-desktop{display:block}.only-desktop.trust-row{display:flex}.only-mobile{display:none!important}.shell{max-width:1180px;padding:44px 56px 56px}.home-grid{grid-template-columns:1fr 380px;align-items:start;gap:36px;display:grid}.home-two{grid-template-columns:1fr 1fr;gap:14px;display:grid}.home-three{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.play-grid{grid-template-columns:280px minmax(0,1fr) 300px;align-items:start;gap:0;display:grid}.play-col-l{border-right:1px solid var(--divider);padding-right:26px}.play-col-c{padding:0 26px}.play-col-r{border-left:1px solid var(--divider);padding-left:26px}.tabbar{display:none}.app-body{padding-bottom:0!important}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
