/* MiMAI Design System — Modern SaaS (Indigo + Slate) */
:root{
  --brand:#4f46e5; --brand-600:#4f46e5; --brand-700:#4338ca;
}
*{ -webkit-tap-highlight-color: transparent; }
html{ scroll-behavior:smooth; }
body{ font-family:'Pretendard',-apple-system,BlinkMacSystemFont,system-ui,Roboto,'Helvetica Neue','Segoe UI','Apple SD Gothic Neo','Noto Sans KR',sans-serif; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; letter-spacing:-0.01em; }

/* scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#cbd5e1; border-radius:8px; }
::-webkit-scrollbar-thumb:hover{ background:#94a3b8; }
::-webkit-scrollbar-track{ background:transparent; }

/* animations */
@keyframes fadeUp{ from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none;} }
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
@keyframes pop{ 0%{transform:scale(.96);opacity:0} 100%{transform:scale(1);opacity:1} }
@keyframes shimmer{ 0%{background-position:-400px 0} 100%{background-position:400px 0} }
@keyframes float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.fade-up{ animation:fadeUp .5s cubic-bezier(.2,.8,.2,1) both; }
.fade-in{ animation:fadeIn .4s ease both; }
.pop-in{ animation:pop .3s cubic-bezier(.2,.8,.2,1) both; }
.float-anim{ animation:float 6s ease-in-out infinite; }
.stagger > *{ animation:fadeUp .5s cubic-bezier(.2,.8,.2,1) both; }
.stagger > *:nth-child(1){animation-delay:.03s}
.stagger > *:nth-child(2){animation-delay:.07s}
.stagger > *:nth-child(3){animation-delay:.11s}
.stagger > *:nth-child(4){animation-delay:.15s}
.stagger > *:nth-child(5){animation-delay:.19s}
.stagger > *:nth-child(6){animation-delay:.23s}
.stagger > *:nth-child(7){animation-delay:.27s}
.stagger > *:nth-child(8){animation-delay:.31s}

/* skeleton */
.skeleton{ background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 37%,#e2e8f0 63%); background-size:800px 100%; animation:shimmer 1.4s infinite linear; border-radius:8px; }

/* hero gradient */
.hero-grad{ background:radial-gradient(1200px 600px at 80% -10%, rgba(99,102,241,.18), transparent 60%), radial-gradient(900px 500px at 0% 10%, rgba(168,85,247,.12), transparent 55%); }
.mesh{ background-image:radial-gradient(rgba(99,102,241,.08) 1px, transparent 1px); background-size:22px 22px; }

/* score ring */
.score-ring{ transform:rotate(-90deg); }

/* card hover */
.card-hover{ transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s; }
.card-hover:hover{ transform:translateY(-3px); box-shadow:0 12px 30px -12px rgba(79,70,229,.28); }

/* nav active */
.nav-link.active{ color:#4f46e5; background:#eef2ff; }

/* modal backdrop */
.modal-backdrop{ animation:fadeIn .2s ease both; }
.modal-card{ animation:pop .25s cubic-bezier(.2,.8,.2,1) both; }

/* toast */
#toast-wrap{ position:fixed; top:18px; right:18px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast{ animation:fadeUp .3s ease both; }

/* pulse dot */
.pulse-dot{ box-shadow:0 0 0 0 rgba(34,197,94,.5); animation:pulse 2s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)} 70%{box-shadow:0 0 0 8px rgba(34,197,94,0)} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0)} }

/* bot running line */
.run-line{ background:linear-gradient(90deg,transparent,rgba(99,102,241,.6),transparent); background-size:200% 100%; animation:shimmer 1.2s infinite linear; }

.line-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
