/* ═══════════════════════════════════════════════════════
   OSSABAW — Master Stylesheet
   31°47′40″N · 81°6′44″W · Georgia Sea Islands
   Dark. Textured. Alive.
═══════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=IM+Fell+DW+Pica+SC&family=Space+Mono:wght@400;700&display=swap');

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

:root {
  --page-bg:       #080808;
  --page-accent:   #C88820;
  --page-second:   #5888C8;
  --page-text:     #D8D0C0;
  --page-muted:    #706050;
  --page-border:   rgba(255,255,255,0.09);
  --font-display:  'IM Fell DW Pica SC', serif;
  --font-body:     'Cormorant Garamond', serif;
  --font-mono:     'Space Mono', monospace;
}

html { scroll-behavior: smooth; }

body {
  background-color: var(--page-bg);
  color: var(--page-text);
  font-family: var(--font-body);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.75;
  min-height: 100vh;
  overflow-x: hidden;
}

/* ── GRAIN TEXTURE OVERLAY ── */
body::before {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23g)'/%3E%3C/svg%3E");
  opacity: 0.055;
  pointer-events: none;
  z-index: 9000;
  mix-blend-mode: overlay;
}

/* ── TREE PNG LOGO ── */
.nav-tree {
  height: 56px;
  width: auto;
  display: block;
  mix-blend-mode: screen;
  filter: brightness(1.1);
}

/* ── OAK SVG (fallback) ── */
.oak-svg { display: block; }
.oak-svg rect, .oak-svg ellipse, .oak-svg path {
  fill: #000;
  stroke: #fff;
  stroke-width: 1.8;
  paint-order: stroke fill;
}

/* ── NAVIGATION ── */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.6rem;
  background: #000000;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.nav-logo {
  display: flex; align-items: center; gap: 0.75rem;
  text-decoration: none; color: var(--page-text);
}
.nav-logo-text {
  font-family: var(--font-display);
  font-size: 1.55rem; letter-spacing: 0.28em;
  color: #fff;
}

/* HAMBURGER */
.hamburger {
  background: rgba(0,0,0,0.4); border: 0.5px solid rgba(255,255,255,0.25);
  border-radius: 2px; cursor: pointer;
  padding: 9px 11px; display: flex; flex-direction: column; gap: 5px;
}
.hamburger span {
  display: block; width: 22px; height: 1.5px; background: #fff;
  transition: transform 0.3s, opacity 0.3s;
}
.hamburger.active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* DRAWER */
.nav-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.65);
  z-index: 490; opacity: 0; pointer-events: none;
  transition: opacity 0.35s;
}
.nav-overlay.open { opacity: 1; pointer-events: all; }

.nav-drawer {
  position: fixed; top: 0; right: -340px;
  width: 320px; height: 100vh;
  background: rgba(6,5,8,0.98); backdrop-filter: blur(24px);
  border-left: 0.5px solid rgba(255,255,255,0.1);
  z-index: 495; padding: 4.5rem 1.8rem 2rem;
  transition: right 0.38s cubic-bezier(0.16,1,0.3,1);
  overflow-y: auto;
}
.nav-drawer.open { right: 0; }

.nav-close {
  position: absolute; top: 1.2rem; right: 1.4rem;
  background: none; border: 0.5px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.6); font-size: 0.9rem;
  padding: 5px 9px; cursor: pointer; border-radius: 2px;
}

.nav-section-label {
  font-family: var(--font-mono); font-size: 0.58rem;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--page-accent);
  margin: 1.6rem 0 0.7rem;
  padding-bottom: 0.5rem;
  border-bottom: 0.5px solid rgba(255,255,255,0.07);
}

.nav-drawer ul { list-style: none; }
.nav-drawer ul li a {
  display: block; font-family: var(--font-display); font-size: 1.2rem;
  letter-spacing: 0.06em; color: rgba(255,255,255,0.75);
  text-decoration: none; padding: 0.48rem 0;
  border-bottom: 0.5px solid rgba(255,255,255,0.04);
  transition: color 0.2s, padding-left 0.2s;
}
.nav-drawer ul li a:hover { color: var(--page-accent); padding-left: 0.5rem; }

/* ── HERO ── */
.hero {
  position: relative; width: 100%; height: 100vh;
  min-height: 580px; overflow: hidden;
}
.hero-image {
  position: absolute; inset: 0; width: 100%; height: 120%;
  object-fit: cover; object-position: center;
  filter: brightness(0.6) contrast(1.12) saturate(0.85);
  will-change: transform;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.08) 0%,
    rgba(0,0,0,0.15) 35%,
    var(--hero-tint, rgba(0,0,0,0.88)) 100%
  );
}
.hero-content {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 4rem 2rem 3rem; z-index: 10;
}
.hero-coords {
  font-family: var(--font-mono); font-size: 0.62rem;
  letter-spacing: 0.18em; color: rgba(255,255,255,0.45);
  margin-bottom: 1rem;
}
.hero-title {
  font-family: var(--font-display);
  font-size: clamp(4.2rem, 12vw, 10rem);
  line-height: 0.88; letter-spacing: 0.18em;
  color: #fff; text-shadow: 0 2px 60px rgba(0,0,0,0.9);
  margin-bottom: 0.8rem;
}
.hero-subtitle {
  font-family: var(--font-body); font-style: italic;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem);
  font-weight: 400;
  color: rgba(255,255,255,0.6); letter-spacing: 0.04em;
}
.hero-scroll {
  font-family: var(--font-mono); font-size: 0.58rem;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.3); margin-top: 2rem;
  animation: breathe 2.5s ease-in-out infinite;
}
@keyframes breathe { 0%,100%{opacity:0.3;} 50%{opacity:0.8;} }

/* ── PAGE BOTTOM — THE REAL COLOR ──────────────────────
   Below the hero, the full palette color is revealed.
   Top = dark tinted image. Bottom = real color.
─────────────────────────────────────────────────────── */
.page-bottom {
  background: var(--bottom-color, var(--page-bg));
  color: var(--bottom-text, var(--page-text));
}
.page-bottom p { color: var(--bottom-text, var(--page-text)); opacity: 0.88; }
.page-bottom p strong { color: var(--bottom-text, var(--page-text)); opacity: 1; font-weight: 700; }
.page-bottom h2, .page-bottom h3 { color: var(--bottom-text, var(--page-text)); }
.page-bottom .section-label { color: var(--bottom-label, rgba(255,255,255,0.5)); }
.page-bottom .art-meta { border-color: rgba(255,255,255,0.18); }
.page-bottom .art-meta-label { color: var(--bottom-label, rgba(255,255,255,0.5)); }
.page-bottom .art-meta-value { color: var(--bottom-text, var(--page-text)); }
.page-bottom .art-nav { border-top-color: rgba(255,255,255,0.15); }
.page-bottom .art-nav a { color: var(--bottom-text); opacity: 0.55; }
.page-bottom .art-nav a:hover { opacity: 1; }
.page-bottom .art-description { color: var(--bottom-text); }
.page-bottom .framed { border-color: rgba(255,255,255,0.2); }
.page-bottom footer { background: rgba(0,0,0,0.22); border-top-color: rgba(255,255,255,0.12); }
.page-bottom .footer-logo,
.page-bottom .footer-coords,
.page-bottom .footer-links a,
.page-bottom .footer-credit { color: var(--bottom-text); opacity: 0.6; }
.page-bottom .footer-links a:hover { opacity: 1; }
.page-bottom .palette-stripe { opacity: 0.6; }

/* Compass gallery bottom */
.compass-page-bottom {
  background: var(--bottom-color, #1C2040);
  color: var(--bottom-text, #ECEBA8);
  padding: 5rem 2rem 3rem;
}
.compass-page-bottom .compass-title {
  font-family: var(--font-display);
  font-size: clamp(5rem, 18vw, 13rem);
  letter-spacing: 0.18em; line-height: 0.88;
  color: var(--bottom-text); margin-bottom: 1.5rem;
}
.compass-page-bottom p { color: var(--bottom-text); opacity: 0.82; font-size: 1.15rem; max-width: 680px; }
.compass-page-bottom .section-label { color: var(--bottom-label, rgba(255,255,255,0.45)); }
.compass-page-bottom .placeholder-cell { border-color: rgba(255,255,255,0.14); color: rgba(255,255,255,0.18); }
.compass-page-bottom .placeholder-grid { margin-top: 3rem; }

/* Thematic page split */
.theme-split-top {
  min-height: 52vh; background: var(--theme-dark, #080808);
  display: flex; align-items: flex-end;
  padding: 8rem 2rem 4rem; position: relative; overflow: hidden;
}
.theme-split-top::before {
  content: ''; position: absolute; inset: 0;
  background: var(--theme-dark, #080808); opacity: 0.92;
}
.theme-split-top-content { position: relative; z-index: 2; }
.theme-split-bottom {
  background: var(--bottom-color, var(--page-bg));
  color: var(--bottom-text, var(--page-text));
  padding: 5rem 2rem;
}
.theme-split-bottom p { color: var(--bottom-text); opacity: 0.85; }
.theme-split-bottom p strong { color: var(--bottom-text); opacity: 1; }
.theme-split-bottom h2, .theme-split-bottom h3 { color: var(--bottom-text); }
.theme-split-bottom .section-label { color: var(--bottom-label, rgba(255,255,255,0.45)); }

/* ── SECTIONS ── */
section {
  padding: 5rem 2rem;
  max-width: 1080px; margin: 0 auto;
}
.section-full { max-width: 100%; padding-left: 0; padding-right: 0; }

.section-label {
  font-family: var(--font-mono); font-size: 0.6rem;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--page-accent); margin-bottom: 1.4rem;
}

h2 {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  letter-spacing: 0.1em; line-height: 1.05;
  margin-bottom: 1.5rem;
}
h3 {
  font-family: var(--font-display); font-size: 1.9rem;
  letter-spacing: 0.08em; margin-bottom: 0.8rem;
}

p {
  font-size: 1.15rem; line-height: 1.88;
  color: var(--page-muted); margin-bottom: 1.3rem;
}
p strong { color: var(--page-text); font-weight: 700; }

/* ── DECORATIVE BORDER ── */
.framed {
  border: 0.5px solid var(--page-border);
  padding: 2rem; position: relative;
}
.framed::after {
  content: '';
  position: absolute; top: 5px; left: 5px; right: 5px; bottom: 5px;
  border: 0.5px solid rgba(255,255,255,0.03);
  pointer-events: none;
}

/* ── ORNAMENT ── */
.ornament {
  text-align: center; font-size: 1.2rem;
  color: rgba(255,255,255,0.15); letter-spacing: 0.5em;
  margin: 2rem 0; font-family: var(--font-display);
}

/* ── GALLERY GRID ── */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1px; margin-top: 2rem;
}
.gallery-item {
  position: relative; aspect-ratio: 3/4; overflow: hidden;
  background: #0a0a0a;
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.65) saturate(0.75) contrast(1.08);
  transition: filter 0.5s ease, transform 0.7s ease;
}
.gallery-item:hover img {
  filter: brightness(0.85) saturate(1.1) contrast(1.05);
  transform: scale(1.04);
}
.gallery-item-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 55%);
  pointer-events: none;
}
.gallery-item-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 1.8rem 1rem 1rem;
}
.gallery-item-label h3 {
  font-family: var(--font-display); font-size: 1rem;
  letter-spacing: 0.12em; color: #fff; margin-bottom: 0.2rem;
}
.gallery-item-label p {
  font-family: var(--font-mono); font-size: 0.55rem;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(255,255,255,0.45); margin: 0;
}
.gallery-item a {
  position: absolute; inset: 0; z-index: 10;
}

/* ── ART PAGE ── */
.art-meta {
  display: flex; gap: 2rem; flex-wrap: wrap;
  padding: 1.5rem 0;
  border-top: 0.5px solid var(--page-border);
  border-bottom: 0.5px solid var(--page-border);
  margin-bottom: 2.5rem;
}
.art-meta-item { display: flex; flex-direction: column; gap: 0.3rem; }
.art-meta-label {
  font-family: var(--font-mono); font-size: 0.56rem;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--page-accent);
}
.art-meta-value { font-family: var(--font-body); font-size: 0.95rem; color: var(--page-text); }

.art-description {
  font-size: 1.22rem; line-height: 1.95;
  color: var(--page-text); max-width: 720px;
}

.art-nav {
  display: flex; justify-content: space-between; align-items: center;
  padding: 2rem 0; border-top: 0.5px solid var(--page-border); margin-top: 3rem;
}
.art-nav a {
  font-family: var(--font-mono); font-size: 0.65rem;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--page-muted); text-decoration: none;
  transition: color 0.2s;
}
.art-nav a:hover { color: var(--page-accent); }

/* ── THEMATIC PAGE ── */
.theme-hero {
  min-height: 45vh; display: flex; align-items: flex-end;
  padding: 5rem 2rem 3rem;
  background: linear-gradient(160deg, var(--page-bg) 0%, rgba(0,0,0,0.3) 100%);
  position: relative; overflow: hidden;
}
.theme-hero-bg {
  position: absolute; inset: 0;
  background: var(--hero-bg, var(--page-bg));
  opacity: 0.6;
}

/* ── COMPASS ── */
.compass-wrap {
  max-width: 540px; margin: 3rem auto;
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1px;
}
.compass-cell {
  aspect-ratio: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: rgba(255,255,255,0.02);
  border: 0.5px solid var(--page-border);
  text-decoration: none; color: var(--page-text);
  transition: background 0.3s, color 0.3s;
  gap: 0.3rem;
}
.compass-cell:hover {
  background: var(--cell-hover, var(--page-accent));
  color: var(--cell-hover-text, #000);
}
.compass-cell.center {
  background: rgba(255,255,255,0.03); cursor: default;
  font-family: var(--font-display); font-size: 2rem; color: rgba(255,255,255,0.2);
}
.compass-dir {
  font-family: var(--font-display); font-size: 0.85rem; letter-spacing: 0.15em;
}
.compass-sym {
  font-family: var(--font-mono); font-size: 0.55rem;
  letter-spacing: 0.2em; opacity: 0.5;
}

/* ── STAT GRID ── */
.stat-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap: 1px; border: 0.5px solid var(--page-border);
  margin-bottom: 3rem; border-radius: 2px; overflow: hidden;
}
.stat-cell {
  background: rgba(255,255,255,0.02);
  padding: 1.8rem 1.5rem;
}
.stat-num {
  font-family: var(--font-display); font-size: 2.6rem;
  color: var(--page-accent); line-height: 1; margin-bottom: 0.4rem;
}
.stat-label {
  font-family: var(--font-mono); font-size: 0.58rem;
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--page-muted); line-height: 1.5;
}

/* ── PLACEHOLDER GRID ── */
.placeholder-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr));
  gap: 1px; margin-top: 2rem;
}
.placeholder-cell {
  aspect-ratio: 3/4; background: rgba(255,255,255,0.015);
  border: 0.5px dashed rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 0.55rem;
  letter-spacing: 0.15em; color: rgba(255,255,255,0.12);
  text-transform: uppercase;
}

/* ── COLOR HUNT PALETTE SYSTEM ──────────────────────────
   Sourced from top Color Hunt palettes, mixed with
   the island's own gritty dark palette.
   Used as horizontal bars, washes, and section accents.
─────────────────────────────────────────────────────── */

/* The 4-bar stripe — sits between sections */
.palette-stripe {
  display: flex; width: 100%; height: 18px;
  overflow: hidden;
}
.palette-stripe .ps { flex: 1; height: 100%; }

/* Wide color wash sections */
.color-wash {
  width: 100%; padding: 4rem 2rem;
  position: relative;
}
.color-wash > section {
  padding-top: 0; padding-bottom: 0;
}

/* Thick single accent bar */
.accent-bar {
  width: 100%; height: 10px;
}

/* Horizontal band with text — full bleed */
.color-band {
  width: 100%; padding: 3rem 2rem;
  position: relative;
}
.color-band .band-inner {
  max-width: 1080px; margin: 0 auto;
}

/* ─── Palette 2: Plum / Gothic Dark ─── */
.p2-a { background: #0D0D0D; }
.p2-b { background: #2D0F1E; }
.p2-c { background: #4A1A35; }
.p2-d { background: #6B3050; }

/* ─── Palette 5: Island Navy / Teal / Forest ─── */
.p5-a { background: #0B1829; }
.p5-b { background: #1A3832; }
.p5-c { background: #1E4A2A; }
.p5-d { background: #ECEBA8; }

/* ─── Palette 6: Cream / Amber / Terracotta / Brick ─── */
.p6-a { background: #F4EDD5; }
.p6-b { background: #D48B1A; }
.p6-c { background: #C14820; }
.p6-d { background: #8B1810; }

/* ─── Palette 7: Organic / Sage / Khaki / Deep Navy ─── */
.p7-a { background: #F0EBD8; }
.p7-b { background: #8A9870; }
.p7-c { background: #A89060; }
.p7-d { background: #1C2040; }

/* ─── Palette 8: Sunset / Coral / Brick ─── */
.p8-a { background: #EFEA8C; }
.p8-b { background: #E6CA52; }
.p8-c { background: #E06848; }
.p8-d { background: #B0281C; }

/* Wide color section — dark page with colored stripe on left */
.stripe-left {
  border-left: 8px solid var(--page-accent);
  padding-left: 2rem;
  margin: 2rem 0;
}

/* Full-bleed color section wash */
.wash-plum    { background: #2D0F1E; }
.wash-navy    { background: #0B1829; }
.wash-forest  { background: #1A3832; }
.wash-amber   { background: #D48B1A; color: #1A0800; }
.wash-terra   { background: #C14820; color: #F4EDD5; }
.wash-sage    { background: #8A9870; color: #1C2040; }
.wash-cream   { background: #F0EBD8; color: #1C2040; }
.wash-coral   { background: #E06848; color: #1A0800; }

/* On light wash backgrounds, flip text */
.wash-cream p, .wash-cream h2, .wash-cream h3,
.wash-sage p, .wash-sage h2, .wash-sage h3,
.wash-amber p, .wash-amber h2, .wash-amber h3,
.wash-coral p, .wash-coral h2, .wash-coral h3 {
  color: inherit;
}

/* Color block stat cells — overrides */
.stat-cell.amber-cell  { background: #D48B1A; }
.stat-cell.terra-cell  { background: #C14820; }
.stat-cell.navy-cell   { background: #0B1829; }
.stat-cell.forest-cell { background: #1A3832; }
.stat-cell.plum-cell   { background: #4A1A35; }
.stat-cell.coral-cell  { background: #E06848; }
.stat-cell.sage-cell   { background: #8A9870; color: #1C2040; }
.stat-cell.cream-cell  { background: #F0EBD8; color: #1C2040; }
.stat-cell.amber-cell .stat-num,
.stat-cell.terra-cell .stat-num,
.stat-cell.coral-cell .stat-num { color: #fff; }
.stat-cell.sage-cell .stat-num,
.stat-cell.cream-cell .stat-num { color: #1C2040; }
.stat-cell.sage-cell .stat-label,
.stat-cell.cream-cell .stat-label { color: rgba(28,32,64,0.7); }

/* Gallery item color border accent */
.gallery-item::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
  background: var(--item-accent, var(--page-accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
}
.gallery-item:hover::after { transform: scaleX(1); }

/* Art page color bar top accent */
.art-color-bar {
  width: 100%; display: flex; height: 12px;
}
.art-color-bar span { flex: 1; height: 100%; }

/* Section wash block */
.section-wash {
  background: var(--wash-color, rgba(255,255,255,0.03));
  padding: 4rem 2rem;
  margin: 0;
  width: 100%;
}
.section-wash > * { max-width: 1080px; margin-left: auto; margin-right: auto; }


  width: 100%; height: 0.5px; background: var(--page-border);
}

/* ── TIMELINE ── */
.timeline { position: relative; padding-left: 2rem; }
.timeline::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 0.5px; background: var(--page-border);
}
.timeline-item {
  position: relative; margin-bottom: 2rem; padding-left: 1.5rem;
}
.timeline-item::before {
  content: ''; position: absolute; left: -2.15rem; top: 0.5rem;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--page-accent);
}
.timeline-year {
  font-family: var(--font-mono); font-size: 0.62rem;
  letter-spacing: 0.15em; color: var(--page-accent); margin-bottom: 0.3rem;
}
.timeline-text { font-size: 1rem; color: var(--page-text); line-height: 1.7; }

/* ── FOOTER ── */
footer {
  padding: 3rem 2rem; border-top: 0.5px solid var(--page-border);
  text-align: center;
}
.footer-logo {
  font-family: var(--font-display);
  font-size: 2.2rem; letter-spacing: 0.35em;
  color: var(--page-text); display: block; margin-bottom: 0.8rem;
}
.footer-coords {
  font-family: var(--font-mono); font-size: 0.6rem;
  letter-spacing: 0.18em; color: var(--page-muted);
  margin-bottom: 1.5rem;
}
.footer-links {
  display: flex; gap: 1.5rem; justify-content: center;
  flex-wrap: wrap; margin-bottom: 1.5rem;
}
.footer-links a {
  font-family: var(--font-mono); font-size: 0.6rem;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--page-muted); text-decoration: none;
  transition: color 0.2s; border-bottom: 0.5px solid transparent;
}
.footer-links a:hover { color: var(--page-text); border-bottom-color: var(--page-accent); }
.footer-credit {
  font-family: var(--font-body); font-style: italic;
  font-size: 0.82rem; color: var(--page-muted); opacity: 0.6;
}

/* ── SCROLL ANIMATIONS ── */
.fade-up {
  opacity: 0; transform: translateY(28px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-up.visible { opacity: 1; transform: none; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  section { padding: 3rem 1.2rem; }
  .hero-content { padding: 3rem 1.2rem 2rem; }
  .art-meta { gap: 1rem; }
  .compass-wrap { max-width: 100%; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .nav-drawer { width: 100%; right: -100%; }
}

/* ── APP STORE BUTTONS ── */
.app-btn-row {
  display: flex; gap: 1rem; flex-wrap: wrap; margin: 2rem 0;
  align-items: center;
}
.app-btn {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: var(--font-mono); font-size: 0.62rem;
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 0.75rem 1.4rem;
  border: 0.5px solid var(--page-accent);
  color: var(--page-accent); text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.app-btn:hover { background: var(--page-accent); color: #000; }
.app-btn.secondary {
  border-color: var(--page-second); color: var(--page-second);
}
.app-btn.secondary:hover { background: var(--page-second); color: #000; }
.app-btn.ghost {
  border-color: rgba(255,255,255,0.25); color: var(--page-text); opacity:0.7;
}
.app-btn.ghost:hover { opacity: 1; border-color: var(--page-text); }

/* ── VIDEO EMBED ── */
.video-wrap {
  position: relative; padding-bottom: 56.25%; height: 0;
  overflow: hidden; margin: 2.5rem 0;
  border: 0.5px solid var(--page-border);
}
.video-wrap iframe {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  border: 0;
}

/* ── CONTACT FORM ── */
.oss-form { max-width: 640px; margin: 2rem 0; }
.oss-form-row { margin-bottom: 1.5rem; }
.oss-form label {
  display: block; font-family: var(--font-mono); font-size: 0.6rem;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--page-muted); margin-bottom: 0.5rem;
}
.oss-form input,
.oss-form select,
.oss-form textarea {
  width: 100%; background: rgba(255,255,255,0.04);
  border: 0.5px solid var(--page-border);
  color: var(--page-text); font-family: var(--font-body);
  font-size: 1rem; padding: 0.75rem 1rem;
  outline: none; transition: border-color 0.2s;
  appearance: none;
}
.oss-form input:focus,
.oss-form select:focus,
.oss-form textarea:focus { border-color: var(--page-accent); }
.oss-form textarea { min-height: 180px; resize: vertical; }
.oss-form select option { background: #111; }
.oss-form-submit {
  font-family: var(--font-mono); font-size: 0.65rem;
  letter-spacing: 0.18em; text-transform: uppercase;
  padding: 1rem 2.5rem; background: transparent;
  border: 0.5px solid var(--page-accent);
  color: var(--page-accent); cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.oss-form-submit:hover { background: var(--page-accent); color: #000; }
.form-status {
  font-family: var(--font-mono); font-size: 0.65rem;
  letter-spacing: 0.1em; margin-top: 1rem;
  min-height: 1.5rem; color: var(--page-accent);
}

/* ── NAV EXTERNAL LINK INDICATOR ── */
.nav-drawer ul li a[target="_blank"]::after {
  content: " ↗"; font-size: 0.7em; opacity: 0.5;
}
