/*
 * Critical public frontend fallback.
 * Keeps the public UI usable when CDN-generated Tailwind utilities are slow
 * or unavailable. The rules mirror only utilities used by base.html and the
 * public index; full styling still comes from Tailwind when it is available.
 */
:root {
    --pf-bg: #09090b;
    --pf-surface: rgba(24, 24, 27, .74);
    --pf-surface-strong: #18181b;
    --pf-border: rgba(255, 255, 255, .1);
    --pf-text: #fafafa;
    --pf-muted: #a1a1aa;
    --pf-soft: #d4d4d8;
    --pf-brand: #818cf8;
    --pf-brand-strong: #6366f1;
}

html,
body {
    min-height: 100%;
    background: var(--pf-bg);
    color: var(--pf-text);
}

[x-cloak] {
    display: none !important;
}

.tw-container { width: 100%; margin-left: auto; margin-right: auto; }
.tw-relative { position: relative; }
.tw-absolute { position: absolute; }
.tw-fixed { position: fixed; }
.tw-inset-0 { inset: 0; }
.tw-top-0 { top: 0; }
.tw-top-4 { top: 1rem; }
.tw-top-28 { top: 7rem; }
.tw-left-0 { left: 0; }
.tw-left-4 { left: 1rem; }
.tw-left-8 { left: 2rem; }
.tw-left-1\/2 { left: 50%; }
.tw-right-0 { right: 0; }
.tw-right-4 { right: 1rem; }
.tw-right-6 { right: 1.5rem; }
.tw-right-auto { right: auto; }
.tw-bottom-4 { bottom: 1rem; }
.tw-bottom-8 { bottom: 2rem; }
.tw-z-10 { z-index: 10; }
.tw-z-20 { z-index: 20; }
.tw-z-50 { z-index: 50; }
.tw-z-\[100\] { z-index: 100; }
.tw-z-\[200\] { z-index: 200; }
.tw-z-\[900\] { z-index: 900; }
.tw-z-\[999\] { z-index: 999; }

.tw-block { display: block; }
.tw-hidden { display: none !important; }
.tw-flex { display: flex; }
.tw-grid { display: grid; }
.tw-flex-1 { flex: 1 1 0%; }
.tw-shrink-0 { flex-shrink: 0; }
.tw-flex-col { flex-direction: column; }
.tw-flex-row { flex-direction: row; }
.tw-items-center { align-items: center; }
.tw-items-start { align-items: flex-start; }
.tw-justify-center { justify-content: center; }
.tw-justify-between { justify-content: space-between; }
.tw-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.tw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tw-grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.tw-col-span-3 { grid-column: span 3 / span 3; }
.tw-col-span-6 { grid-column: span 6 / span 6; }
.tw-gap-2 { gap: .5rem; }
.tw-gap-2\.5 { gap: .625rem; }
.tw-gap-3 { gap: .75rem; }
.tw-gap-3\.5 { gap: .875rem; }
.tw-gap-4 { gap: 1rem; }
.tw-gap-5 { gap: 1.25rem; }
.tw-gap-8 { gap: 2rem; }
.tw-gap-12 { gap: 3rem; }
.tw-gap-16 { gap: 4rem; }
.tw-space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.5rem; }

.tw-pointer-events-none { pointer-events: none; }
.tw-pointer-events-auto { pointer-events: auto; }
.tw-cursor-pointer { cursor: pointer; }
.tw-overflow-hidden { overflow: hidden; }
.tw-min-w-0 { min-width: 0; }
.tw-h-full { height: 100%; }
.tw-min-h-screen { min-height: 100vh; }
.tw-h-1 { height: .25rem; }
.tw-h-px { height: 1px; }
.tw-h-\[1px\] { height: 1px; }
.tw-h-7 { height: 1.75rem; }
.tw-h-8 { height: 2rem; }
.tw-h-9 { height: 2.25rem; }
.tw-h-10 { height: 2.5rem; }
.tw-h-16 { height: 4rem; }
.tw-h-24 { height: 6rem; }
.tw-w-7 { width: 1.75rem; }
.tw-w-8 { width: 2rem; }
.tw-w-9 { width: 2.25rem; }
.tw-w-10 { width: 2.5rem; }
.tw-w-16 { width: 4rem; }
.tw-w-56 { width: 14rem; }
.tw-w-\[400px\] { width: 400px; }
.tw-w-full { width: 100%; }
.tw-max-w-sm { max-width: 24rem; }
.tw-max-w-md { max-width: 28rem; }
.tw-max-w-3xl { max-width: 48rem; }
.tw-max-w-7xl { max-width: 80rem; }
.tw-max-w-\[1400px\] { max-width: 1400px; }

.tw-m-0 { margin: 0; }
.tw-mx-auto { margin-left: auto; margin-right: auto; }
.tw-mx-2 { margin-left: .5rem; margin-right: .5rem; }
.tw-my-1 { margin-top: .25rem; margin-bottom: .25rem; }
.tw-my-2 { margin-top: .5rem; margin-bottom: .5rem; }
.tw-mt-2 { margin-top: .5rem; }
.tw-mt-8 { margin-top: 2rem; }
.tw-mt-auto { margin-top: auto; }
.tw-mb-1\.5 { margin-bottom: .375rem; }
.tw-mb-3 { margin-bottom: .75rem; }
.tw-mb-4 { margin-bottom: 1rem; }
.tw-mb-5 { margin-bottom: 1.25rem; }
.tw-mb-6 { margin-bottom: 1.5rem; }
.tw-mb-8 { margin-bottom: 2rem; }
.tw-mb-16 { margin-bottom: 4rem; }
.tw-ml-1 { margin-left: .25rem; }
.tw-ml-2 { margin-left: .5rem; }
.tw-ml-4 { margin-left: 1rem; }
.tw-mr-2 { margin-right: .5rem; }
.tw-mr-3 { margin-right: .75rem; }

.tw-p-5 { padding: 1.25rem; }
.tw-p-6 { padding: 1.5rem; }
.tw-p-8 { padding: 2rem; }
.tw-px-1\.5 { padding-left: .375rem; padding-right: .375rem; }
.tw-px-3 { padding-left: .75rem; padding-right: .75rem; }
.tw-px-4 { padding-left: 1rem; padding-right: 1rem; }
.tw-px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.tw-px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.tw-px-8 { padding-left: 2rem; padding-right: 2rem; }
.tw-py-0\.5 { padding-top: .125rem; padding-bottom: .125rem; }
.tw-py-1\.5 { padding-top: .375rem; padding-bottom: .375rem; }
.tw-py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.tw-py-2\.5 { padding-top: .625rem; padding-bottom: .625rem; }
.tw-py-3 { padding-top: .75rem; padding-bottom: .75rem; }
.tw-py-3\.5 { padding-top: .875rem; padding-bottom: .875rem; }
.tw-py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.tw-py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.tw-pt-8 { padding-top: 2rem; }
.tw-pt-\[88px\] { padding-top: 88px; }
.tw-pl-1\.5 { padding-left: .375rem; }
.tw-pl-10 { padding-left: 2.5rem !important; }
.tw-pr-4 { padding-right: 1rem; }

.tw-rounded { border-radius: .25rem; }
.tw-rounded-lg { border-radius: .5rem; }
.tw-rounded-xl { border-radius: .75rem; }
.tw-rounded-2xl { border-radius: 1rem; }
.tw-rounded-full { border-radius: 9999px; }
.tw-rounded-\[20px\] { border-radius: 20px; }
.tw-rounded-\[32px\] { border-radius: 32px; }
.tw-border { border: 1px solid var(--pf-border); }
.tw-border-t { border-top: 1px solid var(--pf-border); }
.tw-border-slate-200\/10 { border-color: rgba(255,255,255,.1); }
.tw-border-slate-200\/20 { border-color: rgba(255,255,255,.2); }
.tw-border-white\/10 { border-color: rgba(255,255,255,.1); }
.tw-border-indigo-500\/30 { border-color: rgba(99,102,241,.3); }
.tw-border-brand-500\/30 { border-color: rgba(99,102,241,.3); }
.tw-border-emerald-500\/30 { border-color: rgba(16,185,129,.3); }
.tw-border-amber-500\/30 { border-color: rgba(245,158,11,.3); }
.tw-border-rose-500\/30 { border-color: rgba(244,63,94,.3); }

.tw-bg-\[\#050507\] { background: #050507; }
.tw-bg-\[\#18181b\] { background: #18181b; }
.tw-bg-\[\#18181b\]\/95 { background: rgba(24,24,27,.95); }
.tw-bg-white { background: rgba(39,39,42,.5); }
.tw-bg-white\/10 { background: rgba(255,255,255,.1); }
.tw-bg-black\/60 { background: rgba(0,0,0,.6); }
.tw-bg-slate-50 { background: rgba(255,255,255,.04); }
.tw-bg-slate-50\/5 { background: rgba(255,255,255,.05); }
.tw-bg-slate-200 { background: rgba(255,255,255,.1); }
.tw-bg-slate-800 { background: #27272a; }
.tw-bg-indigo-100 { background: rgba(99,102,241,.2); }
.tw-bg-indigo-500 { background: #6366f1; }
.tw-bg-indigo-500\/20 { background: rgba(99,102,241,.2); }
.tw-bg-brand-500\/5 { background: rgba(99,102,241,.05); }
.tw-bg-brand-500\/10 { background: rgba(99,102,241,.1); }
.tw-bg-brand-500\/20 { background: rgba(99,102,241,.2); }
.tw-bg-brand-600 { background: #6366f1; }
.tw-bg-brand-50\/10 { background: rgba(99,102,241,.1); }
.tw-bg-emerald-900\/90 { background: rgba(6,78,59,.9); }
.tw-bg-amber-900\/90 { background: rgba(120,53,15,.9); }
.tw-bg-rose-900\/90 { background: rgba(136,19,55,.9); }
.tw-bg-rose-50\/10,
.tw-bg-rose-500\/10 { background: rgba(244,63,94,.1); }
.tw-bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.tw-bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.tw-from-indigo-600 { --tw-gradient-from: #4f46e5; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(79,70,229,0)); }
.tw-to-violet-600 { --tw-gradient-to: #7c3aed; }
.tw-from-transparent { --tw-gradient-from: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent); }
.tw-via-indigo-500\/30 { --tw-gradient-stops: var(--tw-gradient-from), rgba(99,102,241,.3), var(--tw-gradient-to, transparent); }
.tw-to-transparent { --tw-gradient-to: transparent; }

.tw-text-center { text-align: center; }
.tw-text-xs { font-size: .75rem; line-height: 1rem; }
.tw-text-sm { font-size: .875rem; line-height: 1.25rem; }
.tw-text-base { font-size: 1rem; line-height: 1.5rem; }
.tw-text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.tw-text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.tw-text-2xl { font-size: 1.5rem; line-height: 2rem; }
.tw-text-\[10px\] { font-size: 10px; }
.tw-text-\[11px\] { font-size: 11px; }
.tw-text-\[12px\] { font-size: 12px; }
.tw-text-\[13px\] { font-size: 13px; }
.tw-text-\[15px\] { font-size: 15px; }
.tw-text-\[16px\] { font-size: 16px; }
.tw-font-medium { font-weight: 500; }
.tw-font-semibold { font-weight: 600; }
.tw-font-bold { font-weight: 700; }
.tw-font-black { font-weight: 900; }
.tw-uppercase { text-transform: uppercase; }
.tw-leading-relaxed { line-height: 1.625; }
.tw-tracking-tight { letter-spacing: -.025em; }
.tw-tracking-widest { letter-spacing: .1em; }
.tw-text-decoration-none { text-decoration: none !important; }
.tw-text-white { color: #fff !important; }
.tw-text-slate-900 { color: var(--pf-text); }
.tw-text-slate-700 { color: #e4e4e7; }
.tw-text-slate-500 { color: var(--pf-muted); }
.tw-text-slate-400 { color: #a1a1aa; }
.tw-text-slate-300 { color: #d4d4d8; }
.tw-text-brand-400,
.tw-text-brand-500,
.tw-text-brand-500\/80,
.tw-text-brand-600,
.tw-text-indigo-200,
.tw-text-indigo-400,
.tw-text-indigo-600 { color: var(--pf-brand); }
.tw-text-emerald-400,
.tw-text-emerald-50 { color: #6ee7b7; }
.tw-text-amber-400,
.tw-text-amber-50 { color: #fcd34d; }
.tw-text-rose-400,
.tw-text-rose-50,
.tw-text-rose-500,
.tw-text-rose-600 { color: #fb7185; }

.tw-opacity-0 { opacity: 0; }
.tw-opacity-50 { opacity: .5; }
.tw-opacity-80 { opacity: .8; }
.tw-opacity-100 { opacity: 1; }
.tw-transition { transition-property: color, background-color, border-color, opacity, box-shadow, transform; transition-duration: .15s; }
.tw-transition-all { transition: all .15s ease; }
.tw-transition-colors { transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
.tw-transition-opacity { transition: opacity .15s ease; }
.tw-transition-transform { transition: transform .15s ease; }
.tw-duration-150 { transition-duration: .15s; }
.tw-duration-200 { transition-duration: .2s; }
.tw-duration-300 { transition-duration: .3s; }
.tw-duration-500 { transition-duration: .5s; }
.tw-ease-in { transition-timing-function: ease-in; }
.tw-ease-out { transition-timing-function: ease-out; }

.tw--translate-x-1\/2 { transform: translateX(-50%); }
.tw--translate-y-1\/2 { transform: translateY(-50%); }
.tw--translate-y-2 { transform: translateY(-.5rem); }
.tw-translate-x-0 { transform: translateX(0); }
.tw-translate-x-full { transform: translateX(100%); }
.tw-translate-y-0 { transform: translateY(0); }
.tw-translate-y-8 { transform: translateY(2rem); }
.tw-translate-y-full { transform: translateY(100%); }
.tw-scale-95 { transform: scale(.95); }
.tw-scale-100 { transform: scale(1); }
.tw-scale-\[0\.98\] { transform: scale(.98); }
.tw-rotate-180 { transform: rotate(180deg); }

.tw-backdrop-blur-sm { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.tw-backdrop-blur-md { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.tw-backdrop-blur-xl { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
.tw-blur-\[60px\] { filter: blur(60px); }
.tw-shadow-inner { box-shadow: inset 0 2px 4px rgba(0,0,0,.25); }
.tw-shadow-2xl,
.tw-shadow-float { box-shadow: 0 25px 50px -12px rgba(0,0,0,.6); }
.tw-shadow-\[0_4px_12px_rgba\(79\,70\,229\,0\.4\)\] { box-shadow: 0 4px 12px rgba(79,70,229,.4); }
.tw-shadow-\[0_0_15px_-3px_rgba\(99\,102\,241\,0\.2\)\] { box-shadow: 0 0 15px -3px rgba(99,102,241,.2); }
.tw-shadow-\[0_20px_40px_-10px_rgba\(0\,0\,0\,0\.8\)\,0_0_0_1px_rgba\(255\,255\,255\,0\.05\)\] {
    box-shadow: 0 20px 40px -10px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.05);
}

.tw-animate-fade-in-up,
.animate-fade-in-up {
    animation: fadeInUp .5s cubic-bezier(.16, 1, .3, 1) forwards;
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 768px) {
    .md\:tw-hidden { display: none !important; }
    .md\:tw-flex { display: flex !important; }
    .md\:tw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:tw-flex-row { flex-direction: row; }
    .md\:tw-px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
    .md\:tw-px-8 { padding-left: 2rem; padding-right: 2rem; }
    .md\:tw-py-20 { padding-top: 5rem; padding-bottom: 5rem; }
    .md\:tw-bottom-8 { bottom: 2rem; }
    .md\:tw-left-8 { left: 2rem; }
    .md\:tw-right-auto { right: auto; }
    .md\:tw-w-\[400px\] { width: 400px; }
}

@media (min-width: 1024px) {
    .lg\:tw-grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .lg\:tw-col-span-3 { grid-column: span 3 / span 3; }
    .lg\:tw-col-span-6 { grid-column: span 6 / span 6; }
    .lg\:tw-gap-16 { gap: 4rem; }
}
