:root,body[data-theme=paper]{--paper-50:#fbf7ec;--paper-100:#f4ecda;--paper-200:#ece1c7;--paper-300:#decdaa;--paper-400:#c9b488;--ink-900:#1a1e2b;--ink-800:#2b3142;--ink-700:#3d435a;--ink-600:#555b72;--ink-500:#74798f;--ink-400:#989bad;--ink-300:#b8b9c5;--stamp-700:#8e2b22;--stamp-600:#a8362a;--stamp-500:#c04a3d;--stamp-100:#f1d9d4;--correct:#5e7e4e;--correct-soft:#dde6cf;--wrong:#a8362a;--wrong-soft:#f1d9d4;--highlight:#e8cf6f;--highlight-soft:#f6e9b4;--grain-opacity:0.10}body[data-theme=green]{--paper-50:#f8faf5;--paper-100:#eef3e9;--paper-200:#e0e9d8;--paper-300:#c8d6bb;--paper-400:#a5bb95;--ink-900:#16291c;--ink-800:#1f3a28;--ink-700:#2e4d38;--ink-600:#4a6451;--ink-500:#6b8174;--ink-400:#9aaba0;--ink-300:#c0c9c3;--stamp-700:#2e5f3b;--stamp-600:#3e7a4e;--stamp-500:#57975f;--stamp-100:#ddebd6;--correct:#3e7a4e;--correct-soft:#ddebd6;--wrong:#b23a2f;--wrong-soft:#f1d5d0;--highlight:#d9d673;--highlight-soft:#eceab3;--grain-opacity:0.08}body[data-theme=claude]{--paper-50:#fff;--paper-100:#faf9f5;--paper-200:#f2efe6;--paper-300:#e5e1d5;--paper-400:#bfb9a8;--ink-900:#1f1e1d;--ink-800:#2e2d2b;--ink-700:#44423e;--ink-600:#6b6862;--ink-500:#8b877e;--ink-400:#b3afa4;--ink-300:#d2cfc4;--stamp-700:#b85b3f;--stamp-600:#d97757;--stamp-500:#e08c70;--stamp-100:#f8e3d8;--correct:#5c8862;--correct-soft:#e0eae0;--wrong:#c84a35;--wrong-soft:#f4ddd5;--highlight:#e8c36f;--highlight-soft:#f6e3b4;--grain-opacity:0.04}body[data-theme=toss]{--paper-50:#fff;--paper-100:#f9fafb;--paper-200:#f2f4f6;--paper-300:#e5e8eb;--paper-400:#b0b8c1;--ink-900:#191f28;--ink-800:#333d4b;--ink-700:#4e5968;--ink-600:#6b7684;--ink-500:#8b95a1;--ink-400:#b0b8c1;--ink-300:#d1d6db;--stamp-700:#1b64da;--stamp-600:#3182f6;--stamp-500:#4b91f7;--stamp-100:#dce9fb;--correct:#00c471;--correct-soft:#d6f3e4;--wrong:#f04452;--wrong-soft:#fddee0;--highlight:#ffd43b;--highlight-soft:#fff3bf;--grain-opacity:0}body[data-theme=dark]{--paper-50:#25282a;--paper-100:#1a1d1f;--paper-200:#2e3133;--paper-300:#3d4144;--paper-400:#565b5f;--ink-900:#e8e6e0;--ink-800:#d2d0ca;--ink-700:#b5b3ac;--ink-600:#8d8b85;--ink-500:#6b6964;--ink-400:#545350;--ink-300:#3f3e3c;--stamp-700:#e68a6b;--stamp-600:#d97757;--stamp-500:#bd6244;--stamp-100:#4a3128;--correct:#7aa070;--correct-soft:#2c3d2c;--wrong:#d17666;--wrong-soft:#3d2a26;--highlight:#d2b068;--highlight-soft:#3d3622;--grain-opacity:0.06}:root,body[data-font=current]{--font-serif:"Noto Serif KR","Nanum Myeongjo",ui-serif,serif;--font-sans:"Pretendard","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}body[data-font=pretendard]{--font-serif:"Pretendard","Apple SD Gothic Neo",system-ui,sans-serif;--font-sans:"Pretendard","Apple SD Gothic Neo",system-ui,sans-serif}body[data-font=nanum]{--font-serif:"Nanum Myeongjo",serif;--font-sans:"Nanum Gothic","Apple SD Gothic Neo",sans-serif}body[data-font=notosans]{--font-serif:"Noto Serif KR",serif;--font-sans:"Noto Sans KR",system-ui,sans-serif}body[data-font=gothic]{--font-serif:"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕",sans-serif;--font-sans:"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕",sans-serif}:root{--r-sm:4px;--r-md:8px;--r-lg:14px;--r-xl:22px;--sh-sm:0 1px 2px rgba(0,0,0,.06),0 1px 1px rgba(0,0,0,.04);--sh-md:0 4px 14px -6px rgba(0,0,0,.18),0 2px 4px rgba(0,0,0,.05);--sh-lg:0 18px 36px -16px rgba(0,0,0,.28),0 4px 10px rgba(0,0,0,.06)}body[data-theme=dark]{--sh-sm:0 1px 2px rgba(0,0,0,.4);--sh-md:0 4px 14px -6px rgba(0,0,0,.5);--sh-lg:0 18px 36px -16px rgba(0,0,0,.6)}body,html{margin:0;padding:0;height:100%;background:var(--paper-100);overscroll-behavior:none}body{font-family:var(--font-sans);color:var(--ink-900);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}#root{width:100vw;height:100vh}a{color:inherit}button{font-family:inherit}@media (max-width:899px){main{padding-bottom:env(safe-area-inset-bottom)}}.paper-grain{background-color:var(--paper-100);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.18  0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:240px 240px}.paper-grain-soft{background-color:var(--paper-50);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.40  0 0 0 0 0.30  0 0 0 0 0.16  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:240px 240px}body[data-theme=claude] .paper-grain,body[data-theme=claude] .paper-grain-soft,body[data-theme=dark] .paper-grain,body[data-theme=dark] .paper-grain-soft,body[data-theme=green] .paper-grain,body[data-theme=green] .paper-grain-soft{background-image:none}.notebook-lines{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,color-mix(in srgb,var(--ink-900) 10%,transparent) 31px,color-mix(in srgb,var(--ink-900) 10%,transparent) 32px)}.stamp{display:inline-flex;align-items:center;justify-content:center;color:var(--stamp-600);border:2px solid var(--stamp-600);font-family:var(--font-serif);font-weight:700;letter-spacing:.06em;background:color-mix(in srgb,var(--stamp-600) 6%,transparent);transform:rotate(-4deg);text-transform:uppercase;opacity:.92}.stamp.square{border-radius:4px;padding:6px 10px}.stamp.round{border-radius:999px;padding:8px 14px}.t-serif{font-family:var(--font-serif)}.t-sans{font-family:var(--font-sans)}.t-mono{font-family:var(--font-mono)}.label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500)}.btn,.label{font-family:var(--font-sans);font-weight:600}.btn{display:inline-flex;align-items:center;gap:8px;border-radius:var(--r-md);padding:10px 16px;font-size:14px;border:1px solid var(--paper-300);background:var(--paper-50);color:var(--ink-800);cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:hover{background:var(--paper-100)}.btn-primary{background:var(--ink-900);color:var(--paper-50);border-color:var(--ink-900)}.btn-primary:hover{background:var(--ink-800)}.btn-stamp{background:var(--stamp-600);color:var(--paper-50);border-color:var(--stamp-600)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:color-mix(in srgb,var(--ink-900) 6%,transparent)}.card{background:var(--paper-50);border:1px solid var(--paper-300);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.choice-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ink-700);font-family:var(--font-serif);font-weight:600;font-size:14px;color:var(--ink-800);flex-shrink:0}.scroll-thin::-webkit-scrollbar{width:8px;height:8px}.scroll-thin::-webkit-scrollbar-thumb{background:var(--paper-300);border-radius:4px}.scroll-thin::-webkit-scrollbar-track{background:transparent}.hl{background:linear-gradient(180deg,transparent 55%,var(--highlight-soft) 55%)}.hl,.hl-key{padding:0 2px}.hl-key{background:linear-gradient(180deg,transparent 55%,color-mix(in srgb,var(--stamp-600) 20%,transparent) 55%);color:var(--stamp-700);font-weight:600}body[data-theme=toss] .paper-grain,body[data-theme=toss] .paper-grain-soft{background-image:none;background-color:var(--paper-100)}body[data-theme=toss] .paper-grain-soft{background-color:var(--paper-50)}body[data-theme=toss] .notebook-lines{background-image:none}body[data-theme=toss] .stamp{display:none}body[data-theme=toss] .card{box-shadow:0 4px 14px -8px rgba(25,31,40,.15);border-color:var(--paper-300)}body[data-theme=toss] .btn{border-radius:10px;font-weight:700;padding:12px 18px}body[data-theme=toss] .btn-primary{background:var(--stamp-600);border-color:var(--stamp-600);color:#fff}body[data-theme=toss] .btn-primary:hover{background:var(--stamp-700)}body[data-theme=toss] .hl-key{background:linear-gradient(180deg,transparent 55%,var(--stamp-100) 55%);color:var(--stamp-700)}body[data-theme=dark] input,body[data-theme=dark] textarea{color:var(--ink-900);background:transparent}body[data-theme=dark] input::placeholder,body[data-theme=dark] textarea::placeholder{color:var(--ink-500)}