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

:root {
  --black: #080808;
  --dark: #0e0e0e;
  --dark2: #141414;
  --gold: #C9A84C;
  --gold-light: #E8C97A;
  --gold-pale: #F5E4B8;
  --gold-dim: rgba(201,168,76,0.3);
  --gold-glow: rgba(201,168,76,0.15);
  --white: #fff;
  --w80: rgba(255,255,255,0.8);
  --w50: rgba(255,255,255,0.5);
  --w20: rgba(255,255,255,0.2);
  --w08: rgba(255,255,255,0.08);
  --w04: rgba(255,255,255,0.04);
  --serif: 'Cormorant Garamond', serif;
  --sans: 'DM Sans', sans-serif;
}

html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--sans); background:var(--black); color:var(--white); overflow-x:hidden; cursor:none; }
::selection { background:var(--gold); color:#000; }

/* ===== CURSOR ===== */
.cursor-ring {
  width:44px; height:44px; border:1px solid var(--gold);
  border-radius:50%; position:fixed; pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); transition:transform 0.14s ease, width 0.4s, height 0.4s, background 0.3s;
  mix-blend-mode:normal; opacity:0.7;
}
.cursor-gold {
  width:5px; height:5px; background:var(--gold); border-radius:50%;
  position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%);
  box-shadow:0 0 10px var(--gold);
}
body.hover .cursor-ring { width:70px; height:70px; background:rgba(201,168,76,0.07); border-color:var(--gold-light); }

/* ===== LOADER ===== */
.loader {
  position:fixed; inset:0; background:#050505; z-index:10000;
  display:flex; align-items:center; justify-content:center;
  transition:opacity 0.8s ease, visibility 0.8s;
}
.loader.gone { opacity:0; visibility:hidden; }
.loader-inner { text-align:center; }
.loader-line {
  width:1px; height:0; background:var(--gold); margin:0 auto 30px;
  animation:lineGrow 1.2s ease forwards;
}
@keyframes lineGrow { to { height:60px; } }
.loader-logo {
  font-family:var(--serif); font-size:3rem; font-weight:300; letter-spacing:0.5em;
  color:var(--gold); opacity:0; animation:fadeIn 0.8s 0.8s ease forwards;
}
.loader-tagline {
  font-family:var(--sans); font-size:0.75rem; letter-spacing:0.4em;
  color:var(--w50); text-transform:uppercase; margin-top:12px;
  opacity:0; animation:fadeIn 0.8s 1.2s ease forwards;
}
.loader-progress {
  width:200px; height:1px; background:rgba(201,168,76,0.2);
  margin:30px auto 0; overflow:hidden;
}
.lp-fill { height:100%; width:0; background:var(--gold); transition:width 0.05s; }
@keyframes fadeIn { to { opacity:1; } }

/* ===== NAV ===== */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; padding:28px 60px;
  transition:all 0.5s; border-bottom:1px solid transparent;
}
.nav.scrolled {
  background:rgba(8,8,8,0.92); backdrop-filter:blur(20px);
  padding:18px 60px; border-bottom-color:rgba(201,168,76,0.15);
}
.nav-left { display:flex; gap:2.5rem; }
.nav-right { display:flex; gap:2.5rem; justify-content:flex-end; align-items:center; }
.nav-link {
  font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--w50); text-decoration:none; transition:color 0.3s;
  position:relative;
}
.nav-link::after {
  content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px;
  background:var(--gold); transition:width 0.3s;
}
.nav-link:hover { color:var(--gold); }
.nav-link:hover::after { width:100%; }
.nav-contact {
  border:1px solid rgba(201,168,76,0.4); padding:8px 20px; border-radius:0;
  color:var(--gold); letter-spacing:0.12em;
}
.nav-contact:hover { background:var(--gold); color:#000; }
.nav-contact:hover::after { display:none; }
.nav-logo {
  font-family:var(--serif); font-size:1.6rem; font-weight:400; letter-spacing:0.4em;
  color:var(--gold); text-align:center; justify-self:center;
}

/* ===== HERO ===== */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; position:relative;
  overflow:hidden; padding:120px 40px 80px;
  background: radial-gradient(ellipse at 30% 20%, rgba(201,168,76,0.06) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 80%, rgba(201,168,76,0.04) 0%, transparent 50%),
              var(--black);
}
.hero-bg-lines {
  position:absolute; inset:0; display:grid; grid-template-columns:repeat(5,1fr); z-index:0;
}
.hero-bg-lines span {
  border-left:1px solid rgba(201,168,76,0.05);
  animation:lineFlicker 8s ease-in-out infinite;
}
.hero-bg-lines span:nth-child(1){ animation-delay:0s; }
.hero-bg-lines span:nth-child(2){ animation-delay:1.5s; }
.hero-bg-lines span:nth-child(3){ animation-delay:3s; }
.hero-bg-lines span:nth-child(4){ animation-delay:4.5s; }
.hero-bg-lines span:nth-child(5){ animation-delay:6s; }
@keyframes lineFlicker {
  0%,100%{opacity:1} 50%{opacity:0.3}
}

.hero-corner {
  position:absolute; font-size:0.7rem; color:var(--gold); opacity:0.4;
  animation:cornerPulse 3s ease-in-out infinite;
}
.tl{ top:60px; left:60px; } .tr{ top:60px; right:60px; }
.bl{ bottom:60px; left:60px; } .br{ bottom:60px; right:60px; }
@keyframes cornerPulse { 0%,100%{opacity:0.4}50%{opacity:1} }

.hero-eyebrow {
  display:flex; align-items:center; gap:20px; margin-bottom:40px;
  position:relative; z-index:2;
  opacity:0; animation:fadeIn 1s 2s ease forwards;
}
.eyebrow-line { width:60px; height:1px; background:var(--gold-dim); }
.hero-eyebrow span { font-size:0.72rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); font-family:var(--sans); font-weight:300; }

.hero-title-wrap { text-align:center; position:relative; z-index:2; margin-bottom:28px; }
.ht-line { overflow:hidden; line-height:1; }
.mask { display:inline-block; overflow:hidden; }
.slide-up {
  display:block;
  font-family:var(--serif); font-size:clamp(3.5rem,8vw,8.5rem); font-weight:300;
  letter-spacing:0.04em; line-height:1.05;
  opacity:0; transform:translateY(100%);
  animation:slideUp 1.2s cubic-bezier(0.25,0.46,0.45,0.94) forwards;
}
.ht-line:nth-child(1) .slide-up { animation-delay:1.8s; }
.ht-line:nth-child(2) .slide-up { animation-delay:2.1s; }
.gold-word { color:var(--gold); font-style:italic; }
@keyframes slideUp { to { opacity:1; transform:translateY(0); } }

.hero-sub-wrap { position:relative; z-index:2; text-align:center; margin-bottom:40px; }
.hero-sub {
  font-size:1rem; color:var(--w50); line-height:1.9; font-weight:300;
  letter-spacing:0.03em;
  opacity:0; animation:fadeIn 1s 2.8s ease forwards;
}

.hero-actions {
  display:flex; flex-direction:column; align-items:center; gap:20px;
  position:relative; z-index:2;
  opacity:0; animation:fadeIn 1s 3.1s ease forwards;
}
.hero-scroll-hint {
  display:flex; align-items:center; gap:10px;
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--w20);
}
.scroll-dot {
  width:6px; height:6px; border-radius:50%; background:var(--gold);
  animation:scrollBounce 1.5s ease-in-out infinite;
}
@keyframes scrollBounce { 0%,100%{transform:translateY(0)}50%{transform:translateY(4px)} }

.hero-bottom-bar {
  position:absolute; bottom:0; left:0; right:0;
  display:flex; align-items:center; justify-content:center; gap:0;
  border-top:1px solid rgba(201,168,76,0.12); z-index:2;
  opacity:0; animation:fadeIn 1s 3.4s ease forwards;
}
.hbb-item {
  display:flex; flex-direction:column; align-items:center; padding:24px 60px; gap:6px;
}
.hbb-num { font-family:var(--serif); font-size:1.6rem; font-weight:300; color:var(--gold); letter-spacing:0.1em; }
.hbb-label { font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--w20); }
.hbb-divider { width:1px; height:40px; background:rgba(201,168,76,0.15); flex-shrink:0; }

/* ===== BUTTONS ===== */
.btn-gold {
  background:transparent; border:1px solid var(--gold); color:var(--gold);
  padding:14px 38px; font-family:var(--sans); font-size:0.78rem;
  font-weight:400; letter-spacing:0.18em; text-transform:uppercase;
  cursor:pointer; position:relative; overflow:hidden; transition:all 0.4s;
}
.btn-gold::before {
  content:''; position:absolute; inset:0; background:var(--gold);
  transform:scaleX(0); transform-origin:right; transition:transform 0.4s ease;
}
.btn-gold:hover::before { transform:scaleX(1); transform-origin:left; }
.btn-gold:hover { color:#000; box-shadow:0 0 40px rgba(201,168,76,0.25); }
.btn-gold > * { position:relative; z-index:1; }
.btn-gold.large { padding:18px 50px; font-size:0.82rem; }
.btn-gold span { position:relative; z-index:1; }

.btn-ghost-gold {
  background:none; border:none; color:var(--gold); cursor:pointer;
  font-family:var(--sans); font-size:0.75rem; letter-spacing:0.15em;
  text-transform:uppercase; padding:0; transition:all 0.3s;
  position:relative;
}
.btn-ghost-gold::after {
  content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px;
  background:var(--gold); transition:width 0.3s;
}
.btn-ghost-gold:hover::after { width:100%; }

/* ===== SECTION COMMONS ===== */
.section-label {
  font-size:0.7rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px; display:block; font-weight:300;
}
.section-title {
  font-family:var(--serif); font-size:clamp(2rem,4vw,3.8rem); font-weight:300;
  line-height:1.15; letter-spacing:0.02em; color:var(--white);
}
.section-title em { color:var(--gold); font-style:italic; }

/* ===== STATEMENT ===== */
.statement { padding:140px 80px; background:var(--dark); }
.statement-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:200px 1fr; gap:80px; align-items:start; }
.st-side { display:flex; flex-direction:column; align-items:flex-end; gap:20px; padding-top:8px; }
.st-tag { font-size:0.7rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); writing-mode:vertical-rl; transform:rotate(180deg); }
.st-ornament { font-size:2rem; color:var(--gold); opacity:0.4; }
.st-big {
  font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.6rem); font-weight:300;
  line-height:1.5; color:var(--white); margin-bottom:32px; letter-spacing:0.01em;
}
.st-big em { color:var(--gold); font-style:italic; }
.st-small { font-size:0.95rem; color:var(--w50); line-height:1.9; max-width:560px; margin-bottom:24px; font-weight:300; }
.st-signature { font-family:var(--serif); font-size:1.1rem; font-style:italic; color:var(--gold); opacity:0.7; }

/* ===== COLLECTIONS ===== */
.collections { padding:120px 0; overflow:hidden; }
.col-header { text-align:center; padding:0 60px; margin-bottom:60px; }
.col-scroll-hint { font-size:0.72rem; letter-spacing:0.2em; color:var(--w20); text-transform:uppercase; margin-top:16px; }
.col-track-wrap { overflow-x:auto; cursor:grab; }
.col-track-wrap:active { cursor:grabbing; }
.col-track-wrap::-webkit-scrollbar { height:2px; }
.col-track-wrap::-webkit-scrollbar-track { background:var(--dark); }
.col-track-wrap::-webkit-scrollbar-thumb { background:var(--gold-dim); }
.col-track { display:flex; gap:30px; padding:10px 60px; width:max-content; }
.col-card { display:flex; flex-direction:column; width:380px; flex-shrink:0; }
.col-visual {
  height:480px; border:1px solid rgba(201,168,76,0.15); position:relative; overflow:hidden;
  transition:border-color 0.4s;
  display:flex; align-items:center; justify-content:center;
}
.col-card:hover .col-visual { border-color:rgba(201,168,76,0.5); }
.cv-inner { text-align:center; z-index:1; }
.cv-symbol { font-size:3rem; color:var(--gold); opacity:0.5; display:block; margin-bottom:12px; }
.cv-name { font-family:var(--serif); font-size:3rem; font-weight:300; letter-spacing:0.3em; color:var(--gold); opacity:0.3; }
.cv-1 { background:linear-gradient(160deg,#080808 0%,#1a0a0a 50%,#0a0808 100%); }
.cv-2 { background:linear-gradient(160deg,#0d0d08 0%,#1a1808 50%,#0a0a05 100%); }
.cv-3 { background:linear-gradient(160deg,#08080a 0%,#0e0a1a 50%,#080808 100%); }
.cv-4 { background:linear-gradient(160deg,#080a08 0%,#0a1a0a 50%,#080808 100%); }
.col-visual::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at center, rgba(201,168,76,0.08) 0%, transparent 60%);
  opacity:0; transition:opacity 0.4s;
}
.col-card:hover .col-visual::before { opacity:1; }
.col-info { padding:28px 0 0; }
.col-num { font-size:0.7rem; letter-spacing:0.2em; color:var(--gold); opacity:0.5; margin-bottom:10px; }
.col-info h3 { font-family:var(--serif); font-size:1.5rem; font-weight:400; color:var(--white); margin-bottom:12px; letter-spacing:0.05em; }
.col-info p { font-size:0.88rem; color:var(--w50); line-height:1.8; margin-bottom:20px; font-weight:300; }

/* ===== GOLD MARQUEE ===== */
.gold-marquee {
  overflow:hidden; padding:20px 0;
  border-top:1px solid rgba(201,168,76,0.12);
  border-bottom:1px solid rgba(201,168,76,0.12);
  background:rgba(201,168,76,0.03);
}
.gm-track {
  display:flex; width:max-content;
  animation:gmAnim 25s linear infinite;
}
.gm-track span { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); opacity:0.5; padding:0 32px; white-space:nowrap; }
@keyframes gmAnim { from{transform:translateX(0)}to{transform:translateX(-50%)} }

/* ===== CRAFT ===== */
.craft { padding:140px 80px; background:var(--dark2); }
.craft-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.craft-desc { font-size:0.95rem; color:var(--w50); line-height:1.9; margin:24px 0 48px; max-width:480px; font-weight:300; }
.craft-steps { display:flex; flex-direction:column; gap:32px; }
.craft-step { display:flex; gap:24px; align-items:flex-start; padding:24px; border:1px solid rgba(201,168,76,0.1); transition:border-color 0.4s, background 0.4s; }
.craft-step:hover { border-color:rgba(201,168,76,0.35); background:rgba(201,168,76,0.03); }
.cs-num { font-family:var(--serif); font-size:1.2rem; color:var(--gold); opacity:0.5; flex-shrink:0; width:24px; font-weight:300; }
.cs-title { font-size:0.85rem; letter-spacing:0.08em; color:var(--white); margin-bottom:8px; text-transform:uppercase; }
.cs-desc { font-size:0.85rem; color:var(--w50); line-height:1.7; font-weight:300; }

/* Craft visual */
.craft-right { display:flex; align-items:center; justify-content:center; }
.craft-visual { position:relative; width:380px; height:380px; display:flex; align-items:center; justify-content:center; }
.cv-ring {
  position:absolute; border-radius:50%;
  border:1px solid rgba(201,168,76,0.15);
}
.cv-r1 { width:320px; height:320px; animation:ringRot 20s linear infinite; }
.cv-r2 { width:380px; height:380px; border-style:dashed; animation:ringRot 30s linear infinite reverse; opacity:0.5; }
@keyframes ringRot { from{transform:rotate(0)}to{transform:rotate(360deg)} }
.craft-emblem {
  position:relative; z-index:1; text-align:center;
  width:200px; height:200px; border:1px solid rgba(201,168,76,0.25);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:var(--dark2);
}
.ce-symbol { font-size:1.5rem; color:var(--gold); opacity:0.6; }
.ce-brand { font-family:var(--serif); font-size:1.8rem; font-weight:300; letter-spacing:0.4em; color:var(--gold); }
.ce-year { font-size:0.65rem; letter-spacing:0.3em; color:var(--gold); opacity:0.4; text-transform:uppercase; }
.craft-stats {
  position:absolute; display:flex; flex-direction:column; gap:16px;
  right:-40px; top:50%; transform:translateY(-50%);
}
.cs-stat { text-align:center; }
.css-num { font-family:var(--serif); font-size:1.4rem; font-weight:300; color:var(--gold); }
.css-lab { font-size:0.6rem; letter-spacing:0.15em; color:var(--w20); text-transform:uppercase; margin-top:2px; }

/* ===== TESTIMONIALS ===== */
.testimonials { padding:140px 80px; }
.test-header { text-align:center; max-width:1200px; margin:0 auto 70px; }
.test-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.test-card {
  padding:50px 40px; background:var(--dark); border:1px solid rgba(201,168,76,0.1);
  position:relative; overflow:hidden; transition:border-color 0.4s;
}
.test-card:hover { border-color:rgba(201,168,76,0.3); }
.test-card.featured { background:rgba(201,168,76,0.04); border-color:rgba(201,168,76,0.25); }
.test-ornament {
  font-family:var(--serif); font-size:5rem; line-height:0.6;
  color:var(--gold); opacity:0.2; margin-bottom:20px; display:block; font-weight:400;
}
.test-text { font-family:var(--serif); font-size:1.1rem; line-height:1.8; color:var(--w80); font-weight:300; font-style:italic; margin-bottom:32px; }
.test-author { display:flex; align-items:center; gap:16px; }
.ta-line { width:24px; height:1px; background:var(--gold); opacity:0.5; flex-shrink:0; }
.ta-name { font-size:0.82rem; letter-spacing:0.08em; color:var(--gold); text-transform:uppercase; margin-bottom:3px; }
.ta-title { font-size:0.75rem; color:var(--w20); font-weight:300; }

/* ===== CTA ===== */
.cta { padding:120px 80px; text-align:center; position:relative; overflow:hidden;
  background: radial-gradient(ellipse at center, rgba(201,168,76,0.06) 0%, transparent 60%), var(--black); }
.cta-border-top, .cta-border-bottom {
  position:absolute; left:80px; right:80px; height:1px; background:rgba(201,168,76,0.2);
}
.cta-border-top { top:0; } .cta-border-bottom { bottom:0; }
.cta-ornament { font-size:0.8rem; color:var(--gold); opacity:0.3; letter-spacing:0.6em; margin-bottom:24px; }
.cta-inner { max-width:700px; margin:0 auto; }
.cta-title { font-family:var(--serif); font-size:clamp(2.5rem,5vw,4.5rem); font-weight:300; line-height:1.15; margin-bottom:24px; letter-spacing:0.02em; }
.cta-title em { color:var(--gold); font-style:italic; }
.cta-sub { font-size:0.95rem; color:var(--w50); line-height:1.9; max-width:500px; margin:0 auto 48px; font-weight:300; }
.cta-actions { display:flex; flex-direction:column; align-items:center; gap:14px; margin-bottom:50px; }
.cta-note { font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--w20); }
.cta-divider { display:flex; align-items:center; justify-content:center; margin-bottom:50px; }
.cta-divider span { font-size:0.7rem; color:var(--gold); opacity:0.3; letter-spacing:0.4em; }
.cta-contact-grid { display:flex; align-items:center; justify-content:center; gap:0; }
.ccg-item { padding:0 48px; }
.ccg-label { font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); opacity:0.5; margin-bottom:6px; }
.ccg-value { font-size:0.88rem; color:var(--w80); font-weight:300; }
.ccg-sep { width:1px; height:36px; background:rgba(201,168,76,0.15); }

/* ===== FOOTER ===== */
.footer { padding:60px 80px 40px; border-top:1px solid rgba(201,168,76,0.12); }
.footer-inner { max-width:1200px; margin:0 auto; text-align:center; }
.footer-logo { font-family:var(--serif); font-size:2rem; font-weight:300; letter-spacing:0.5em; color:var(--gold); margin-bottom:8px; opacity:0.7; }
.footer-tagline { font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--w20); margin-bottom:32px; }
.footer-links { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:40px; }
.footer-links a { color:var(--w50); text-decoration:none; font-size:0.78rem; letter-spacing:0.08em; transition:color 0.3s; }
.footer-links a:hover { color:var(--gold); }
.footer-links span { color:rgba(201,168,76,0.2); font-size:0.5rem; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:1px solid rgba(201,168,76,0.08); font-size:0.72rem; color:var(--w20); letter-spacing:0.05em; }

/* ===== REVEAL ANIMATIONS ===== */
.reveal-fade { opacity:0; transform:translateY(24px); transition:opacity 0.9s ease, transform 0.9s ease; }
.reveal-fade.visible { opacity:1; transform:translateY(0); }
.reveal-line { opacity:0; transform:translateY(30px); transition:opacity 1s cubic-bezier(0.25,0.46,0.45,0.94), transform 1s cubic-bezier(0.25,0.46,0.45,0.94); }
.reveal-line.visible { opacity:1; transform:translateY(0); }
[data-delay="0"] { transition-delay:0s; }
[data-delay="100"] { transition-delay:0.1s; }
[data-delay="150"] { transition-delay:0.15s; }
[data-delay="200"] { transition-delay:0.2s; }
[data-delay="300"] { transition-delay:0.3s; }

/* ===== MAGNETIC ===== */
.magnetic { transition:transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275); }

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .nav { grid-template-columns:1fr auto; padding:24px 40px; }
  .nav-right { display:none; }
  .statement-inner { grid-template-columns:1fr; }
  .st-side { flex-direction:row; align-items:center; }
  .st-tag { writing-mode:horizontal-tb; transform:none; }
  .craft-grid { grid-template-columns:1fr; }
  .craft-right { display:none; }
  .test-grid { grid-template-columns:1fr; }
}
@media(max-width:768px){
  .nav { padding:20px 24px; }
  .nav-left { display:none; }
  .hero { padding:100px 24px 80px; }
  .hbb-item { padding:20px 24px; }
  .statement { padding:80px 24px; }
  .craft { padding:80px 24px; }
  .testimonials { padding:80px 24px; }
  .cta { padding:80px 24px; }
  .footer { padding:40px 24px 24px; }
  .col-track { padding:10px 24px; }
  .cta-contact-grid { flex-direction:column; gap:24px; }
  .ccg-sep { display:none; }
  .footer-bottom { flex-direction:column; gap:8px; }
}
