:root{--color-dominant:#0A0E1A;--color-secondary:#141A2E;--color-accent:#C9A84C;--color-accent-light:#DFC77D;--color-accent-warm:#D4A530;--color-accent-cool:#B8A855;--color-destructive:#E5484D;--color-text-primary:#F1F5F9;--color-text-secondary:#94A3B8;--color-text-muted:#64748B;--color-border:#2A3350;--color-tab-bar-bg:#0D1220;--color-tab-bar-border:#1A2040;--color-element-wood:#34D399;--color-element-fire:#FB7185;--color-element-earth:#FBBF24;--color-element-metal:#E2C97E;--color-element-water:#2DD4BF;--gradient-surface:linear-gradient(180deg,#0A0E1A,#111830 50%,#0F1628);--gradient-mystical:linear-gradient(160deg,#0A0E1A,#12103A 60%,#1A0E2E);--gradient-card:linear-gradient(160deg,#141A2E,#1A2040);--font-ui:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-hanja:var(--font-noto-serif-kr),"Noto Serif","Songti SC","STSong",serif}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--color-dominant)}body{font-family:var(--font-ui);background:var(--gradient-surface);color:var(--color-text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--color-accent);text-decoration:none;transition:opacity .2s ease}a:hover{opacity:.85;text-decoration:underline}::selection{background:rgba(201,168,76,.4);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-dominant)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 12px rgba(201,168,76,.2))}50%{filter:drop-shadow(0 0 20px rgba(201,168,76,.4))}}.fade-in{animation:fadeIn .6s ease-out both}.fade-in-up{animation:fadeInUp .7s ease-out both}.fade-in-up-delayed{animation:fadeInUp .7s ease-out .2s both}.fade-in-up-late{animation:fadeInUp .7s ease-out .4s both}.glow-pulse{animation:glowPulse 3s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.fade-in,.fade-in-up,.fade-in-up-delayed,.fade-in-up-late,.glow-pulse{animation:none!important}}