/* Local utility layer inspired by Tailwind (offline build fallback). */
*,:before,:after{box-sizing:border-box;border:0 solid transparent}
html,body{margin:0;padding:0}
body{font-family:"Plus Jakarta Sans","Space Grotesk","Segoe UI",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:transparent}
img{max-width:100%;display:block}

.container{width:min(1200px,100% - 2rem);margin-inline:auto}

.min-h-screen{min-height:100vh}
.max-w-2xl{max-width:42rem}
.max-h-96{max-height:24rem}
.min-h-24{min-height:6rem}
.w-full{width:100%}
.w-32{width:8rem}
.block{display:block}
.inline-flex{display:inline-flex}
.flex{display:flex}
.inline-block{display:inline-block}
.grid{display:grid}
.hidden{display:none!important}

.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.flex-wrap{flex-wrap:wrap}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.space-y-2>*+*{margin-top:.5rem}
.space-y-3>*+*{margin-top:.75rem}
.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}
.space-y-6>*+*{margin-top:1.5rem}

.p-3{padding:.75rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.pt-4{padding-top:1rem}
.mt-1{margin-top:.25rem}
.mt-3{margin-top:.75rem}
.mt-4{margin-top:1rem}
.mt-8{margin-top:2rem}
.mb-2{margin-bottom:.5rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}

.text-xs{font-size:.75rem}
.text-sm{font-size:.875rem}
.text-lg{font-size:1.125rem}
.text-xl{font-size:1.25rem}
.text-2xl{font-size:1.5rem}
.text-3xl{font-size:1.875rem}
.text-4xl{font-size:2.25rem}
.font-semibold{font-weight:600}
.leading-tight{line-height:1.2}
.text-center{text-align:center}
.text-right{text-align:right}
.underline{text-decoration:underline}

.text-slate-100{color:#f8fafc}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-green-300{color:#86efac}
.text-rose-300{color:#fda4af}

.rounded-xl{border-radius:1rem}
.border-b{border-bottom-width:1px}
.border-t{border-top-width:1px}
.border-white\/10{border-color:rgba(255,255,255,.1)}
.opacity-60{opacity:.6}
.pointer-events-none{pointer-events:none}
.sticky{position:sticky}
.top-0{top:0}
.z-30{z-index:30}

.overflow-auto{overflow:auto}

@media (min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (min-width:1024px){
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (min-width:1280px){
  .xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
