/* Custom layer on top of Tailwind. In production, compile Tailwind into this
   file (see README) instead of using the Play CDN. */

html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Smooth htmx swaps for the live quote / availability fragments */
.htmx-swapping { opacity: 0.4; transition: opacity 120ms ease-out; }
.htmx-settling { opacity: 1; transition: opacity 120ms ease-in; }

/* Hide the native date picker's ugly spinner consistency aside */
input[type="date"] { min-height: 3rem; }

/* Tasteful focus ring for keyboard users (accessibility) */
:focus-visible { outline: 2px solid #c9a25f; outline-offset: 2px; }

/* ──────────────────────────────────────────────────────────────────────────
   "Editorial Film Studio" redesign layer
   ────────────────────────────────────────────────────────────────────────── */

/* Film-grain overlay — barely-there texture across the whole site */
.grain {
  position: fixed; inset: 0; z-index: 60; pointer-events: none; opacity: .045;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Slow, intentional scroll reveals */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: none; }

/* Hero image drifts slowly (Ken Burns) */
@keyframes kenburns { from { transform: scale(1); } to { transform: scale(1.09); } }
.kenburns { animation: kenburns 22s ease-out forwards; will-change: transform; }

/* Sticky nav: transparent over hero, solid ink once scrolled */
.nav-shell { transition: background-color .4s ease, backdrop-filter .4s ease, box-shadow .4s ease; }
.nav-solid { position: fixed; background-color: rgba(22,20,18,.92); backdrop-filter: blur(8px); box-shadow: 0 1px 0 rgba(246,242,236,.08); }

/* Refined display type: tighter leading, optical sizing on the serif */
.font-serif { letter-spacing: -0.01em; }
h1.font-serif, h2.font-serif { line-height: 1.04; }

/* Editorial kicker underline that draws in on reveal */
.kicker { position: relative; }

/* Lightbox for galleries */
.lightbox { position: fixed; inset: 0; z-index: 80; background: rgba(22,20,18,.94); display: none; align-items: center; justify-content: center; padding: 4vw; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 92vw; max-height: 90vh; object-fit: contain; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.lightbox-close { position: absolute; top: 24px; right: 28px; color: #f6f2ec; font-size: 30px; cursor: pointer; line-height: 1; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .kenburns { animation: none; }
}
