/* =============================================================
   BASE — reset, layout container, typography, shared bits.
   ============================================================= */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Page container */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* Section rhythm */
section{padding:84px 0}
@media (max-width:640px){ section{padding:56px 0} }

/* Headings */
h1,h2,h3{margin:0;letter-spacing:-.025em;text-wrap:balance;font-weight:800}

/* Small caps label used above every section title */
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-2)}

/* Centered section header */
.sec-head{text-align:center;max-width:640px;margin:0 auto 48px}
.sec-head h2{font-size:clamp(30px,4.4vw,46px);margin-top:12px}
.sec-head p{color:var(--ink-2);font-size:17px;margin:14px 0 0}

/* Camera-flash overlay (played once on load by main.js) */
.flash-overlay{position:fixed;inset:0;background:#fff;z-index:9999;pointer-events:none;opacity:0}
.flash-overlay.go{animation:flash 900ms ease-out forwards}
@keyframes flash{0%{opacity:0}8%{opacity:.92}100%{opacity:0}}

/* Entrance animation for hero elements */
.rise{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.rise.d1{animation-delay:.15s}.rise.d2{animation-delay:.3s}.rise.d3{animation-delay:.45s}
@keyframes rise{to{opacity:1;transform:none}}

/* Respect users who prefer no motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .flash-overlay,.rise{animation:none !important;opacity:1 !important;transform:none !important}
}
