/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#334155}
html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}
body{margin:0;line-height:inherit}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:inherit}
button,input{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}
button{cursor:pointer;background-color:transparent;background-image:none}
img{display:block;max-width:100%;height:auto}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:#1e293b}
::-webkit-scrollbar-thumb{background:#475569;border-radius:9999px}

/* ===== LAYOUT ===== */
.flex{display:flex}
.inline-flex{display:inline-flex}
.grid{display:grid}
.hidden{display:none}
.block{display:block}
.flex-col{flex-direction:column}
.flex-row{flex-direction:row}
.flex-wrap{flex-wrap:wrap}
.flex-grow{flex-grow:1}
.flex-shrink-0{flex-shrink:0}
.items-center{align-items:center}
.items-baseline{align-items:baseline}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.gap-2{gap:.5rem}
.gap-4{gap:1rem}
.gap-8{gap:2rem}
.gap-6{gap:1.5rem}
.gap-12{gap:3rem}
.space-x-4>:not(:last-child){margin-right:1rem}
.space-y-1>:not(:last-child){margin-bottom:.25rem}
.space-y-3>:not(:last-child){margin-bottom:.75rem}
.space-y-4>:not(:last-child){margin-bottom:1rem}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.col-span-1{grid-column:span 1/span 1}
.min-h-screen{min-height:100vh}
.w-full{width:100%}
.w-5{width:1.25rem}
.w-6{width:1.5rem}
.w-10{width:2.5rem}
.h-5{height:1.25rem}
.h-6{height:1.5rem}
.h-10{height:2.5rem}
.h-16{height:4rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-7xl{max-width:80rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-h-0{max-height:0}
.max-h-60{max-height:15rem}
.max-h-96{max-height:24rem}
.overflow-hidden{overflow:hidden}
.overflow-y-auto{overflow-y:auto}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== POSITION ===== */
.relative{position:relative}
.absolute{position:absolute}
.sticky{position:sticky}
.top-0{top:0}
.top-2{top:.5rem}
.top-5{top:1.25rem}
.right-3{right:.75rem}
.bottom-2{bottom:.5rem}
.left-6{left:1.5rem}
.z-50{z-index:50}

/* ===== SPACING ===== */
.p-2{padding:.5rem}
.p-3{padding:.75rem}
.p-4{padding:1rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.p-10{padding:2.5rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.pt-2{padding-top:.5rem}
.pt-8{padding-top:2rem}
.pb-3{padding-bottom:.75rem}
.pr-2{padding-right:.5rem}
.pr-4{padding-right:1rem}
.pl-14{padding-left:3.5rem}
.pr-24{padding-right:6rem}
.mb-2{margin-bottom:.5rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-10{margin-bottom:2.5rem}
.mb-12{margin-bottom:3rem}
.mb-8{margin-bottom:2rem}
.mb-16{margin-bottom:4rem}
.mt-16{margin-top:4rem}
.mt-1{margin-top:.25rem}
.mt-6{margin-top:1.5rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mx-auto{margin-left:auto;margin-right:auto}
.ml-10{margin-left:2.5rem}

/* ===== TYPOGRAPHY ===== */
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-5xl{font-size:3rem;line-height:1}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-6xl{font-size:3.75rem;line-height:1}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.uppercase{text-transform:uppercase}
.italic{font-style:italic}
.tracking-widest{letter-spacing:.1em}
.leading-relaxed{line-height:1.625}
.text-center{text-align:center}
.text-left{text-align:left}

/* ===== COLORS ===== */
.bg-slate-900{background-color:#0f172a}
.bg-slate-800{background-color:#1e293b}
.bg-slate-700{background-color:#334155}
.bg-slate-700\/30{background-color:rgba(51,65,85,.3)}
.bg-slate-900\/50{background-color:rgba(15,23,42,.5)}
.text-white{color:#fff}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-cyan-400{color:#22d3ee}
.text-red-500{color:#ef4444}
.text-emerald-400{color:#34d399}
.text-violet-400{color:#a78bfa}
.text-amber-400{color:#fbbf24}
.bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}
.bg-violet-500\/10{background-color:rgba(139,92,246,.1)}
.bg-amber-500\/10{background-color:rgba(245,158,11,.1)}
.bg-cyan-500\/10{background-color:rgba(6,182,212,.1)}

/* ===== BACKGROUNDS & GRADIENTS ===== */
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-from),var(--tw-gradient-to))}
.from-cyan-400{--tw-gradient-from:#22d3ee;--tw-gradient-to:rgba(34,211,238,0)}
.from-cyan-500{--tw-gradient-from:#06b6d4;--tw-gradient-to:rgba(6,182,212,0)}
.to-blue-500{--tw-gradient-to:#3b82f6}
.to-blue-600{--tw-gradient-to:#2563eb}
.bg-clip-text{-webkit-background-clip:text;background-clip:text}
.text-transparent{color:transparent}

/* ===== BORDERS ===== */
.border{border-width:1px}
.border-b{border-bottom-width:1px}
.border-t{border-top-width:1px}
.border-slate-700{border-color:#334155}
.border-slate-700\/50{border-color:rgba(51,65,85,.5)}
.border-cyan-500\/30{border-color:rgba(6,182,212,.3)}
.border-emerald-500\/20{border-color:rgba(16,185,129,.2)}
.border-violet-500\/20{border-color:rgba(139,92,246,.2)}
.border-amber-500\/20{border-color:rgba(245,158,11,.2)}
.border-cyan-500\/20{border-color:rgba(6,182,212,.2)}

/* ===== BORDER RADIUS ===== */
.rounded-md{border-radius:.375rem}
.rounded-lg{border-radius:.5rem}
.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-3xl{border-radius:1.5rem}
.rounded-full{border-radius:9999px}

/* ===== SHADOWS ===== */
.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
.shadow-cyan-500\/20{--tw-shadow-color:rgba(6,182,212,.2);box-shadow:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}

/* ===== TRANSITIONS ===== */
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.duration-300{transition-duration:300ms}
.ease-in-out{transition-timing-function:cubic-bezier(.42,0,.58,1)}

/* ===== TRANSFORMS ===== */
.transform{transform:translateX(var(--tw-translate-x,0)) translateY(var(--tw-translate-y,0)) rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1))}
.rotate-180{--tw-rotate:180deg;transform:rotate(180deg)}
.outline-none{outline:2px solid transparent;outline-offset:2px}
.object-contain{object-fit:contain}

/* ===== ANIMATIONS ===== */
.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

/* Apple-style spring animations */
@keyframes slideUpIn{
  0%{opacity:0;transform:translateY(30px) scale(.92);filter:blur(8px)}
  40%{opacity:1;filter:blur(0)}
  70%{transform:translateY(-4px) scale(1.01)}
  85%{transform:translateY(2px) scale(.998)}
  100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@keyframes fadeScaleIn{
  0%{opacity:0;transform:scale(.85);filter:blur(6px)}
  50%{opacity:1;filter:blur(0)}
  75%{transform:scale(1.03)}
  100%{opacity:1;transform:scale(1);filter:blur(0)}
}
@keyframes glowPulse{
  0%{box-shadow:0 0 0 0 rgba(6,182,212,.4)}
  50%{box-shadow:0 0 20px 4px rgba(6,182,212,.15)}
  100%{box-shadow:0 0 0 0 rgba(6,182,212,0)}
}
@keyframes shimmer{
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
@keyframes btnSuccess{
  0%{transform:scale(1)}
  15%{transform:scale(.94)}
  40%{transform:scale(1.04)}
  65%{transform:scale(.99)}
  100%{transform:scale(1)}
}
.anim-slide-up{animation:slideUpIn .7s cubic-bezier(.16,1,.3,1) forwards}
.anim-fade-scale{animation:fadeScaleIn .5s cubic-bezier(.16,1,.3,1) forwards}
.anim-glow{animation:glowPulse 1.5s ease-out}
.anim-btn-success{animation:btnSuccess .5s cubic-bezier(.16,1,.3,1)}
.anim-stagger-1{animation-delay:.08s}
.anim-stagger-2{animation-delay:.16s}
.anim-shimmer{background:linear-gradient(90deg,transparent 25%,rgba(6,182,212,.08) 50%,transparent 75%);background-size:200% 100%;animation:shimmer 2s ease-in-out}
.anim-init{opacity:0;transform:translateY(20px)}

/* ===== HOVER STATES ===== */
.hover\:text-white:hover{color:#fff}
.hover\:text-cyan-400:hover{color:#22d3ee}
.hover\:bg-slate-600:hover{background-color:#475569}
.hover\:bg-slate-700:hover{background-color:#334155}
.hover\:bg-slate-700\/30:hover{background-color:rgba(51,65,85,.3)}
.hover\:bg-cyan-600:hover{background-color:#0891b2}
.hover\:from-cyan-400:hover{--tw-gradient-from:#22d3ee;--tw-gradient-to:rgba(34,211,238,0)}
.hover\:to-blue-500:hover{--tw-gradient-to:#3b82f6}
.hover\:border-cyan-500\/50:hover{border-color:rgba(6,182,212,.5)}
.hover\:scale-105:hover{transform:scale(1.05)}
.hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
.hover\:scale-\[1\.02\]:hover{transform:scale(1.02)}
.active\:scale-95:active{transform:scale(.95)}

/* ===== FOCUS STATES ===== */
.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--tw-ring-color,#06b6d4)}
.focus\:ring-cyan-500:focus{--tw-ring-color:#06b6d4}
.focus\:border-transparent:focus{border-color:transparent}

/* ===== GROUP HOVER ===== */
.group:hover .group-hover\:text-cyan-400{color:#22d3ee}
.group:hover .group-hover\:scale-110{transform:scale(1.1)}

/* ===== RESPONSIVE: sm (640px) ===== */
@media(min-width:640px){
  .sm\:px-3{padding-left:.75rem;padding-right:.75rem}
  .sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}
}

/* ===== RESPONSIVE: md (768px) ===== */
@media(min-width:768px){
  .md\:block{display:block}
  .md\:hidden{display:none}
  .md\:flex-row{flex-direction:row}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .md\:col-span-1{grid-column:span 1/span 1}
  .md\:text-left{text-align:left}
}

/* ===== RESPONSIVE: lg (1024px) ===== */
@media(min-width:1024px){
  .lg\:px-8{padding-left:2rem;padding-right:2rem}
}

/* ===== SVG icon utilities ===== */
/* ===== ADDITIONAL UTILITIES ===== */
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-5xl{font-size:3rem;line-height:1}
.text-6xl{font-size:3.75rem;line-height:1}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.mb-8{margin-bottom:2rem}
.mb-16{margin-bottom:4rem}
.mt-16{margin-top:4rem}
.gap-6{gap:1.5rem}
.gap-12{gap:3rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
@media(min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== SVG icon utilities ===== */
.icon{display:inline-block;vertical-align:middle;fill:currentColor}
.icon-sm{width:.875rem;height:.875rem}
.icon-base{width:1.25rem;height:1.25rem}
.icon-lg{width:1.5rem;height:1.5rem}
