:root{--duo-primary: var(--primary, #6a5cf6);--duo-primary-hover: #5a4def;--duo-primary-active: #4f46e5;--duo-primary-shadow: #4334c9;--duo-primary-bg: #eeecfe;--duo-on-primary: #ffffff;--duo-success: #34c759;--duo-success-hover: #2db44f;--duo-success-shadow: #28a347;--duo-success-bg: #e6f9ed;--duo-on-success: #0a2e16;--duo-danger: #e03131;--duo-danger-hover: #c92a2a;--duo-danger-shadow: #b02424;--duo-danger-bg: #ffebeb;--duo-on-danger: #ffffff;--duo-info: #30ccd8;--duo-info-hover: #25bcc8;--duo-info-shadow: #1faab5;--duo-info-bg: #e4fafc;--duo-on-info: #06222a;--duo-warning: #ffb020;--duo-streak: #ff9600;--duo-xp: #ffc800;--duo-ink: #2b2b40;--duo-ink-soft: #6b6b80;--duo-border: #e5e5ec;--duo-border-shadow: #c7c7d1;--duo-surface: #ffffff;--duo-surface-alt: #f7f7fb;--duo-locked-bg: #e5e5ec;--duo-locked-text: #afafbf;--duo-bg-page: var(--duo-surface);--duo-bg-section: var(--duo-surface-alt);--duo-bg-subtle: rgba(106, 92, 246, .04);--duo-bg-hero: linear-gradient(135deg, #eeecfe 0%, #e4fafc 100%);--duo-surface-raised: var(--duo-surface);--duo-surface-glass: rgba(255, 255, 255, .7);--duo-surface-sidebar: #f5f5f9;--duo-grad-streak: linear-gradient(135deg, var(--duo-streak), var(--duo-xp));--duo-grad-achievement: linear-gradient(135deg, var(--duo-primary), #7c6ff8);--duo-container-max: 1280px;--duo-page-pad: 16px;--duo-page-pad-lg: 32px;--duo-section-gap: 20px;--duo-modal-max: 480px;--duo-font: "Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", Roboto, sans-serif;--duo-text-display: 32px;--duo-text-h1: 26px;--duo-text-h2: 22px;--duo-text-h3: 18px;--duo-text-body-lg: 17px;--duo-text-body: 15px;--duo-text-caption: 13px;--duo-text-button: 16px;--duo-weight-medium: 500;--duo-weight-semibold: 600;--duo-weight-bold: 700;--duo-weight-extrabold: 800;--duo-space-0: 0;--duo-space-1: 2px;--duo-space-2: 4px;--duo-space-3: 8px;--duo-space-4: 12px;--duo-space-5: 16px;--duo-space-6: 20px;--duo-space-7: 24px;--duo-space-8: 32px;--duo-space-10: 40px;--duo-space-12: 48px;--duo-space-16: 64px;--duo-radius-sm: 8px;--duo-radius-md: 12px;--duo-radius-lg: 16px;--duo-radius-xl: 20px;--duo-radius-2xl: 28px;--duo-radius-pill: 9999px;--duo-elev-1: 0 2px 6px rgba(0, 0, 0, .06);--duo-elev-2: 0 8px 20px rgba(0, 0, 0, .1);--duo-elev-3: 0 18px 40px rgba(0, 0, 0, .16);--duo-press-depth: 4px;--duo-dur-fast: .1s;--duo-dur-base: .18s;--duo-dur-slow: .28s;--duo-ease-out: cubic-bezier(.22, 1, .36, 1);--duo-ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--duo-z-dropdown: 1000;--duo-z-sticky: 1100;--duo-z-header: 1200;--duo-z-overlay: 1300;--duo-z-modal: 1400;--duo-z-toast: 1500;--duo-bp-sm: 480px;--duo-bp-md: 768px;--duo-bp-lg: 1024px;--duo-bp-xl: 1280px}:root[data-theme=dark],[data-duo-theme=dark]{--duo-primary: #7c6ff8;--duo-primary-hover: #8b80fa;--duo-primary-active: #6a5cf6;--duo-primary-shadow: #3a2db0;--duo-primary-bg: #241f4a;--duo-on-primary: #ffffff;--duo-success: #3dd178;--duo-success-hover: #34bd6c;--duo-success-shadow: #259651;--duo-success-bg: #14301f;--duo-on-success: #0a2e16;--duo-danger: #cf3636;--duo-danger-hover: #b92e2e;--duo-danger-shadow: #962222;--duo-danger-bg: #3a1717;--duo-on-danger: #ffffff;--duo-info: #45d8e4;--duo-info-hover: #36cad6;--duo-info-shadow: #1a8e99;--duo-info-bg: #103035;--duo-on-info: #06222a;--duo-warning: #ffc04a;--duo-streak: #ffa726;--duo-xp: #ffd24a;--duo-ink: #f4f6fa;--duo-ink-soft: #9ca3af;--duo-border: #2e2e3a;--duo-border-shadow: #1c1c26;--duo-surface: #15151c;--duo-surface-alt: #1c1c26;--duo-locked-bg: #2a2a34;--duo-locked-text: #5c5c6b;--duo-bg-subtle: rgba(124, 111, 248, .1);--duo-bg-hero: linear-gradient(135deg, #241f4a 0%, #103035 100%);--duo-surface-glass: rgba(30, 30, 40, .8);--duo-surface-sidebar: #202029}.duo-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--duo-space-3);font-family:var(--duo-font);font-size:var(--duo-text-button);font-weight:var(--duo-weight-extrabold);line-height:1;padding:0 var(--duo-space-7);height:48px;border:none;border-radius:var(--duo-radius-lg);color:var(--duo-on-primary);background:var(--duo-primary);box-shadow:0 var(--duo-press-depth) 0 var(--duo-primary-shadow);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform var(--duo-dur-fast) var(--duo-ease-out),box-shadow var(--duo-dur-fast) var(--duo-ease-out),filter var(--duo-dur-fast) var(--duo-ease-out)}.duo-btn:hover{background:var(--duo-primary-hover)}.duo-btn:active{transform:translateY(var(--duo-press-depth));box-shadow:0 0 0 var(--duo-primary-shadow)}.duo-btn:disabled,.duo-btn[aria-disabled=true]{background:var(--duo-locked-bg);color:var(--duo-locked-text);box-shadow:0 var(--duo-press-depth) 0 var(--duo-border-shadow);cursor:not-allowed;pointer-events:none}.duo-btn--sm{height:40px;font-size:var(--duo-text-body);padding:0 var(--duo-space-5);--duo-press-depth: 3px}.duo-btn--lg{height:56px;padding:0 var(--duo-space-8)}.duo-btn--full{width:100%}.duo-btn--success{background:var(--duo-success);color:var(--duo-on-success);box-shadow:0 var(--duo-press-depth) 0 var(--duo-success-shadow)}.duo-btn--success:hover{background:var(--duo-success-hover)}.duo-btn--success:active{box-shadow:0 0 0 var(--duo-success-shadow)}.duo-btn--danger{background:var(--duo-danger);color:var(--duo-on-danger);box-shadow:0 var(--duo-press-depth) 0 var(--duo-danger-shadow)}.duo-btn--danger:hover{background:var(--duo-danger-hover)}.duo-btn--danger:active{box-shadow:0 0 0 var(--duo-danger-shadow)}.duo-btn--info{background:var(--duo-info);color:var(--duo-on-info);box-shadow:0 var(--duo-press-depth) 0 var(--duo-info-shadow)}.duo-btn--info:hover{background:var(--duo-info-hover)}.duo-btn--info:active{box-shadow:0 0 0 var(--duo-info-shadow)}.duo-btn--ghost{background:var(--duo-surface);color:var(--duo-primary);box-shadow:0 var(--duo-press-depth) 0 var(--duo-border-shadow);border:2px solid var(--duo-border)}.duo-btn--ghost:hover{background:var(--duo-primary-bg)}.duo-btn--ghost:active{box-shadow:0 0 0 var(--duo-border-shadow)}.duo-btn--locked{background:var(--duo-locked-bg);color:var(--duo-locked-text);box-shadow:0 var(--duo-press-depth) 0 var(--duo-border-shadow);cursor:not-allowed}@keyframes duo-pop-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes duo-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes duo-celebrate{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes duo-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.duo-anim-pop-in{animation:duo-pop-in var(--duo-dur-base) var(--duo-ease-bounce)}.duo-anim-shake{animation:duo-shake var(--duo-dur-slow) var(--duo-ease-out)}.duo-anim-celebrate{animation:duo-celebrate var(--duo-dur-slow) var(--duo-ease-bounce)}.duo-anim-pulse{animation:duo-pulse 1.4s var(--duo-ease-out) infinite}@media (prefers-reduced-motion: reduce){.duo-anim-pop-in,.duo-anim-shake,.duo-anim-celebrate,.duo-anim-pulse{animation:none!important}.duo-btn{transition:none!important}}
