@import 'tailwindcss';
@import 'tw-animate-css';
@import 'shadcn/tailwind.css';

@custom-variant dark (&:is(.dark *));

@theme inline {
  --font-sans: var(--font-body);
  --font-display: var(--font-display);
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-border: var(--border);
  --color-ring: var(--ring);
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
}

:root {
  color-scheme: light;
  --underwater-light: #24a0bc;
  --underwater-mid: #0a7794;
  --underwater-deep: #025b79;
  --background: #f4fbfc;
  --foreground: #025b79;
  --paper: #f4fbfc;
  --mist: #e0f3f7;
  --navy: #025b79;
  --teal: #0a7794;
  --aqua: #b8eaf2;
  --ink-soft: #0a7794;
  --line: #9bdce8;
  --primary: #0a7794;
  --primary-foreground: #ffffff;
  --border: #9bdce8;
  --ring: #24a0bc;
  --radius: 1rem;
}

* { border-color: var(--line); }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--foreground); font-family: var(--font-body), Arial, sans-serif; }
.font-display { font-family: var(--font-display), Georgia, serif; }
.eyebrow { color: var(--teal); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.2em; line-height: 1.2; text-transform: uppercase; }
.form-input { display: block; width: 100%; margin-top: 0.6rem; border: 1px solid var(--line); border-radius: 0.75rem; background: var(--paper); padding: 0.75rem 0.9rem; color: var(--navy); outline: none; transition: border-color 160ms ease, box-shadow 160ms ease; }
.form-input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal) 16%, transparent); }
.partner-marquee { overflow: hidden; mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent); }
.partner-marquee-track { display: flex; width: max-content; animation: partner-marquee 72s linear infinite; }
.partner-logo-group { display: flex; align-items: center; gap: clamp(4rem, 9vw, 9rem); padding-right: clamp(4rem, 9vw, 9rem); }
.partner-logo { min-width: max-content; color: var(--navy); font-family: var(--font-display), Georgia, serif; font-size: clamp(2rem, 5vw, 4.5rem); font-weight: 700; letter-spacing: -0.04em; }
@keyframes partner-marquee { to { transform: translateX(-50%); } }
.hero-grid-canvas { position: absolute; inset: -20%; display: flex; flex-direction: column; justify-content: center; gap: 1rem; opacity: .72; transform: rotate(-7deg) scale(1.08); }
.hero-grid-track { display: flex; width: max-content; will-change: transform; animation: hero-grid-scroll 24s linear infinite; }
.hero-grid-track:nth-child(2) { animation-duration: 32s; }
.hero-grid-track:nth-child(3) { animation-duration: 40s; }
.hero-grid-track:nth-child(4) { animation-duration: 48s; }
.hero-grid-set { display: flex; gap: 1rem; padding-right: 1rem; }
.hero-grid-tile { width: clamp(10rem, 20vw, 24rem); height: clamp(8rem, 14vw, 13rem); flex: none; overflow: hidden; border-radius: 1rem; }
.hero-grid-tile-wide { width: clamp(16rem, 32vw, 38rem); }
.hero-grid-paused .hero-grid-track { animation-play-state: paused; }
@keyframes hero-grid-scroll { to { transform: translateX(-50%); } }
.hero-copy { animation: hero-rise 900ms cubic-bezier(.22, 1, .36, 1) both; }
.hero-cycle-enter { animation: hero-cycle-in 1100ms 180ms cubic-bezier(.22, 1, .36, 1) both; }
.hero-cycle-float { animation: hero-float 6s 1.3s ease-in-out infinite; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-cycle-in { from { opacity: 0; transform: translateX(48px) scale(.96); } to { opacity: 1; transform: translateX(0) scale(1); } }
@keyframes hero-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
.scroll-animations-ready [data-reveal] { opacity: 0; transform: translateY(38px); transition: opacity 800ms ease, transform 800ms cubic-bezier(.22, 1, .36, 1); }
.scroll-animations-ready [data-reveal="left"] { transform: translateX(-42px); }
.scroll-animations-ready [data-reveal="fade"] { transform: none; }
.scroll-animations-ready [data-reveal="zoom"] { transform: scale(.97); }
.scroll-animations-ready [data-reveal].is-visible { opacity: 1; transform: none; }
.news-theme { --news-red: #c8473f; --news-red-soft: #fff2f0; --news-red-line: #efc3be; }
.news-pulse { display: inline-block; animation: news-pulse 2.8s ease-in-out infinite; transform-origin: center; }
.media-zoom { overflow: hidden; }
.media-zoom img { transition: transform 700ms cubic-bezier(.22, 1, .36, 1); }
.media-zoom:hover img { transform: scale(1.045); }
@keyframes news-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(200, 71, 63, .08); transform: scale(1); } 50% { box-shadow: 0 0 0 6px rgba(200, 71, 63, .13); transform: scale(1.04); } }
::selection { background: var(--aqua); color: var(--navy); }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } .partner-marquee-track, .hero-cycle-float, .hero-grid-track, .news-pulse { animation: none !important; } .scroll-animations-ready [data-reveal] { opacity: 1; transform: none; } }
