@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@theme inline{--animation-delay-0:0s;--animation-delay-75:75ms;--animation-delay-100:.1s;--animation-delay-150:.15s;--animation-delay-200:.2s;--animation-delay-300:.3s;--animation-delay-500:.5s;--animation-delay-700:.7s;--animation-delay-1000:1s;--animation-repeat-0:0;--animation-repeat-1:1;--animation-repeat-infinite:infinite;--animation-direction-normal:normal;--animation-direction-reverse:reverse;--animation-direction-alternate:alternate;--animation-direction-alternate-reverse:alternate-reverse;--animation-fill-mode-none:none;--animation-fill-mode-forwards:forwards;--animation-fill-mode-backwards:backwards;--animation-fill-mode-both:both;--percentage-0:0;--percentage-5:.05;--percentage-10:.1;--percentage-15:.15;--percentage-20:.2;--percentage-25:.25;--percentage-30:.3;--percentage-35:.35;--percentage-40:.4;--percentage-45:.45;--percentage-50:.5;--percentage-55:.55;--percentage-60:.6;--percentage-65:.65;--percentage-70:.7;--percentage-75:.75;--percentage-80:.8;--percentage-85:.85;--percentage-90:.9;--percentage-95:.95;--percentage-100:1;--percentage-translate-full:1;--animate-in:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);--animate-out:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}--animate-accordion-down:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);--animate-accordion-up:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);--animate-collapsible-down:collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);--animate-collapsible-up:collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);@keyframes collapsible-down{0%{height:0}to{height:var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto))))}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto))))}to{height:0}}--animate-caret-blink:caret-blink 1.25s ease-out infinite;@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}}@utility animation-duration-*{--tw-animation-duration:calc(--value(number)*1ms);--tw-animation-duration:--value(--animation-duration-*,[duration],"initial",[*]);animation-duration:calc(--value(number)*1ms);animation-duration:--value(--animation-duration-*,[duration],"initial",[*])}@utility delay-*{animation-delay:calc(--value(number)*1ms);animation-delay:--value(--animation-delay-*,[duration],"initial",[*]);--tw-animation-delay:calc(--value(number)*1ms);--tw-animation-delay:--value(--animation-delay-*,[duration],"initial",[*])}@utility repeat-*{animation-iteration-count:--value(--animation-repeat-*,number,"initial",[*]);--tw-animation-iteration-count:--value(--animation-repeat-*,number,"initial",[*])}@utility direction-*{animation-direction:--value(--animation-direction-*,"initial",[*]);--tw-animation-direction:--value(--animation-direction-*,"initial",[*])}@utility fill-mode-*{animation-fill-mode:--value(--animation-fill-mode-*,"initial",[*]);--tw-animation-fill-mode:--value(--animation-fill-mode-*,"initial",[*])}@utility running{animation-play-state:running}@utility paused{animation-play-state:paused}@utility play-state-*{animation-play-state:--value("initial",[*])}@utility blur-in{--tw-enter-blur:20px}@utility blur-in-*{--tw-enter-blur:calc(--value(number)*1px);--tw-enter-blur:--value(--blur-*,[*])}@utility blur-out{--tw-exit-blur:20px}@utility blur-out-*{--tw-exit-blur:calc(--value(number)*1px);--tw-exit-blur:--value(--blur-*,[*])}@utility fade-in{--tw-enter-opacity:0}@utility fade-in-*{--tw-enter-opacity:calc(--value(number)/100);--tw-enter-opacity:--value(--percentage-*,[*])}@utility fade-out{--tw-exit-opacity:0}@utility fade-out-*{--tw-exit-opacity:calc(--value(number)/100);--tw-exit-opacity:--value(--percentage-*,[*])}@utility zoom-in{--tw-enter-scale:0}@utility zoom-in-*{--tw-enter-scale:calc(--value(number)*1%);--tw-enter-scale:calc(--value(ratio));--tw-enter-scale:--value(--percentage-*,[*])}@utility -zoom-in-*{--tw-enter-scale:calc(--value(number)*-1%);--tw-enter-scale:calc(--value(ratio)*-1);--tw-enter-scale:--value(--percentage-*,[*])}@utility zoom-out{--tw-exit-scale:0}@utility zoom-out-*{--tw-exit-scale:calc(--value(number)*1%);--tw-exit-scale:calc(--value(ratio));--tw-exit-scale:--value(--percentage-*,[*])}@utility -zoom-out-*{--tw-exit-scale:calc(--value(number)*-1%);--tw-exit-scale:calc(--value(ratio)*-1);--tw-exit-scale:--value(--percentage-*,[*])}@utility spin-in{--tw-enter-rotate:30deg}@utility spin-in-*{--tw-enter-rotate:calc(--value(number)*1deg);--tw-enter-rotate:calc(--value(ratio)*360deg);--tw-enter-rotate:--value(--rotate-*,[*])}@utility -spin-in{--tw-enter-rotate:-30deg}@utility -spin-in-*{--tw-enter-rotate:calc(--value(number)*-1deg);--tw-enter-rotate:calc(--value(ratio)*-360deg);--tw-enter-rotate:--value(--rotate-*,[*])}@utility spin-out{--tw-exit-rotate:30deg}@utility spin-out-*{--tw-exit-rotate:calc(--value(number)*1deg);--tw-exit-rotate:calc(--value(ratio)*360deg);--tw-exit-rotate:--value(--rotate-*,[*])}@utility -spin-out{--tw-exit-rotate:-30deg}@utility -spin-out-*{--tw-exit-rotate:calc(--value(number)*-1deg);--tw-exit-rotate:calc(--value(ratio)*-360deg);--tw-exit-rotate:--value(--rotate-*,[*])}@utility slide-in-from-top{--tw-enter-translate-y:-100%}@utility slide-in-from-top-*{--tw-enter-translate-y:calc(--value(integer)*var(--spacing)*-1);--tw-enter-translate-y:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-enter-translate-y:calc(--value(ratio)*-100%);--tw-enter-translate-y:calc(--value(--translate-*,[percentage],[length])*-1)}@utility slide-in-from-bottom{--tw-enter-translate-y:100%}@utility slide-in-from-bottom-*{--tw-enter-translate-y:calc(--value(integer)*var(--spacing));--tw-enter-translate-y:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-enter-translate-y:calc(--value(ratio)*100%);--tw-enter-translate-y:--value(--translate-*,[percentage],[length])}@utility slide-in-from-left{--tw-enter-translate-x:-100%}@utility slide-in-from-left-*{--tw-enter-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-enter-translate-x:calc(--value(ratio)*-100%);--tw-enter-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}@utility slide-in-from-right{--tw-enter-translate-x:100%}@utility slide-in-from-right-*{--tw-enter-translate-x:calc(--value(integer)*var(--spacing));--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-enter-translate-x:calc(--value(ratio)*100%);--tw-enter-translate-x:--value(--translate-*,[percentage],[length])}@utility slide-in-from-start{&:dir(ltr){--tw-enter-translate-x:-100%}&:dir(rtl){--tw-enter-translate-x:100%}}@utility slide-in-from-start-*{&:where(:dir(ltr),[dir=ltr],[dir=ltr]*){--tw-enter-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-enter-translate-x:calc(--value(ratio)*-100%);--tw-enter-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}&:where(:dir(rtl),[dir=rtl],[dir=rtl]*){--tw-enter-translate-x:calc(--value(integer)*var(--spacing));--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-enter-translate-x:calc(--value(ratio)*100%);--tw-enter-translate-x:--value(--translate-*,[percentage],[length])}}@utility slide-in-from-end{&:dir(ltr){--tw-enter-translate-x:100%}&:dir(rtl){--tw-enter-translate-x:-100%}}@utility slide-in-from-end-*{&:where(:dir(ltr),[dir=ltr],[dir=ltr]*){--tw-enter-translate-x:calc(--value(integer)*var(--spacing));--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-enter-translate-x:calc(--value(ratio)*100%);--tw-enter-translate-x:--value(--translate-*,[percentage],[length])}&:where(:dir(rtl),[dir=rtl],[dir=rtl]*){--tw-enter-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-enter-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-enter-translate-x:calc(--value(ratio)*-100%);--tw-enter-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}}@utility slide-out-to-top{--tw-exit-translate-y:-100%}@utility slide-out-to-top-*{--tw-exit-translate-y:calc(--value(integer)*var(--spacing)*-1);--tw-exit-translate-y:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-exit-translate-y:calc(--value(ratio)*-100%);--tw-exit-translate-y:calc(--value(--translate-*,[percentage],[length])*-1)}@utility slide-out-to-bottom{--tw-exit-translate-y:100%}@utility slide-out-to-bottom-*{--tw-exit-translate-y:calc(--value(integer)*var(--spacing));--tw-exit-translate-y:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-exit-translate-y:calc(--value(ratio)*100%);--tw-exit-translate-y:--value(--translate-*,[percentage],[length])}@utility slide-out-to-left{--tw-exit-translate-x:-100%}@utility slide-out-to-left-*{--tw-exit-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-exit-translate-x:calc(--value(ratio)*-100%);--tw-exit-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}@utility slide-out-to-right{--tw-exit-translate-x:100%}@utility slide-out-to-right-*{--tw-exit-translate-x:calc(--value(integer)*var(--spacing));--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-exit-translate-x:calc(--value(ratio)*100%);--tw-exit-translate-x:--value(--translate-*,[percentage],[length])}@utility slide-out-to-start{&:dir(ltr){--tw-exit-translate-x:-100%}&:dir(rtl){--tw-exit-translate-x:100%}}@utility slide-out-to-start-*{&:where(:dir(ltr),[dir=ltr],[dir=ltr]*){--tw-exit-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-exit-translate-x:calc(--value(ratio)*-100%);--tw-exit-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}&:where(:dir(rtl),[dir=rtl],[dir=rtl]*){--tw-exit-translate-x:calc(--value(integer)*var(--spacing));--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-exit-translate-x:calc(--value(ratio)*100%);--tw-exit-translate-x:--value(--translate-*,[percentage],[length])}}@utility slide-out-to-end{&:dir(ltr){--tw-exit-translate-x:100%}&:dir(rtl){--tw-exit-translate-x:-100%}}@utility slide-out-to-end-*{&:where(:dir(ltr),[dir=ltr],[dir=ltr]*){--tw-exit-translate-x:calc(--value(integer)*var(--spacing));--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*100%);--tw-exit-translate-x:calc(--value(ratio)*100%);--tw-exit-translate-x:--value(--translate-*,[percentage],[length])}&:where(:dir(rtl),[dir=rtl],[dir=rtl]*){--tw-exit-translate-x:calc(--value(integer)*var(--spacing)*-1);--tw-exit-translate-x:calc(--value(--percentage-*,--percentage-translate-*)*-100%);--tw-exit-translate-x:calc(--value(ratio)*-100%);--tw-exit-translate-x:calc(--value(--translate-*,[percentage],[length])*-1)}}@theme inline{@keyframes accordion-down{0%{height:0}to{height:var(
        --radix-accordion-content-height,var(--accordion-panel-height,auto)
      )}}@keyframes accordion-up{0%{height:var(
        --radix-accordion-content-height,var(--accordion-panel-height,auto)
      )}to{height:0}}}@utility no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}}:root{--ds-color-primary:#7c5cff;--ds-color-primary-hover:#8e73ff;--ds-color-primary-muted:rgba(124,92,255,0.15);--ds-color-cyan:#00d4ff;--ds-color-cyan-muted:rgba(0,212,255,0.12);--ds-color-success:#22c55e;--ds-color-success-muted:rgba(34,197,94,0.15);--ds-color-warning:#f59e0b;--ds-color-warning-muted:rgba(245,158,11,0.15);--ds-color-error:#ef4444;--ds-color-error-muted:rgba(239,68,68,0.15);--ds-color-info:#60a5fa;--ds-color-info-muted:rgba(96,165,250,0.15);--ds-badge-beginner-fg:#86efac;--ds-badge-beginner-bg:rgba(34,197,94,0.15);--ds-badge-intermediate-fg:#c4b5fd;--ds-badge-intermediate-bg:rgba(124,92,255,0.15);--ds-badge-advanced-fg:#fcd34d;--ds-badge-advanced-bg:rgba(245,158,11,0.15);--ds-badge-elementary-fg:#67e8f9;--ds-badge-elementary-bg:rgba(0,212,255,0.12);--ds-color-bg:#0f172a;--ds-color-bg-elevated:#131f35;--ds-color-surface:rgba(15,23,42,0.75);--ds-color-surface-elevated:rgba(19,31,53,0.6);--ds-color-surface-solid:#1e293b;--ds-color-overlay:rgba(5,8,22,0.95);--ds-color-text:#f8fafc;--ds-color-text-secondary:#cbd5e1;--ds-color-text-muted:#94a3b8;--ds-color-text-subtle:#64748b;--ds-color-border:rgba(255,255,255,0.08);--ds-color-border-strong:rgba(255,255,255,0.15);--ds-color-border-accent:rgba(124,92,255,0.35);--ds-font-sans:var(--font-sans),"Inter","Segoe UI",system-ui,sans-serif;--ds-font-korean:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--ds-font-display:var(--ds-font-sans);--ds-text-xs:0.75rem;--ds-text-sm:0.875rem;--ds-text-base:1rem;--ds-text-lg:1.125rem;--ds-text-xl:1.25rem;--ds-text-2xl:1.5rem;--ds-text-3xl:1.875rem;--ds-text-4xl:2.25rem;--ds-space-1:0.25rem;--ds-space-2:0.5rem;--ds-space-3:0.75rem;--ds-space-4:1rem;--ds-space-5:1.25rem;--ds-space-6:1.5rem;--ds-space-8:2rem;--ds-space-10:2.5rem;--ds-space-12:3rem;--ds-radius-sm:0.5rem;--ds-radius-md:0.75rem;--ds-radius-lg:1rem;--ds-radius-xl:1.25rem;--ds-radius-2xl:1.5rem;--ds-radius-full:9999px;--ds-shadow-sm:0 1px 2px rgba(0,0,0,0.2);--ds-shadow-md:0 4px 16px rgba(0,0,0,0.25);--ds-shadow-lg:0 16px 40px rgba(0,0,0,0.35);--ds-shadow-glow-primary:0 0 0 1px rgba(124,92,255,0.12),0 16px 40px rgba(124,92,255,0.12);--ds-shadow-glow-success:0 0 24px rgba(34,197,94,0.15);--ds-duration-fast:150ms;--ds-duration-normal:250ms;--ds-duration-slow:450ms;--ds-duration-slower:600ms;--ds-ease-default:cubic-bezier(0.4,0,0.2,1);--ds-ease-out:cubic-bezier(0,0,0.2,1);--ds-max-width:72rem;--ds-max-width-wide:80rem;--ds-touch-target:44px;--learning-accent:var(--ds-color-primary);--learning-accent-hover:var(--ds-color-primary-hover);--learning-cyan:var(--ds-color-cyan);--learning-success:var(--ds-color-success);--learning-warning:var(--ds-color-warning);--learning-bg:var(--ds-color-bg);--learning-surface:var(--ds-color-surface);--learning-surface-elevated:var(--ds-color-surface-elevated);--learning-text:var(--ds-color-text);--learning-text-secondary:var(--ds-color-text-secondary);--learning-text-muted:var(--ds-color-text-muted);--learning-border:var(--ds-color-border)}html:not(.dark){--ds-color-bg:#f8fafc;--ds-color-bg-elevated:#f1f5f9;--ds-color-surface:rgba(255,255,255,0.92);--ds-color-surface-elevated:rgba(241,245,249,0.95);--ds-color-surface-solid:#ffffff;--ds-color-overlay:rgba(248,250,252,0.98);--ds-color-text:#0f172a;--ds-color-text-secondary:#334155;--ds-color-text-muted:#64748b;--ds-color-text-subtle:#94a3b8;--ds-color-border:rgba(15,23,42,0.1);--ds-color-border-strong:rgba(15,23,42,0.15);--ds-color-border-accent:rgba(124,92,255,0.4);--ds-shadow-sm:0 1px 2px rgba(15,23,42,0.06);--ds-shadow-md:0 4px 16px rgba(15,23,42,0.08);--ds-shadow-lg:0 16px 40px rgba(15,23,42,0.1)}.ds-badge,.fc-badge,.gm-badge,.vocab-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:var(--ds-radius-sm);font-size:.625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.ds-badge--default,.fc-badge--level,.gm-badge--level,.vocab-badge--level{background:rgba(255,255,255,.06);color:var(--ds-color-text-muted)}.ds-badge--accent{background:var(--ds-color-primary-muted);color:var(--ds-color-primary)}.ds-badge--beginner,.fc-badge--beginner,.gm-badge--beginner,.vocab-badge--beginner{background:var(--ds-badge-beginner-bg);color:var(--ds-badge-beginner-fg)}.ds-badge--elementary,.fc-badge--elementary,.gm-badge--elementary,.vocab-badge--elementary{background:var(--ds-badge-elementary-bg);color:var(--ds-badge-elementary-fg)}.ds-badge--intermediate,.fc-badge--intermediate,.gm-badge--intermediate,.vocab-badge--intermediate{background:var(--ds-badge-intermediate-bg);color:var(--ds-badge-intermediate-fg)}.ds-badge--advanced,.fc-badge--advanced,.gm-badge--advanced,.vocab-badge--advanced{background:var(--ds-badge-advanced-bg);color:var(--ds-badge-advanced-fg)}.ds-badge--done,.ds-badge--success,.fc-badge--done,.gm-badge--done,.vocab-badge--done{background:var(--ds-color-success-muted);color:var(--ds-color-success)}.fc-badge--new{background:var(--ds-color-info-muted);color:var(--ds-color-info)}.fc-badge--learning{background:var(--ds-color-warning-muted);color:var(--ds-color-warning)}.fc-badge--review{background:var(--ds-color-primary-muted);color:var(--ds-color-primary)}.fc-badge--mastered{background:var(--ds-color-success-muted);color:var(--ds-color-success)}.fc-badge--muted,.vocab-badge--muted{background:var(--ds-color-surface-elevated);color:var(--ds-color-text-muted)}.ds-badge--warning{background:var(--ds-color-warning-muted);color:var(--ds-color-warning)}.ds-card,.gm-glass,.learning-card,.learning-surface{background:var(--ds-color-surface);backdrop-filter:blur(12px);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg)}.fc-premium-card,.gm-card,.vocab-word-card{border-radius:var(--ds-radius-2xl);border:1px solid var(--ds-color-border);background:color-mix(in srgb,var(--ds-color-surface-solid) 90%,transparent);transition:box-shadow var(--ds-duration-normal) var(--ds-ease-default),border-color var(--ds-duration-normal) var(--ds-ease-default),transform var(--ds-duration-normal) var(--ds-ease-default)}.gm-card--expanded,.gm-card:hover,.vocab-word-card:hover{border-color:var(--ds-color-border-accent);box-shadow:var(--ds-shadow-glow-primary)}.ds-hero,.gm-hero,.learning-hero{border:1px solid color-mix(in srgb,var(--ds-color-primary) 25%,transparent);border-radius:var(--ds-radius-2xl);background:linear-gradient(145deg,color-mix(in srgb,var(--ds-color-primary) 18%,transparent) 0,var(--ds-color-surface-elevated) 40%,var(--ds-color-bg) 100%)}.ds-stat-chip,.learning-stat-chip{display:flex;flex-direction:column;gap:.125rem;padding:var(--ds-space-4);border-radius:var(--ds-radius-xl);border:1px solid var(--ds-color-border);background:var(--ds-color-surface-elevated);backdrop-filter:blur(8px)}.ds-shell,.fc-workspace,.grammar-workspace,.learning-shell,.vocab-workspace{font-family:var(--ds-font-sans);color:var(--ds-color-text)}.korean-text{font-family:var(--ds-font-korean)}.ds-btn-primary,.learning-btn-primary{border-radius:var(--ds-radius-md);background:var(--ds-color-primary);font-weight:600;color:#fff;min-height:var(--ds-touch-target)}.ds-btn-primary:hover,.learning-btn-primary:hover{background:var(--ds-color-primary-hover)}.grammar-mobile-nav,.learning-mobile-nav{background:color-mix(in srgb,var(--ds-color-bg) 95%,transparent);border-color:var(--ds-color-border);backdrop-filter:blur(12px)}.ds-focus-ring:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ds-color-bg),0 0 0 4px var(--ds-color-primary)}.bg-ds-panel{background:var(--ds-color-bg-elevated)}.bg-ds-panel-solid{background:color-mix(in srgb,var(--ds-color-surface-solid) 90%,transparent)}.bg-ds-overlay{background:color-mix(in srgb,var(--ds-color-bg) 95%,transparent)}.bg-ds-accent-muted{background:var(--ds-color-primary-muted)}.border-ds-subtle{border-color:var(--ds-color-border)}.ring-ds-primary{--tw-ring-color:var(--ds-color-primary)}.gradient-ds-progress{background:linear-gradient(to right,var(--ds-color-primary),var(--ds-color-cyan))}.gradient-ds-hero{background:linear-gradient(to bottom right,color-mix(in srgb,var(--ds-color-primary) 25%,transparent),var(--ds-color-bg-elevated),var(--ds-color-bg))}@media (prefers-reduced-motion:reduce){.fc-premium-card,.gm-card,.vocab-word-card{transition:none!important}}.gm-grammar-focus{color:var(--ds-color-error,#ef4444);font-weight:600}