/* Статическая замена Tailwind Play CDN (рантайм-компилятор в браузере был медленным и
   render-blocking). Покрывает РОВНО те ~113 классов, что используются в шаблонах лендинга,
   каталога и детальной. Значения — из Tailwind defaults (spacing .25rem-шаг, шрифты, цвета).
   Если добавляешь в разметку НОВЫЙ tailwind-класс — допиши правило сюда. */

/* --- мини-preflight (Tailwind CDN раньше сбрасывал это; сохраняем согласованность) --- */
*,::before,::after{box-sizing:border-box}
h1,h2,h3,h4,h5,h6,p,figure,blockquote{margin:0}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}

/* --- display / layout --- */
.block{display:block}
.inline-block{display:inline-block}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}
.flex-col{flex-direction:column}
.flex-1{flex:1 1 0%}
.flex-shrink-0{flex-shrink:0}
.items-start{align-items:flex-start}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-baseline{align-items:baseline}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-20{gap:5rem}
.space-y-5>*+*{margin-top:1.25rem}
.relative{position:relative}
.absolute{position:absolute}
.fixed{position:fixed}
.sticky{position:sticky}
.z-10{z-index:10}
.overflow-hidden{overflow:hidden}
.mx-auto{margin-left:auto;margin-right:auto}
.container{width:100%}
@media(min-width:640px){.container{max-width:640px}}
@media(min-width:768px){.container{max-width:768px}}
@media(min-width:1024px){.container{max-width:1024px}}
@media(min-width:1280px){.container{max-width:1280px}}

/* --- spacing --- */
.p-2{padding:.5rem}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-10{padding:2.5rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}
.pt-16{padding-top:4rem}.pb-6{padding-bottom:1.5rem}.pb-32{padding-bottom:8rem}
.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}

/* --- sizing --- */
.w-6{width:1.5rem}.h-6{height:1.5rem}
.w-\[80px\]{width:80px}.h-\[80px\]{height:80px}
.min-w-0{min-width:0}
.max-w-\[1000px\]{max-width:1000px}.max-w-\[1400px\]{max-width:1400px}

/* --- 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-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}
.text-7xl{font-size:4.5rem;line-height:1}
.text-\[10px\]{font-size:10px}
.text-\[11px\]{font-size:11px}
.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}
.font-mono{font-family:'JetBrains Mono',ui-monospace,monospace}
.leading-tight{line-height:1.25}
.leading-\[0\.9\]{line-height:.9}
.tracking-tight{letter-spacing:-.025em}
.tracking-tighter{letter-spacing:-.05em}
.tracking-wider{letter-spacing:.05em}
.tracking-widest{letter-spacing:.1em}
.tracking-\[0\.3em\]{letter-spacing:.3em}
.text-center{text-align:center}.text-right{text-align:right}
.uppercase{text-transform:uppercase}
.italic{font-style:italic}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.no-underline{text-decoration-line:none}
.text-white{color:#fff}
.text-inherit{color:inherit}
.text-transparent{color:transparent}
.text-blue-500{color:#3b82f6}
.text-gray-400{color:#9ca3af}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}
.text-green-400{color:#4ade80}
.text-glow{text-shadow:0 0 30px rgba(59,130,246,.6)}

/* --- backgrounds / gradient text --- */
.bg-white{background-color:#fff}
.bg-white\/5{background-color:rgba(255,255,255,.05)}
.bg-blue-600{background-color:#2563eb}
.bg-clip-text{-webkit-background-clip:text;background-clip:text}
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-grad-from,#3b82f6),var(--tw-grad-to,#dbeafe))}
.from-blue-500{--tw-grad-from:#3b82f6}
.to-blue-100{--tw-grad-to:#dbeafe}

/* --- borders / shadow / effects --- */
.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
.shadow-blue-500\/20{box-shadow:0 10px 15px -3px rgba(59,130,246,.2),0 4px 6px -4px rgba(59,130,246,.2)}
.shadow-blue-500\/40{box-shadow:0 10px 15px -3px rgba(59,130,246,.4),0 4px 6px -4px rgba(59,130,246,.4)}
.opacity-40{opacity:.4}.opacity-50{opacity:.5}
.transition-all{transition:all .15s cubic-bezier(.4,0,.2,1)}
.cursor-pointer{cursor:pointer}

/* --- states --- */
.hover\:bg-blue-500:hover{background-color:#3b82f6}

/* --- responsive (md=768, lg=1024) --- */
@media(min-width:768px){
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:p-14{padding:3.5rem}
  .md\:text-8xl{font-size:6rem;line-height:1}
}
@media(min-width:1024px){
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
