/* ═══════════════════════════════════════════════════════════
   PORT BARTON PARADISE : Global Design Tokens, Reset & Base
   Shared foundation for all pages
   ═══════════════════════════════════════════════════════════ */

/* ─── DESIGN TOKENS ───────────────────────────────────────── */

:root {
  /* Neutrals */
  --cream:      #FAF7F1;
  --cream-warm: #F3EDE2;
  --sand:       #E8DFD0;
  --driftwood:  #C4B49A;
  --teak:       #8B7355;
  --ink:        #1C1A17;
  --ink-80:     rgba(28,26,23,.8);
  --ink-60:     rgba(28,26,23,.6);
  --ink-40:     rgba(28,26,23,.38);
  --ink-20:     rgba(28,26,23,.18);
  --ink-10:     rgba(28,26,23,.10);
  --ink-05:     rgba(28,26,23,.05);
  --white:      #FFFFFF;
  --white-90:   rgba(255,255,255,.9);
  --white-70:   rgba(255,255,255,.7);
  --white-40:   rgba(255,255,255,.4);
  --white-20:   rgba(255,255,255,.2);

  /* Brand colors */
  --ocean:      #1A5C5A;
  --ocean-deep: #0E3D3C;
  --ocean-soft: #2A7A77;
  --lagoon:     #3B9B97;
  --coral:      #D4725C;
  --coral-soft: #E89B87;
  --gold:       #C9A96E;

  /* Feedback (booking / cart) */
  --success:    #2E7D32;
  --success-bg: #E8F5E9;
  --warn:       #E65100;
  --warn-bg:    #FFF3E0;

  /* Typography */
  --display: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --sans:  "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Layout */
  --max:    1340px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 4px;

  /* Easing */
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-smooth: cubic-bezier(.25, .1, .25, 1);
}

/* ─── UNIVERSAL RESET ─────────────────────────────────────── */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--ink);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

/* ─── REVEAL ANIMATIONS ──────────────────────────────────── */

.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .9s var(--ease-out), transform .9s var(--ease-out);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal-delay-3 { transition-delay: .36s; }

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