/* =====================================================
   SEEK — BASE (base.css)
   Reset, body, cursor elements, scroll progress bar.
===================================================== */

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--black);
  font-family: 'Nunito', sans-serif;
  overflow-x: hidden;
  cursor: none;
}

/* ---- Custom Cursor ---- */
#cur {
  position: fixed; width: 10px; height: 10px;
  background: var(--black); border-radius: 50%;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width .2s var(--spring), height .2s var(--spring), background .3s;
  mix-blend-mode: multiply;
}
#curR {
  position: fixed; width: 36px; height: 36px;
  border: 1.5px solid rgba(10,10,10,.25); border-radius: 50%;
  pointer-events: none; z-index: 9998;
  transform: translate(-50%, -50%);
  transition: width .5s var(--expo), height .5s var(--expo), border-color .3s;
}
body.hov #cur  { width: 6px; height: 6px; background: var(--gold); }
body.hov #curR { width: 60px; height: 60px; border-color: rgba(203,154,45,.5); }
body.clk #cur  { width: 20px; height: 20px; }

/* ---- Scroll Progress Bar ---- */
#spb {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0%;
  background: linear-gradient(90deg, var(--gold-dk), var(--gold-lt), var(--gold-dk));
  z-index: 9997; pointer-events: none;
  box-shadow: 0 0 12px rgba(203,154,45,.6);
}

/* ---- Shared Section Eyebrow ---- */
.section-eyebrow {
  display: flex; align-items: center; gap: .8rem;
  font-family: 'Space Mono', monospace;
  font-size: .62rem; letter-spacing: .2em; color: var(--gold);
  margin-bottom: 1.2rem; text-transform: uppercase;
}
.eyebrow-line {
  width: 38px; height: 1.5px; background: var(--gold);
  transform-origin: left; transform: scaleX(0);
  transition: transform .6s var(--expo);
}
.eyebrow-line.go { transform: scaleX(1); }

/* ---- Shared Section Title ---- */
.section-title {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: clamp(2.2rem, 4vw, 3.8rem);
  line-height: 1.08; letter-spacing: -.01em; margin-bottom: 1.2rem;
}

/* ---- Shared Buttons ---- */
.btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--black); color: var(--white);
  padding: .82rem 2rem; border-radius: 99px;
  font-family: 'Nunito', sans-serif; font-size: .88rem; font-weight: 800;
  text-decoration: none; cursor: none; letter-spacing: .04em;
  position: relative; overflow: hidden;
  transition: transform .3s var(--spring), box-shadow .3s;
}
.btn-primary::before {
  content: ''; position: absolute; inset: 0;
  background: var(--gold);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .45s var(--expo); z-index: 0;
}
.btn-primary:hover::before { transform: scaleX(1); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 36px rgba(10,10,10,.18); }
.btn-txt { position: relative; z-index: 1; transition: color .3s; }
.btn-primary:hover .btn-txt { color: var(--black); }

.btn-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: var(--black);
  padding: .82rem 2rem; border-radius: 99px;
  border: 1.5px solid rgba(10,10,10,.18);
  font-family: 'Nunito', sans-serif; font-size: .88rem; font-weight: 800;
  text-decoration: none; cursor: none; letter-spacing: .04em;
  transition: border-color .3s, background .3s, transform .3s var(--spring);
}
.btn-outline:hover { border-color: var(--gold); background: rgba(203,154,45,.06); transform: translateY(-3px); }

.btn-gold {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--gold); color: var(--black);
  padding: .85rem 2.2rem; border-radius: 99px;
  font-family: 'Nunito', sans-serif; font-size: .9rem; font-weight: 900;
  text-decoration: none; cursor: none; letter-spacing: .06em;
  transition: transform .3s var(--spring), box-shadow .3s, background .3s;
}
.btn-gold:hover { background: var(--gold-lt); transform: translateY(-4px); box-shadow: 0 16px 48px rgba(203,154,45,.32); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: rgba(255,255,255,.55);
  padding: .85rem 2.2rem; border-radius: 99px;
  border: 1.5px solid rgba(255,255,255,.14);
  font-family: 'Nunito', sans-serif; font-size: .9rem; font-weight: 700;
  text-decoration: none; cursor: none; letter-spacing: .04em;
  transition: border-color .3s, color .3s, transform .3s var(--spring);
}
.btn-ghost:hover { border-color: rgba(255,255,255,.38); color: white; transform: translateY(-3px); }

/* ---- Ripple ---- */
@keyframes ripping { from { transform: scale(0); opacity: .55; } to { transform: scale(1); opacity: 0; } }
.rip {
  position: absolute; border-radius: 50%;
  pointer-events: none; z-index: 99;
  animation: ripping .7s ease-out forwards;
}
