html { scroll-behavior: smooth; }
body {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
}
.serif { font-family: "Cormorant Garamond", Georgia, serif; }
.hairline { border-color: var(--border); }

/* Anchor offset for fixed header */
section[id] { scroll-margin-top: 110px; }

/* Header: subtle “frosted” look + stronger on scroll */
#headerInner { background: rgba(255,255,255,.78); box-shadow: 0 6px 18px rgba(0,0,0,.06); }
#headerInner.is-scrolled { background: rgba(255,255,255,.94); box-shadow: 0 12px 34px rgba(0,0,0,.12); }

/* Hide number spinners on some browsers (cosmetic) */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Premium helpers */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
  z-index:0;
}

.shadow-soft { box-shadow: 0 18px 50px rgba(0,0,0,.10); }
.hero-vignette{ background: radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,.35) 100%); }
.hero-bottom-fade{
  background: linear-gradient(
    to bottom,
    rgba(245,243,239,0) 0%,
    rgba(245,243,239,0.08) 20%,
    rgba(245,243,239,0.28) 48%,
    rgba(245,243,239,0.62) 74%,
    rgba(245,243,239,1) 100%
  );
}
.dot{
  width:.38rem; height:.38rem; border-radius:9999px;
  background: var(--brass);
  box-shadow: 0 0 0 3px rgba(176,138,61,.18);
  flex: none;
}
.lux-kicker{
  font-size:.70rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color: var(--muted);
}
.lux-card{
  padding: 1.5rem;
  border-radius: 1.5rem;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
}
.lux-panel{
  padding: 1.75rem;
  border-radius: 1.75rem;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--border);
  box-shadow: 0 16px 40px rgba(0,0,0,.07);
  backdrop-filter: blur(12px);
}
.timeline-card{
  display:grid;
  grid-template-columns: 3.2rem 1fr;
  gap: 1rem;
  padding: 1.35rem 1.35rem 1.35rem 1.1rem;
  border-radius: 1.6rem;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 14px 36px rgba(0,0,0,.07);
  position: relative;
}
.timeline-badge{
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 9999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.75rem;
  letter-spacing:.22em;
  color: var(--ink);
  background: rgba(176,138,61,.12);
  border: 1px solid rgba(176,138,61,.30);
  font-variant-numeric: tabular-nums;
}
.mini-pill{
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.7rem 1rem;
  border-radius: 9999px;
  border: 1px solid var(--border);
  background: rgba(245,243,239,.6);
  font-size:.85rem;
  color: var(--muted);
}
.craft-fix{
  position: relative;
  padding-left: 1.5rem;
}


/* Back to top button */
#toTop { transition: opacity .2s ease, transform .2s ease; }
#toTop.is-hidden { opacity: 0; pointer-events: none; transform: translateY(6px); }
@media (prefers-reduced-motion: reduce) {
  #toTop { transition: none; }
}



/* Reveal animations (no libraries; controlled via data-reveal) */
[data-reveal]{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .65s ease, transform .65s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
[data-reveal="fade"]{ transform: none; }
[data-reveal="up"]{ transform: translateY(18px); }
[data-reveal="left"]{ transform: translateX(-18px); }
[data-reveal="right"]{ transform: translateX(18px); }
[data-reveal="scale"]{ transform: scale(.985); }

[data-reveal].is-visible{
  opacity: 1;
  transform: none;
}

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


/* Collection: smooth transitions when switching products */
.collection-switch{
  transition: opacity .28s ease, transform .28s ease;
  will-change: opacity, transform;
}
.collection-switch.is-switching{ opacity: 0; }
.collection-switch--media.is-switching.is-next{ transform: translateX(-10px); }
.collection-switch--media.is-switching.is-prev{ transform: translateX(10px); }
.collection-switch--stage.is-switching{ transform: translateY(10px); }

@media (prefers-reduced-motion: reduce){
  .collection-switch{ transition: none; }
}


/* Mobile polish */
@media (max-width: 767px){
  /* Slightly tighter header so content fits better */
  #headerInner{ padding: .75rem .9rem; }

  /* Keep big imagery from dominating on small screens */
  section#about img{ max-height: 420px; }

  /* Collection: keep controls usable and compact */
  #collection .serif{ letter-spacing: -0.01em; }

  .craft-fix{
    padding-left: 0;
  }
}

/* Mobile horizontal scroller: hide scrollbar */
.mobile-scroll{scrollbar-width:none;-ms-overflow-style:none;}
.mobile-scroll::-webkit-scrollbar{display:none;}
