/* =============================================================
   KESARIYA DESERT RESORT — Static CSS
   Replaces @tailwindcss/browser@4 runtime for massive perf gains
   ============================================================= */

/* ── Global base ─────────────────────────────────────────────── */
html { scroll-behavior: smooth; }
::selection { background-color: #C9A24D; color: #0F0E13; }

/* ── Box-sizing & reset ─────────────────────────────────────── */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; padding: 0; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: inherit; }
button { cursor: pointer; background: transparent; border: 0; }
input, select, textarea { font-family: inherit; font-size: inherit; }
*, *:focus { outline-offset: 2px; }

/* ── CSS Variables ──────────────────────────────────────────── */
:root {
  --color-sandstone: #E6C8A4;
  --color-sandstone-light: #F4E7D3;
  --color-sandstone-dark: #B89366;
  --color-ivory: #FDFBF7;
  --color-ivory-muted: #F3ECE1;
  --color-dusk: #0F0E13;
  --color-dusk-card: #17161E;
  --color-dusk-border: #2B2936;
  --color-saffron: #D96A38;
  --color-saffron-muted: #E2885E;
  --color-gold: #C9A24D;
  --color-gold-light: #E5C476;
  --color-clay: #964F3B;
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --ease-luxury: cubic-bezier(0.25, 1, 0.5, 1);

  /* Fluid Responsive Typography */
  --hero-kesariya-size: clamp(3.25rem, 9.5vw, 7.25rem);
  --hero-resort-size: clamp(1.05rem, 3.2vw, 2.5rem);
  --hero-tagline-size: clamp(1rem, 2.2vw, 1.65rem);
  --section-heading-size: clamp(2rem, 4.5vw, 3.75rem);
  --subheading-size: clamp(1.125rem, 2.2vw, 1.75rem);
}

/* ── Typography helpers ─────────────────────────────────────── */
.font-serif { font-family: var(--font-serif); }
.font-sans  { font-family: var(--font-sans); }
.hero-kesariya-clamp { font-size: var(--hero-kesariya-size); }
.hero-resort-clamp   { font-size: var(--hero-resort-size); }
.hero-tagline-clamp  { font-size: var(--hero-tagline-size); }
.heading-clamp       { font-size: var(--section-heading-size); }
.subheading-clamp    { font-size: var(--subheading-size); }

/* ── Color utilities ────────────────────────────────────────── */
.text-ivory         { color: var(--color-ivory); }
.text-sandstone     { color: var(--color-sandstone); }
.text-sandstone-light { color: var(--color-sandstone-light); }
.text-sandstone-dark  { color: var(--color-sandstone-dark); }
.text-gold          { color: var(--color-gold); }
.text-gold-light    { color: var(--color-gold-light); }
.text-saffron       { color: var(--color-saffron); }
.text-saffron-muted { color: var(--color-saffron-muted); }
.text-dusk          { color: var(--color-dusk); }

.bg-dusk       { background-color: var(--color-dusk); }
.bg-dusk-card  { background-color: var(--color-dusk-card); }
.bg-gold       { background-color: var(--color-gold); }
.bg-gold-light { background-color: var(--color-gold-light); }

/* ── Component Styles ───────────────────────────────────────── */
.glass-panel {
  background: color-mix(in oklch, var(--color-dusk-card) 75%, transparent);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid color-mix(in oklch, var(--color-sandstone) 15%, transparent);
  will-change: auto;
}

.glass-panel-light {
  background: color-mix(in oklch, var(--color-ivory) 85%, transparent);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid color-mix(in oklch, var(--color-sandstone-dark) 20%, transparent);
}

/* ── Content Visibility (offscreen perf) ────────────────────── */
.content-visibility-auto {
  content-visibility: auto;
  contain-intrinsic-size: 1px 800px;
}

/* ── Animations ─────────────────────────────────────────────── */
@keyframes fadeInSoft {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulseGlow {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50%       { opacity: 0.8; transform: scale(1.05); }
}
@keyframes loaderPulse {
  0%, 100% { transform: scale(0.96); opacity: 0.9; filter: drop-shadow(0 0 15px rgba(201,162,77,.3)); }
  50%       { transform: scale(1.04); opacity: 1;   filter: drop-shadow(0 0 30px rgba(201,162,77,.65)); }
}
@keyframes lineGlow {
  0%   { width: 0%;   opacity: 0.2; }
  50%  { width: 65%;  opacity: 1; }
  100% { width: 100%; opacity: 0.85; }
}

.animate-fade-in       { animation: fadeInSoft 1.2s var(--ease-luxury) forwards; }
.animate-glow          { animation: pulseGlow 4s ease-in-out infinite; }
.animate-loader-pulse  { animation: loaderPulse 1.8s ease-in-out infinite; }
.animate-line-glow     { animation: lineGlow 1.2s cubic-bezier(.25,1,.5,1) forwards; }
.animate-pulse         { animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite; }
.animate-bounce        { animation: bounce 1s infinite; }
.animate-ping          { animation: ping 1s cubic-bezier(0,0,.2,1) infinite; }
@keyframes pulse  { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes bounce { 0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)} 50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)} }
@keyframes ping   { 75%,100%{transform:scale(2);opacity:0} }

/* ── Mobile performance: disable expensive GPU effects on small screens ── */
@media (max-width: 768px) {
  /* Disable massive ambient glow blurs — biggest mobile perf killer */
  .ambient-glow-layer { display: none !important; }

  /* Reduce backdrop-filter blur on glass panels — very costly on mobile */
  .glass-panel {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(23, 22, 30, 0.93);
  }
  .glass-panel-light {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  /* Disable hero image scale transform animation on mobile */
  .hero-img-scale {
    transform: none !important;
    transition: none !important;
  }

  /* Disable animate-glow on mobile — animated fixed blurs constantly repaint */
  .animate-glow {
    animation: none;
  }

  /* Reduce loader pulse blur cost */
  .animate-loader-pulse {
    animation: none;
  }
}

/* ── Experience Cards ───────────────────────────────────────── */
.experience-card {
  position: relative;
  overflow: hidden;
  transition: transform .45s cubic-bezier(.25,1,.5,1), border-color .45s ease, box-shadow .45s ease;
}
.experience-card:hover {
  transform: translateY(-6px);
  border-color: rgba(201,162,77,.65) !important;
  box-shadow: 0 22px 40px -10px rgba(0,0,0,.8), 0 0 25px 0 rgba(201,162,77,.22);
}
.experience-card .card-bg-img {
  transition: transform .85s cubic-bezier(.25,1,.5,1), filter .85s ease;
  filter: brightness(.48) contrast(1.08);
}
.experience-card:hover .card-bg-img {
  transform: scale(1.08);
  filter: brightness(.65) contrast(1.05);
}
.experience-card .card-overlay {
  background: linear-gradient(180deg, rgba(15,14,19,.4) 0%, rgba(15,14,19,.72) 48%, rgba(15,14,19,.95) 100%);
  transition: background .5s ease;
}
.experience-card:hover .card-overlay {
  background: linear-gradient(180deg, rgba(15,14,19,.25) 0%, rgba(15,14,19,.6) 48%, rgba(15,14,19,.92) 100%);
}

/* ── Preloader ──────────────────────────────────────────────── */
#pagePreloader {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 99999;
  background-color: #0F0E13;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* ── Scrollbar ────────────────────────────────��─────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track  { background: #0F0E13; }
::-webkit-scrollbar-thumb  { background: #3A3545; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #C9A24D; }

/* ── Reduced motion ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Highlight card hover ───────────────────────────────────── */
.highlight-card:has(.card-cta:hover) {
  border-color: rgba(201,162,77,.6);
  transform: translateY(-4px);
}

/* =============================================================
   TAILWIND UTILITY CLASSES — full set used by this page
   ============================================================= */

/* Display */
.block { display: block; }
.inline-block { display: inline-block; }
.inline-flex { display: inline-flex; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }

/* Flex utilities */
.flex-col { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0%; }
.flex-grow { flex-grow: 1; }
.shrink-0 { flex-shrink: 0; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.justify-start { justify-content: flex-start; }
.self-center { align-self: center; }

/* Grid */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0,1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.col-span-1  { grid-column: span 1 / span 1; }
.col-span-2  { grid-column: span 2 / span 2; }
.col-span-7  { grid-column: span 7 / span 7; }
.col-span-5  { grid-column: span 5 / span 5; }

/* Spacing — gap */
.gap-1   { gap: .25rem; }
.gap-2   { gap: .5rem; }
.gap-2\.5{ gap: .625rem; }
.gap-3   { gap: .75rem; }
.gap-4   { gap: 1rem; }
.gap-5   { gap: 1.25rem; }
.gap-6   { gap: 1.5rem; }
.gap-8   { gap: 2rem; }
.gap-10  { gap: 2.5rem; }
.gap-12  { gap: 3rem; }
.gap-14  { gap: 3.5rem; }
.gap-16  { gap: 4rem; }

/* Spacing — padding */
.p-1 { padding: .25rem; } .p-2 { padding: .5rem; } .p-3 { padding: .75rem; }
.p-4 { padding: 1rem; } .p-5 { padding: 1.25rem; } .p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; } .p-12 { padding: 3rem; }
.px-2 { padding-left:.5rem; padding-right:.5rem; }
.px-3 { padding-left:.75rem; padding-right:.75rem; }
.px-4 { padding-left:1rem; padding-right:1rem; }
.px-5 { padding-left:1.25rem; padding-right:1.25rem; }
.px-6 { padding-left:1.5rem; padding-right:1.5rem; }
.px-7 { padding-left:1.75rem; padding-right:1.75rem; }
.px-8 { padding-left:2rem; padding-right:2rem; }
.py-1 { padding-top:.25rem; padding-bottom:.25rem; }
.py-1\.5 { padding-top:.375rem; padding-bottom:.375rem; }
.py-2 { padding-top:.5rem; padding-bottom:.5rem; }
.py-3 { padding-top:.75rem; padding-bottom:.75rem; }
.py-3\.5 { padding-top:.875rem; padding-bottom:.875rem; }
.py-4 { padding-top:1rem; padding-bottom:1rem; }
.py-6 { padding-top:1.5rem; padding-bottom:1.5rem; }
.py-16 { padding-top:4rem; padding-bottom:4rem; }
.py-24 { padding-top:6rem; padding-bottom:6rem; }
.py-32 { padding-top:8rem; padding-bottom:8rem; }
.pt-1 { padding-top:.25rem; } .pt-2 { padding-top:.5rem; }
.pt-4 { padding-top:1rem; } .pt-6 { padding-top:1.5rem; }
.pt-8 { padding-top:2rem; } .pt-16 { padding-top:4rem; }
.pt-28 { padding-top:7rem; }
.pb-2 { padding-bottom:.5rem; } .pb-6 { padding-bottom:1.5rem; }
.pb-20 { padding-bottom:5rem; } .pl-4 { padding-left:1rem; }
.pl-\[0\.14em\] { padding-left:.14em; }
.pl-\[0\.16em\] { padding-left:.16em; }
.pl-\[0\.2em\]  { padding-left:.2em; }
.pl-\[0\.24em\] { padding-left:.24em; }
.pl-\[0\.35em\] { padding-left:.35em; }
.pl-\[0\.38em\] { padding-left:.38em; }
.pl-\[0\.4em\]  { padding-left:.4em; }
.pl-\[0\.52em\] { padding-left:.52em; }

/* Spacing — margin */
.m-0  { margin:0; } .mt-0 { margin-top:0; }
.mt-0\.5 { margin-top:.125rem; } .mt-1 { margin-top:.25rem; }
.mt-2 { margin-top:.5rem; } .mt-2\.5 { margin-top:.625rem; }
.mt-3 { margin-top:.75rem; } .mt-4 { margin-top:1rem; }
.mt-8 { margin-top:2rem; } .mt-16 { margin-top:4rem; }
.mb-1 { margin-bottom:.25rem; } .mb-2 { margin-bottom:.5rem; }
.mb-5 { margin-bottom:1.25rem; } .mb-6 { margin-bottom:1.5rem; }
.mb-8 { margin-bottom:2rem; } .mr-3 { margin-right:.75rem; }
.-mx-6 { margin-left:-1.5rem; margin-right:-1.5rem; }
.-mt-6 { margin-top:-1.5rem; }
.-bottom-6 { bottom:-1.5rem; }
.-right-6 { right:-1.5rem; }

/* Sizing */
.w-1 { width:.25rem; } .w-1\.5 { width:.375rem; } .w-2 { width:.5rem; }
.w-3\.5 { width:.875rem; } .w-4 { width:1rem; } .w-5 { width:1.25rem; }
.w-6 { width:1.5rem; } .w-7 { width:1.75rem; } .w-8 { width:2rem; }
.w-9 { width:2.25rem; } .w-10 { width:2.5rem; } .w-11 { width:2.75rem; }
.w-12 { width:3rem; } .w-14 { width:3.5rem; } .w-16 { width:4rem; }
.w-20 { width:5rem; } .w-24 { width:6rem; } .w-28 { width:7rem; }
.w-32 { width:8rem; } .w-full { width:100%; }
.w-\[450px\] { width:450px; } .w-\[600px\] { width:600px; }
.w-\[700px\] { width:700px; } .w-\[800px\] { width:800px; }
.max-w-xs  { max-width:20rem; } .max-w-sm  { max-width:24rem; }
.max-w-md  { max-width:28rem; } .max-w-xl  { max-width:36rem; }
.max-w-2xl { max-width:42rem; } .max-w-4xl { max-width:56rem; }
.max-w-5xl { max-width:64rem; } .max-w-7xl { max-width:80rem; }
.min-w-\[200px\] { min-width:200px; }

.h-1 { height:.25rem; } .h-1\.5 { height:.375rem; } .h-2 { height:.5rem; }
.h-3 { height:.75rem; } .h-3\.5 { height:.875rem; } .h-4 { height:1rem; }
.h-5 { height:1.25rem; } .h-6 { height:1.5rem; } .h-7 { height:1.75rem; }
.h-8 { height:2rem; } .h-9 { height:2.25rem; } .h-10 { height:2.5rem; }
.h-11 { height:2.75rem; } .h-12 { height:3rem; } .h-14 { height:3.5rem; }
.h-16 { height:4rem; } .h-24 { height:6rem; } .h-28 { height:7rem; }
.h-32 { height:8rem; } .h-44 { height:11rem; } .h-48 { height:12rem; }
.h-52 { height:13rem; } .h-64 { height:16rem; } .h-full { height:100%; }
.h-\[480px\] { height:480px; } .h-\[1px\] { height:1px; }
.h-\[1\.5px\] { height:1.5px; } .h-\[9px\] { height:9px; }
.h-\[450px\] { height:450px; } .h-\[500px\] { height:500px; }
.h-\[600px\] { height:600px; } .h-\[360px\] { height:360px; }
.min-h-screen { min-height:100vh; }
.max-h-\[90vh\] { max-height:90vh; }
.max-h-\[105px\] { max-height:105px; }

/* Inset / position */
.inset-0 { top:0; right:0; bottom:0; left:0; }
.top-0 { top:0; } .top-3 { top:.75rem; } .top-5 { top:1.25rem; }
.top-6 { top:1.5rem; } .top-1\/3 { top:33.333333%; }
.bottom-0 { bottom:0; } .bottom-3 { bottom:.75rem; }
.bottom-5 { bottom:1.25rem; } .bottom-6 { bottom:1.5rem; }
.bottom-20 { bottom:5rem; }
.left-0 { left:0; } .left-3 { left:.75rem; } .left-4 { left:1rem; }
.left-5 { left:1.25rem; } .left-6 { left:1.5rem; }
.left-1\/4 { left:25%; }
.right-0 { right:0; } .right-3 { right:.75rem; } .right-4 { right:1rem; }
.right-6 { right:1.5rem; } .right-10 { right:2.5rem; }
.-top-6 { top:-1.5rem; } .-top-32 { top:-8rem; } .-top-40 { top:-10rem; }
.-bottom-6 { bottom:-1.5rem; } .-bottom-32 { bottom:-8rem; } .-bottom-40 { bottom:-10rem; }
.-left-20 { left:-5rem; } .-left-40 { left:-10rem; }
.-right-20 { right:-5rem; } .-right-40 { right:-10rem; }
.z-0 { z-index:0; } .z-10 { z-index:10; } .z-40 { z-index:40; }
.z-50 { z-index:50; } .z-\[99999\] { z-index:99999; }

/* Typography */
.text-\[9px\]   { font-size:9px; }
.text-\[10px\]  { font-size:10px; }
.text-\[11px\]  { font-size:11px; }
.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-4xl  { font-size:2.25rem; line-height:2.5rem; }
.text-5xl  { font-size:3rem; line-height:1; }
.text-9xl  { font-size:8rem; line-height:1; }
.font-light    { font-weight:300; }
.font-normal   { font-weight:400; }
.font-medium   { font-weight:500; }
.font-semibold { font-weight:600; }
.font-bold     { font-weight:700; }
.italic        { font-style:italic; }
.not-italic    { font-style:normal; }
.uppercase     { text-transform:uppercase; }
.lowercase     { text-transform:lowercase; }
.capitalize    { text-transform:capitalize; }
.text-left     { text-align:left; }
.text-center   { text-align:center; }
.text-right    { text-align:right; }
.text-balance  { text-wrap:balance; }
.leading-none    { line-height:1; }
.leading-tight   { line-height:1.25; }
.leading-snug    { line-height:1.375; }
.leading-relaxed { line-height:1.625; }
.tracking-wide    { letter-spacing:.025em; }
.tracking-wider   { letter-spacing:.05em; }
.tracking-widest  { letter-spacing:.1em; }
.tracking-\[0\.14em\] { letter-spacing:.14em; }
.tracking-\[0\.16em\] { letter-spacing:.16em; }
.tracking-\[0\.2em\]  { letter-spacing:.2em; }
.tracking-\[0\.24em\] { letter-spacing:.24em; }
.tracking-\[0\.25em\] { letter-spacing:.25em; }
.tracking-\[0\.3em\]  { letter-spacing:.3em; }
.tracking-\[0\.35em\] { letter-spacing:.35em; }
.tracking-\[0\.38em\] { letter-spacing:.38em; }
.tracking-\[0\.4em\]  { letter-spacing:.4em; }
.tracking-\[0\.52em\] { letter-spacing:.52em; }
.antialiased { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.drop-shadow  { filter:drop-shadow(0 1px 2px rgba(0,0,0,.3)); }
.drop-shadow-md  { filter:drop-shadow(0 4px 3px rgba(0,0,0,.4)); }
.drop-shadow-2xl { filter:drop-shadow(0 25px 25px rgba(0,0,0,.5)); }
.drop-shadow-\[0_0_25px_rgba\(201\2c 162\2c 77\2c 0\.45\)\] { filter:drop-shadow(0 0 25px rgba(201,162,77,.45)); }
.underline { text-decoration:underline; }

/* Backgrounds */
.bg-transparent { background-color:transparent; }
.bg-gradient-to-t  { background-image:linear-gradient(to top, var(--tw-gradient-stops)); }
.bg-gradient-to-b  { background-image:linear-gradient(to bottom, var(--tw-gradient-stops)); }
.bg-gradient-to-r  { background-image:linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-l  { background-image:linear-gradient(to left, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image:linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.bg-radial { background-image:radial-gradient(var(--tw-gradient-stops)); }
.bg-clip-text { background-clip:text; -webkit-background-clip:text; }
.text-transparent { color:transparent; }

/* Semi-transparent background patterns used in page */
.bg-dusk\/60  { background-color:rgba(15,14,19,.6); }
.bg-dusk\/70  { background-color:rgba(15,14,19,.7); }
.bg-dusk\/80  { background-color:rgba(15,14,19,.8); }
.bg-dusk\/90  { background-color:rgba(15,14,19,.9); }
.bg-dusk\/95  { background-color:rgba(15,14,19,.95); }
.bg-gold\/10  { background-color:rgba(201,162,77,.10); }
.bg-gold\/15  { background-color:rgba(201,162,77,.15); }
.bg-gold\/20  { background-color:rgba(201,162,77,.20); }
.bg-gold\/30  { background-color:rgba(201,162,77,.30); }
.bg-saffron\/10 { background-color:rgba(217,106,56,.10); }
.bg-saffron\/15 { background-color:rgba(217,106,56,.15); }
.bg-sandstone\/10 { background-color:rgba(230,200,164,.10); }
.bg-sandstone\/15 { background-color:rgba(230,200,164,.15); }
.bg-dusk-card\/40 { background-color:rgba(23,22,30,.40); }
.bg-dusk-card\/50 { background-color:rgba(23,22,30,.50); }
.bg-dusk-card\/70 { background-color:rgba(23,22,30,.70); }
.bg-dusk-card\/80 { background-color:rgba(23,22,30,.80); }
.bg-dusk-card\/90 { background-color:rgba(23,22,30,.90); }
.bg-emerald-500\/15 { background-color:rgba(16,185,129,.15); }
.bg-emerald-600 { background-color:#059669; }
.bg-white\/10   { background-color:rgba(255,255,255,.10); }

/* Borders */
.border        { border-width:1px; }
.border-0      { border-width:0; }
.border-2      { border-width:2px; }
.border-l-2    { border-left-width:2px; }
.border-l-4    { border-left-width:4px; }
.border-t      { border-top-width:1px; }
.border-b      { border-bottom-width:1px; }
.border-r      { border-right-width:1px; }
.border-y      { border-top-width:1px; border-bottom-width:1px; }
.border-solid  { border-style:solid; }
.rounded       { border-radius:.25rem; }
.rounded-full  { border-radius:9999px; }
.rounded-xl    { border-radius:.75rem; }
.rounded-2xl   { border-radius:1rem; }
.rounded-3xl   { border-radius:1.5rem; }
.border-sandstone\/10 { border-color:rgba(230,200,164,.10); }
.border-sandstone\/15 { border-color:rgba(230,200,164,.15); }
.border-sandstone\/20 { border-color:rgba(230,200,164,.20); }
.border-sandstone\/30 { border-color:rgba(230,200,164,.30); }
.border-gold\/20 { border-color:rgba(201,162,77,.20); }
.border-gold\/30 { border-color:rgba(201,162,77,.30); }
.border-gold\/40 { border-color:rgba(201,162,77,.40); }
.border-gold\/50 { border-color:rgba(201,162,77,.50); }
.border-gold\/60 { border-color:rgba(201,162,77,.60); }
.border-saffron\/30 { border-color:rgba(217,106,56,.30); }
.border-emerald-500\/30 { border-color:rgba(16,185,129,.30); }
.border-l-gold { border-left-color:var(--color-gold); }

/* Effects */
.overflow-hidden { overflow:hidden; }
.overflow-x-hidden { overflow-x:hidden; }
.overflow-y-auto { overflow-y:auto; }
.pointer-events-none { pointer-events:none; }
.pointer-events-auto { pointer-events:auto; }
.select-none { user-select:none; }
.cursor-pointer { cursor:pointer; }
.opacity-0 { opacity:0; } .opacity-75 { opacity:.75; } .opacity-80 { opacity:.8; }
.shadow-lg  { box-shadow:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -4px rgba(0,0,0,.2); }
.shadow-xl  { box-shadow:0 20px 25px -5px rgba(0,0,0,.4),0 8px 10px -6px rgba(0,0,0,.2); }
.shadow-2xl { box-shadow:0 25px 50px -12px rgba(0,0,0,.6); }
.shadow-md  { box-shadow:0 4px 6px -1px rgba(0,0,0,.3),0 2px 4px -2px rgba(0,0,0,.2); }
.shadow-gold\/20  { box-shadow:0 0 0 0 rgba(201,162,77,.20); }
.shadow-gold\/25  { --tw-shadow-color:rgba(201,162,77,.25); }
.shadow-emerald-600\/20 { --tw-shadow-color:rgba(5,150,105,.20); }
.backdrop-blur-md  { backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.backdrop-blur-xl  { backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); }
.blur-\[130px\] { filter:blur(130px); }
.blur-\[140px\] { filter:blur(140px); }
.blur-\[150px\] { filter:blur(150px); }
.blur-\[160px\] { filter:blur(160px); }
.blur-\[170px\] { filter:blur(170px); }
.blur-\[180px\] { filter:blur(180px); }

/* Transforms */
.scale-105 { transform:scale(1.05); }
.scale-110 { transform:scale(1.10); }
.-translate-y-0\.5 { transform:translateY(-.125rem); }
.-translate-y-1\.5 { transform:translateY(-.375rem); }
.translate-x-1 { transform:translateX(.25rem); }
.transition { transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter; transition-timing-function:cubic-bezier(.4,0,.2,1); transition-duration:.15s; }
.transition-all { transition-property:all; transition-timing-function:cubic-bezier(.4,0,.2,1); transition-duration:.15s; }
.transition-colors  { transition-property:color,background-color,border-color; transition-timing-function:cubic-bezier(.4,0,.2,1); transition-duration:.15s; }
.transition-opacity { transition-property:opacity; transition-timing-function:cubic-bezier(.4,0,.2,1); transition-duration:.15s; }
.transition-transform { transition-property:transform; transition-timing-function:cubic-bezier(.4,0,.2,1); transition-duration:.15s; }
.duration-300 { transition-duration:.3s; } .duration-500 { transition-duration:.5s; }
.duration-700 { transition-duration:.7s; } .duration-10000 { transition-duration:10s; }
.ease-out { transition-timing-function:cubic-bezier(0,0,.2,1); }
.ease-in-out { transition-timing-function:cubic-bezier(.4,0,.2,1); }

/* Object */
.object-cover   { object-fit:cover; }
.object-contain { object-fit:contain; }
.object-center  { object-position:center; }

/* Misc */
.resize-none { resize:none; }
.whitespace-nowrap { white-space:nowrap; }
.truncate { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.space-x-4 > * + * { margin-left:1rem; }
.space-y-1 > * + * { margin-top:.25rem; }
.space-y-1\.5 > * + * { margin-top:.375rem; }
.space-y-2 > * + * { margin-top:.5rem; }
.space-y-3 > * + * { margin-top:.75rem; }
.space-y-4 > * + * { margin-top:1rem; }
.space-y-5 > * + * { margin-top:1.25rem; }
.space-y-6 > * + * { margin-top:1.5rem; }
.space-y-8 > * + * { margin-top:2rem; }
.space-y-12 > * + * { margin-top:3rem; }
.space-y-16 > * + * { margin-top:4rem; }

/* Gradient stops */
.from-transparent { --tw-gradient-from:transparent; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-dusk { --tw-gradient-from:#0F0E13; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-dusk\/70 { --tw-gradient-from:rgba(15,14,19,.7); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-dusk\/80 { --tw-gradient-from:rgba(15,14,19,.8); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-gold\/10 { --tw-gradient-from:rgba(201,162,77,.10); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-gold\/15 { --tw-gradient-from:rgba(201,162,77,.15); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-gold\/20 { --tw-gradient-from:rgba(201,162,77,.20); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-gold\/30 { --tw-gradient-from:rgba(201,162,77,.30); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-gold    { --tw-gradient-from:#C9A24D; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.from-saffron\/15 { --tw-gradient-from:rgba(217,106,56,.15); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent); }
.via-transparent { --tw-gradient-via:transparent; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk    { --tw-gradient-via:#0F0E13; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk\/20 { --tw-gradient-via:rgba(15,14,19,.2); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk\/40 { --tw-gradient-via:rgba(15,14,19,.4); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk\/50 { --tw-gradient-via:rgba(15,14,19,.5); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk-card\/90 { --tw-gradient-via:rgba(23,22,30,.9); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-dusk-card\/80 { --tw-gradient-via:rgba(23,22,30,.8); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-gold    { --tw-gradient-via:#C9A24D; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-gold\/10 { --tw-gradient-via:rgba(201,162,77,.10); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-saffron\/10 { --tw-gradient-via:rgba(217,106,56,.10); --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.via-sandstone-light { --tw-gradient-via:#F4E7D3; --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-via),var(--tw-gradient-to,transparent); }
.to-transparent { --tw-gradient-to:transparent; }
.to-dusk    { --tw-gradient-to:#0F0E13; }
.to-dusk\/30 { --tw-gradient-to:rgba(15,14,19,.3); }
.to-dusk\/70 { --tw-gradient-to:rgba(15,14,19,.7); }
.to-dusk-card { --tw-gradient-to:#17161E; }
.to-saffron\/15 { --tw-gradient-to:rgba(217,106,56,.15); }
.to-saffron\/10 { --tw-gradient-to:rgba(217,106,56,.10); }
.to-gold    { --tw-gradient-to:#C9A24D; }
.to-gold\/70 { --tw-gradient-to:rgba(201,162,77,.70); }

/* Selection */
.selection\:bg-gold::selection { background-color:var(--color-gold); }
.selection\:text-dusk::selection { color:var(--color-dusk); }

/* Filter brightness */
.brightness-\[0\.72\] { filter:brightness(.72); }
.brightness-\[0\.9\]  { filter:brightness(.9); }
.contrast-\[1\.08\]   { filter:contrast(1.08); }

/* Focus */
.focus\:outline-none:focus { outline:none; }
.focus\:ring-2:focus { box-shadow:0 0 0 2px; }
.focus\:border-gold:focus { border-color:var(--color-gold); }

/* Hover utilities */
.hover\:text-gold:hover { color:var(--color-gold); }
.hover\:text-ivory:hover { color:var(--color-ivory); }
.hover\:text-sandstone-light:hover { color:var(--color-sandstone-light); }
.hover\:bg-gold:hover { background-color:var(--color-gold); }
.hover\:bg-gold-light:hover { background-color:var(--color-gold-light); }
.hover\:bg-emerald-500:hover { background-color:#10b981; }
.hover\:bg-white\/10:hover { background-color:rgba(255,255,255,.10); }
.hover\:border-gold:hover { border-color:var(--color-gold); }
.hover\:border-gold\/40:hover { border-color:rgba(201,162,77,.40); }
.hover\:border-gold\/50:hover { border-color:rgba(201,162,77,.50); }
.hover\:border-gold\/60:hover { border-color:rgba(201,162,77,.60); }
.hover\:opacity-100:hover { opacity:1; }
.hover\:scale-105:hover { transform:scale(1.05); }
.hover\:scale-110:hover { transform:scale(1.10); }
.hover\:-translate-y-0\.5:hover { transform:translateY(-.125rem); }
.hover\:-translate-y-1:hover { transform:translateY(-.25rem); }
.hover\:-translate-y-1\.5:hover { transform:translateY(-.375rem); }
.hover\:translate-x-1:hover { transform:translateX(.25rem); }
.hover\:underline:hover { text-decoration:underline; }
.hover\:text-dusk:hover { color:var(--color-dusk); }
.hover\:bg-dusk:hover { background-color:var(--color-dusk); }
.hover\:text-color-gold:hover { color:var(--color-gold); }
.group:hover .group-hover\:scale-105 { transform:scale(1.05); }
.group:hover .group-hover\:scale-110 { transform:scale(1.10); }
.group:hover .group-hover\:border-gold { border-color:var(--color-gold); }
.group:hover .group-hover\:border-gold\/60 { border-color:rgba(201,162,77,.60); }
.group:hover .group-hover\:shadow-lg { box-shadow:0 10px 15px -3px rgba(0,0,0,.3); }
.group:hover .group-hover\:shadow-xl { box-shadow:0 20px 25px -5px rgba(0,0,0,.4); }
.group:hover .group-hover\:shadow-gold\/20 { box-shadow:0 0 15px 0 rgba(201,162,77,.20); }
.group:hover .group-hover\:shadow-gold\/30 { box-shadow:0 0 20px 0 rgba(201,162,77,.30); }
.group:hover .group-hover\:text-gold { color:var(--color-gold); }
.group:hover .group-hover\:text-gold\/15 { color:rgba(201,162,77,.15); }
.group:hover .group-hover\:opacity-100 { opacity:1; }
.group\/btn:hover .group-hover\/btn\:translate-x-1 { transform:translateX(.25rem); }

/* Text colors with opacity */
.text-ivory\/80 { color:rgba(253,251,247,.80); }
.text-gold\/60  { color:rgba(201,162,77,.60); }
.text-gold\/70  { color:rgba(201,162,77,.70); }
.text-gold\/80  { color:rgba(201,162,77,.80); }
.text-gold\/90  { color:rgba(201,162,77,.90); }
.text-sandstone\/40 { color:rgba(230,200,164,.40); }
.text-sandstone\/50 { color:rgba(230,200,164,.50); }
.text-sandstone\/60 { color:rgba(230,200,164,.60); }
.text-sandstone\/70 { color:rgba(230,200,164,.70); }
.text-sandstone\/80 { color:rgba(230,200,164,.80); }
.text-sandstone-light\/80 { color:rgba(244,231,211,.80); }
.text-sandstone-light\/85 { color:rgba(244,231,211,.85); }
.text-sandstone-light\/90 { color:rgba(244,231,211,.90); }
.text-sandstone-light\/95 { color:rgba(244,231,211,.95); }
.text-ivory\/85 { color:rgba(253,251,247,.85); }
.text-saffron-muted\/80 { color:rgba(226,136,94,.80); }
.text-emerald-400 { color:#34d399; }
.text-white   { color:#fff; }
.text-amber-400 { color:#fbbf24; }

/* Grid responsive — Tailwind responsive classes need media queries */
/* These are the lg: sm: md: variants used in the page */
@media (min-width: 640px) {
  .sm\:block { display:block; }
  .sm\:hidden { display:none; }
  .sm\:inline { display:inline; }
  .sm\:inline-flex { display:inline-flex; }
  .sm\:flex { display:flex; }
  .sm\:flex-row { flex-direction:row; }
  .sm\:flex-col { flex-direction:column; }
  .sm\:grid-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sm\:grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sm\:gap-3 { gap:.75rem; }
  .sm\:gap-5 { gap:1.25rem; }
  .sm\:gap-6 { gap:1.5rem; }
  .sm\:px-6 { padding-left:1.5rem; padding-right:1.5rem; }
  .sm\:px-8 { padding-left:2rem; padding-right:2rem; }
  .sm\:py-3\.5 { padding-top:.875rem; padding-bottom:.875rem; }
  .sm\:py-6 { padding-top:1.5rem; padding-bottom:1.5rem; }
  .sm\:py-32 { padding-top:8rem; padding-bottom:8rem; }
  .sm\:p-6 { padding:1.5rem; }
  .sm\:p-8 { padding:2rem; }
  .sm\:p-12 { padding:3rem; }
  .sm\:mt-3 { margin-top:.75rem; }
  .sm\:mt-24 { margin-top:6rem; }
  .sm\:mb-3 { margin-bottom:.75rem; }
  .sm\:space-y-2 > * + * { margin-top:.5rem; }
  .sm\:text-sm { font-size:.875rem; line-height:1.25rem; }
  .sm\:text-base { font-size:1rem; line-height:1.5rem; }
  .sm\:text-lg { font-size:1.125rem; line-height:1.75rem; }
  .sm\:text-xl { font-size:1.25rem; line-height:1.75rem; }
  .sm\:text-2xl { font-size:1.5rem; line-height:2rem; }
  .sm\:text-3xl { font-size:1.875rem; line-height:2.25rem; }
  .sm\:text-4xl { font-size:2.25rem; line-height:2.5rem; }
  .sm\:tracking-\[0\.2em\] { letter-spacing:.2em; }
  .sm\:tracking-\[0\.24em\] { letter-spacing:.24em; }
  .sm\:tracking-\[0\.52em\] { letter-spacing:.52em; }
  .sm\:pl-\[0\.2em\]  { padding-left:.2em; }
  .sm\:pl-\[0\.24em\] { padding-left:.24em; }
  .sm\:pl-\[0\.52em\] { padding-left:.52em; }
  .sm\:w-auto { width:auto; }
  .sm\:w-24 { width:6rem; }
  .sm\:w-28 { width:7rem; }
  .sm\:w-11 { width:2.75rem; }
  .sm\:h-11 { height:2.75rem; }
  .sm\:h-28 { height:7rem; }
  .sm\:h-52 { height:13rem; }
  .sm\:h-\[420px\] { height:420px; }
  .sm\:max-w-sm { max-width:24rem; }
  .sm\:max-w-md { max-width:28rem; }
  .sm\:space-x-4 > * + * { margin-left:1rem; }
  .sm\:text-sm { font-size:.875rem; }
}
@media (min-width: 768px) {
  .md\:hidden { display:none; }
  .md\:flex { display:flex; }
  .md\:block { display:block; }
  .md\:grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .md\:grid-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .md\:items-end { align-items:flex-end; }
  .md\:flex-row { flex-direction:row; }
  .md\:text-left { text-align:left; }
  .md\:justify-end { justify-content:flex-end; }
  .md\:text-base { font-size:1rem; line-height:1.5rem; }
  .md\:text-lg { font-size:1.125rem; line-height:1.75rem; }
  .md\:text-4xl { font-size:2.25rem; line-height:2.5rem; }
  .md\:text-center { text-align:center; }
  .md\:px-6 { padding-left:1.5rem; padding-right:1.5rem; }
  .md\:w-auto { width:auto; }
}
@media (min-width: 1024px) {
  .lg\:flex { display:flex; }
  .lg\:block { display:block; }
  .lg\:hidden { display:none; }
  .lg\:col-span-5 { grid-column:span 5/span 5; }
  .lg\:col-span-7 { grid-column:span 7/span 7; }
  .lg\:col-span-12 { grid-column:span 12/span 12; }
  .lg\:grid-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .lg\:grid-cols-5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .lg\:grid-cols-12 { grid-template-columns:repeat(12,minmax(0,1fr)); }
  .lg\:gap-14 { gap:3.5rem; }
  .lg\:gap-16 { gap:4rem; }
  .lg\:px-8 { padding-left:2rem; padding-right:2rem; }
  .lg\:text-left { text-align:left; }
  .lg\:justify-start { justify-content:flex-start; }
  .lg\:col-span-5 { grid-column:span 5/span 5; }
}

/* First letter */
.first-letter\:font-serif::first-letter { font-family:var(--font-serif); }
.first-letter\:text-5xl::first-letter  { font-size:3rem; line-height:1; }
.first-letter\:text-gold::first-letter { color:var(--color-gold); }
.first-letter\:float-left::first-letter { float:left; }
.first-letter\:mr-3::first-letter { margin-right:.75rem; }
.first-letter\:leading-none::first-letter { line-height:1; }

/* Misc utilities */
.overflow-y-auto { overflow-y:auto; }
.transform { transform:translateZ(0); }
.flex-grow { flex-grow:1; }
.max-w-full { max-width:100%; }
.mx-auto { margin-left:auto; margin-right:auto; }
.my-1 { margin-top:.25rem; margin-bottom:.25rem; }
.my-2\.5 { margin-top:.625rem; margin-bottom:.625rem; }
.my-3 { margin-top:.75rem; margin-bottom:.75rem; }
.text-\[9px\] { font-size:9px; }
.scale-\[1\.02\] { transform:scale(1.02); }
.hover\:scale-\[1\.02\]:hover { transform:scale(1.02); }

/* ── WCAG Contrast Compliance ─────────────────────────────────
   Raised opacity-based colors to meet WCAG AA 4.5:1 for small text
   sandstone at 70% opacity on dusk background ≈ 3.5:1 — below threshold
   ─────────────────────────────────────────────────────────── */
.text-sandstone\/80 { color: #D4B896; }
.text-sandstone\/70 { color: #CBA882; }
.text-sandstone\/60 { color: #C4A07A; }
.text-gold\/80 { color: #BF9641; }
.text-gold\/70 { color: #B58D38; }
footer .text-sandstone\/70 { color: #D4B896; }

/* Nav links at full sandstone on dark = 7.1:1 ✓ */
nav a { color: var(--color-sandstone); }

/* ── Section layout containment for paint perf ─────────────── */
section { contain: layout style; }
section.content-visibility-auto { contain: layout style paint; }
