.glass-card {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(217, 234, 245, 0.5);
}

.bento-item {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.bento-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(0, 43, 92, 0.15);
}

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
}

.gallery-item img {
    transition: transform 0.5s ease;
}

.gallery-item:hover img {
    transform: scale(1.05);
}

.gallery-overlay {
    background: linear-gradient(to top, rgba(0, 43, 92, 0.9) 0%, transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-item:hover .gallery-overlay {
    opacity: 1;
}

/* Tailwind Custom Colors missing from style.css */
.bg-deep-navy {
    background-color: #002B5C !important;
}

.bg-ice-blue {
    background-color: #D9EAF5 !important;
}

.bg-electric-blue {
    background-color: #2B69D1 !important;
}

.bg-ink-black {
    background-color: #1A1A1A !important;
}

.bg-surface-container-low {
    background-color: #f6f3f2 !important;
}

.bg-surface-container {
    background-color: #f0eded !important;
}

.text-deep-navy {
    color: #002B5C !important;
}

.text-ice-blue {
    color: #D9EAF5 !important;
}

.text-electric-blue {
    color: #2B69D1 !important;
}

.text-ink-black {
    color: #1A1A1A !important;
}

.text-primary {
    color: #00357f !important;
}

.text-on-surface-variant {
    color: #434653 !important;
}

/* Retrospective Title Fixes */
.text-headline-lg {
    font-size: 40px !important;
    line-height: 48px !important;
    font-weight: 600 !important;
}
.w-24 { width: 6rem !important; }
.tracking-widest { letter-spacing: 0.1em !important; }
.rounded-full { border-radius: 9999px !important; }


/* Overlay Gradients */
.bg-gradient-to-t.from-deep-navy\/80.to-transparent {
    background-image: linear-gradient(to top, rgba(0, 43, 92, 0.8), transparent);
}
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.items-end { align-items: flex-end; }

.border-ice-blue {
    border-color: #D9EAF5 !important;
}

.border-deep-navy {
    border-color: #002B5C !important;
}

.border-outline-variant {
    border-color: #c3c6d5 !important;
}

/* Tailwind Spacing and Typography missing from style.css */
.max-w-container-max {
    max-width: 1280px !important;
}

.gap-gutter {
    gap: 24px !important;
}

.px-margin-desktop {
    padding-left: 48px !important;
    padding-right: 48px !important;
}

.px-margin-mobile {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

.py-stack-lg {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
}

.font-body-md {
    font-family: Inter, sans-serif !important;
}

.font-display-lg {
    font-family: Montserrat, Hanken Grotesk, sans-serif !important;
}

.font-display-lg-mobile {
    font-family: Montserrat, Hanken Grotesk, sans-serif !important;
}

.font-headline-lg {
    font-family: Montserrat, Hanken Grotesk, sans-serif !important;
}

.font-headline-md {
    font-family: Montserrat, Hanken Grotesk, sans-serif !important;
}

.font-label-lg {
    font-family: Inter, sans-serif !important;
}

.font-label-md {
    font-family: Inter, sans-serif !important;
}

.font-label-sm {
    font-family: Inter, sans-serif !important;
}

.text-display-lg-mobile {
    font-size: 40px !important;
    line-height: 48px !important;
    letter-spacing: -0.01em !important;
    font-weight: 700 !important;
}

.text-headline-md {
    font-size: 24px !important;
    line-height: 32px !important;
    font-weight: 600 !important;
}

.text-label-lg {
    font-size: 14px !important;
    line-height: 20px !important;
    letter-spacing: 0.05em !important;
    font-weight: 600 !important;
}

.text-label-sm {
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 500 !important;
}

@media (min-width: 768px) {
    .md\:px-margin-desktop {
        padding-left: 48px !important;
        padding-right: 48px !important;
    }

    .md\:text-headline-lg {
        font-size: 40px !important;
        line-height: 48px !important;
        font-weight: 600 !important;
    }
}

/* Tailwind Spacing and Grid Layout (Without !important to preserve responsive hierarchy) */
.p-3 { padding: 0.75rem; }
.p-10 { padding: 2.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-8 { margin-top: 2rem; }
.mb-4 { margin-bottom: 1rem; }
.gap-4 { gap: 1rem; }

@media (min-width: 768px) {
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:col-span-1 { grid-column: span 1 / span 1; }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:col-span-3 { grid-column: span 3 / span 3; }
  .md\:aspect-auto { aspect-ratio: auto !important; }
  .md\:h-\[400px\] { height: 400px !important; }
}

.mt-\[25px\] { margin-top: 25px !important; }
.p-6 { padding: 1.5rem !important; }
@media (min-width: 768px) { .md\:text-display-lg { font-size: 64px !important; line-height: 72px !important; letter-spacing: -0.02em !important; font-weight: 700 !important; } }
.custom-inline-2 { border-radius: 9999px !important; }
