/* ========================================
   Vitaliy's Guide to Omaha
   Premium Editorial Design System
   ======================================== */

/* ---- Base ---- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

::selection {
  background-color: rgba(201, 168, 76, 0.2);
  color: #1A2332;
}

/* ---- Subtle paper texture via gradient overlay ---- */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(201,168,76,0.03) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(107,29,52,0.02) 0%, transparent 50%);
}

/* ---- Subtle grain texture (static PNG, no runtime filter) ---- */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  will-change: transform;
  opacity: 0.035;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAYFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApJRYiAAAAH3RSTlMABgkMDxIVGBseISQnKi0wMzY5PD9CRUZIS01PUVNVyuIB1gAACRdJREFUeNrt2+1y2jAQBWAtsgSyjQmQNqXv/5atZO9qZUv+kMnMdub+SILt1V5J1phtby/7stfy63X7Cav1u9/99LW5btbX55e/ftov18fp45fNjz+b7eJpf/z63WZ/ujzr5/jHr81uvb6+qHY/f9kuLs/L9X7BL5/UX/Cen3/dbJenx6ci+OvPZne5fEH/7vfaLxY6+kXg/P7Hpy/UJKff/sC/xGu7vrzY13e7LR+ZJgX+9XWzPz6d0Juj4vdjs//Y7G43wd3+YlOs1h3D/Pm7vEEH03W3uyzP1xe2cB6M1S/S3p3+8fwqXO7DK12f2T6d0I2FdPy6OvHBr8DWl2e6YL3eFKf/OHOLo4M7XVbpLy/I8M0P/53FwfL0dM7PuYO/XSxXZ/Q34DK/Y3ZzxO8d+kBdNsvl5Um3F3y2+7TZr9edBP/43y16X6B6H/f7Rx9uP1+4N8NXVW/Y3sfHi+Pi/MFdL/qV/9NedPH0uF3q3u0L+sfi8nJ5sf/k4Yfd16fHy/MT3X3P5+m62V+uBz0b27/bHG8H5Nb7B3l+frZPn7xdFw+Hy6N+5X7D0v35Z/dB/xVkn/75bVPe/fLxeb/cPm/Q/4Tduz0eD5Zb/vMaK/Xpn+WOJ/hssz5d/qYun8X68mL/Uf/w91XRO6+3x+VJfRj4sN7o/qkgOJ3j78KflX6vUPr0wq6vUf56+L38TT+fI/Zy93fJbvT6/kFtKd7c+L/eUKP47/7fcXv/8+n5abfbFQqbza+4f6VG7t+/P5vNw/GGgKDp/oIuBBZHU6ny96Nfbh4u1ufz49L+hweb7s19f3b/vy8zI+u32i4zx8oaPb5fm8e0Ef2cXl8eJ8eUd2eTgcNufz3jkPn2yfflCHfXp+Pi5PJzp43Rye+Ga3xPUu85Ldbn+9PD/tP18HA7isFw/b89HuH7I4PhxOy7PQzKdzz0/7IjrCz4+X43J/CY+OD/vT08Ud6nxZnu7rK5zn9eNJ0/SuJLXeHp8Xbvx+tz8t1uvrc3g37YXrH8d/kR7A8/K0Pp3U4bz/4Nj/hXZ53BdcWL/bG7Sc7v1FnFnj/f3l+vDw//aT6u3K72V2uW3F8oHtsjucH1XnfgKvV+vFM3kPH00F8h/q7/Wq1elCdp83+cjnRgde7/Xp7PLk7Ey69+gf8eOGj/cdi3R7tX/iSr35fXJ5P/Qo3YLbH/Z4b36dbnE9H82m+XOr4yrm42LGnI9Y33T9eLg8h1f3fLk8qfNpuT9d3r/JLXLBZ9b4s3nUjnS6X04Nqt/v4sFwuF5eD+ld/Kbhc//7HfnNer/u3O/73GcG/JJ3dH7Xf7k+VxWT/Y/v8Xt4dXSodXdvt/2OyyLh7sluv96fzwejlPj+rjv68tOf3md5u+d2/iL1e6f3icQ+X2//1mu1k/LE+6u0zq4/X2z3Bx15PXrxebxcXcS7v/c6dZr9pX9/7KLePvk47L6m1J+Hj79LBcXK4NuETrU/3O3We/fV5e3pUPz/f7RYm3t2/X5P1j0bsF/I+3V3t3/+LPhFv+d2pGzO+e/u/9/m1fB6M3v3bH8eJz+XR/Z7s96NadTgcnXb3+C4PV6nA+Hc5jf2O7v7qQz9bh8T/U6v4d2h+Xp8sRJmQ77x/AcGIg6HtaX/eVSjz4+3j7EQKr4hnqI8VJdvPjjvDie9JfJSWz/RFfyeNqpN3M5Xu9ZXfG1Pp+eT/S4rpfXl+cnvW03YH2+PI7vN06ni9FJUPxVuN9cTufT4RQ8n87ni3v3abk/n4PHy+msr+BpOS5Q//K4OJzPx6ce/oD/LfeFY3m+/lF7fmAcjuf7uUfbp9PD6bBfq7X49M9v1WH7cDw/Lh5Oy+NF/RNfLQ/XWPq+v7xcnuR5fHjZ3/8LFGtwetLty+flYXfxVvtxfnlcXPY01Pef6nj3sL08q//3HrU/XHSnDuf1sOMU/fXBx+1hd1muu8N0L5j3cX25PB22F74vl4f7t+CjhvXpct6fj0enJ/5HUB3Xh+fT0jj6bL3cPdgnJnO42F+e3NPj8vTBkr5V1oc/7nj2n9cPy+0SxMtudbycdPfXw/1xc9qfT+72en3cnS8Pa/d6vr4+n47rI+lur9YfLjSgVufHy7kbMNrvn/an+/kBN3Bxebhur1V0u+TysN8d+v2iL8dlf3g4HPbn/cm+f/y42Z+PZ71ZLh7Or7b70+lwIQ/+j+OeHvcl3N4+rNaX4/F0PB3VcXV8uOxP59P+dNL9q0D11x/3x+1St6+Pk/5lcdrrL3V/Ol+OJ11YnU/YTXE+q/+P93f74oNfn9fLU/9D3u8+8UfG5xt9Ol+fl6eFe0W746l82ur35Q7bh8Pp6Zp3C7cPN+Dh9LCQJ9fF6uF0PuxLPW5J/vBj/7R8WJ+X+3NRBPcXy8PyWAwf6Gp1WB5O6/Pj6Xg46I+l56B6Otir/Wnfu3vd/U+H/enp1oEXD4eTux/9z+Xl4oOKe14e4P7y1P+Dj8t1vyfvF48PBRBf3MvJiX7X5XQ4Hp3T40V1Oh0P6v96f3qqTJfn5em5mhEkSs/qhJ6Oh4N+LPrP8nQ+8cl+s78cn3er83J7PB30Z+P+dNofDjQtAx3PT/TQjsfF07Jc7B70f3DFHh8eDofN+bg+H1en5/1xt7s8r1en/Xl3PKvOh+VRT+b+sJf57bA87dX5fH06OsGWLg7H42l/tl8M+vD8oA7b8/H0mE8P58s95tO/bBcP+XjSXR4XB/j0fFoez+dy6M/nx4fj+XA+OYfy+Fx+kZHdnveH/fF03l8YD8ud+9frj6f8cZnF/eHYp29/PF1O5Yr56UGo5/N5p/Y3u/PhfCh4+OCyPl9OD9fU6XBen5erx3Jp9tpfj0vRi1KflS7r0+nhnFT7h+f/3f/x08uHgpVfHfb8/zIti+f9GadTceKHx+N5f0yj43p7eqr4w/64L8/nEAQ3+LTev1c61af/A7gnVJXklWG3AAAAAElFTkSuQmCC");
  background-repeat: repeat;
  background-size: 128px 128px;
}
 
body > * {
  position: relative;
  z-index: 1;
}

/* ---- Header ---- */
#site-header {
  transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom: 1px solid transparent;
}

#site-header.scrolled {
  background-color: rgba(250, 247, 242, 1);
  border-bottom-color: rgba(201, 168, 76, 0.12);
}

/* ---- Navigation ---- */
.nav-link {
  position: relative;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 1.5px;
  background: #C9A84C;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-link:hover::after,
.nav-link.active::after {
  transform: scaleX(1);
}

.nav-link.active {
  color: #C9A84C;
}

/* ---- Mobile Menu ---- */
#mobile-menu {
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  visibility: hidden;
}

#mobile-menu.open {
  display: flex;
  opacity: 1;
  visibility: visible;
}

.mobile-nav-link {
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

#mobile-menu.open .mobile-nav-link {
  opacity: 1;
  transform: translateX(0);
}

#mobile-menu.open .mobile-nav-link:nth-child(1) { transition-delay: 0.05s; }
#mobile-menu.open .mobile-nav-link:nth-child(2) { transition-delay: 0.10s; }
#mobile-menu.open .mobile-nav-link:nth-child(3) { transition-delay: 0.15s; }
#mobile-menu.open .mobile-nav-link:nth-child(4) { transition-delay: 0.20s; }
#mobile-menu.open .mobile-nav-link:nth-child(5) { transition-delay: 0.25s; }
#mobile-menu.open .mobile-nav-link:nth-child(6) { transition-delay: 0.30s; }
#mobile-menu.open .mobile-nav-link:nth-child(7) { transition-delay: 0.35s; }

/* ---- Section Numbers ---- */
.section-number {
  font-family: 'Merriweather', Georgia, serif;
  font-weight: 900;
  font-size: 5rem;
  line-height: 1;
  color: rgba(201, 168, 76, 0.08);
  position: absolute;
  top: -0.5rem;
  left: -0.5rem;
  pointer-events: none;
  user-select: none;
}

@media (min-width: 640px) {
  .section-number {
    font-size: 7rem;
    top: -1rem;
    left: -1rem;
  }
}

/* ---- Ornamental Divider ---- */
.ornamental-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  max-width: 200px;
  margin: 0 auto;
}

.ornamental-divider::before,
.ornamental-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #C9A84C, transparent);
}

.ornamental-divider .diamond {
  width: 6px;
  height: 6px;
  background: #C9A84C;
  transform: rotate(45deg);
  flex-shrink: 0;
}

/* ---- Drop Cap ---- */
.drop-cap::first-letter {
  float: left;
  font-family: 'Merriweather', Georgia, serif;
  font-size: 3.5rem;
  line-height: 0.8;
  font-weight: 900;
  color: #1A2332;
  margin-right: 0.5rem;
  margin-top: 0.15rem;
}

/* ---- Pull Quote ---- */
.pull-quote {
  position: relative;
  padding-left: 1.5rem;
  border-left: 3px solid #C9A84C;
}

.pull-quote::before {
  content: '\201C';
  font-family: 'Merriweather', Georgia, serif;
  font-size: 4rem;
  line-height: 1;
  color: rgba(201, 168, 76, 0.15);
  position: absolute;
  top: -1.2rem;
  left: 0.5rem;
}

/* ---- Photo Placeholder (Styled) ---- */
.photo-frame {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #F0ECE2 0%, #E8E2D6 100%);
}

.photo-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(201, 168, 76, 0.1);
  border-radius: inherit;
  pointer-events: none;
}

/* .photo-frame-label removed (unused) */

/* ---- Scroll Animations ---- */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger within grids */
.stagger-1 { transition-delay: 0.08s; }
.stagger-2 { transition-delay: 0.16s; }
.stagger-3 { transition-delay: 0.24s; }
.stagger-4 { transition-delay: 0.32s; }
.stagger-5 { transition-delay: 0.40s; }

/* Slide from left */
.animate-from-left {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-from-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* ---- Card Hover ---- */
.card-hover {
  transition: transform 0.4s cubic-bezier(0.2, 0, 0, 1),
              box-shadow 0.4s cubic-bezier(0.2, 0, 0, 1);
}

.card-hover:hover {
  transform: translateY(-4px);
  box-shadow:
    0 1px 2px rgba(26, 35, 50, 0.04),
    0 4px 8px rgba(26, 35, 50, 0.04),
    0 8px 16px rgba(26, 35, 50, 0.04),
    0 16px 32px -4px rgba(26, 35, 50, 0.06);
}

/* ---- Event Card Glow ---- */
.event-card-featured {
  position: relative;
}

.event-card-featured::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(107,29,52,0.15), rgba(201,168,76,0.15));
  z-index: -1;
}

/* ---- Back to Top ---- */
#back-to-top {
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              background-color 0.3s ease;
  transform: translateY(8px);
}

#back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* ---- Gold link underline ---- */
.gold-link {
  text-decoration: none;
  background-image: linear-gradient(#C9A84C, #C9A84C);
  background-size: 0% 1px;
  background-position: left bottom;
  background-repeat: no-repeat;
  transition: background-size 0.3s cubic-bezier(0.2, 0, 0, 1);
}

.gold-link:hover {
  background-size: 100% 1px;
}

/* ---- Focus ---- */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid #C9A84C;
  outline-offset: 3px;
}

/* ---- Custom Scrollbar (desktop) ---- */
@media (min-width: 1024px) {
  ::-webkit-scrollbar {
    width: 8px;
  }
  ::-webkit-scrollbar-track {
    background: #FAF7F2;
  }
  ::-webkit-scrollbar-thumb {
    background: rgba(201, 168, 76, 0.3);
    border-radius: 4px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: rgba(201, 168, 76, 0.5);
  }
}

/* ---- Reduced Motion ---- */
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll,
  .animate-from-left {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .card-hover { transition: none; }
  .mobile-nav-link { transition: none; }
}

/* ---- Print ---- */
@media print {
  #site-header, #mobile-menu, #back-to-top, #newsletter { display: none !important; }
  body { background: white; color: black; }
  section { page-break-inside: avoid; }
}
