*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --bg:#080808; --bg1:#0e0e0e; --bg2:#141414;
  --gold:#c9a96e; --gold-light:#e8d5a3; --gold-dim:#7a6340;
  --white:#f5f3ef; --muted:#7a7672;
  --border:rgba(201,169,110,0.15); --border-soft:rgba(255,255,255,0.06);
}
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--white); font-family:'Syne',sans-serif; overflow-x:hidden; cursor:none !important; }
* { cursor:none !important; }
::selection { background:var(--gold); color:#000; }
::-webkit-scrollbar { width:2px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--gold-dim); }

/* CURSOR */
#cur-dot { position:fixed; width:6px; height:6px; background:var(--gold); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; z-index:9999; mix-blend-mode:difference; }
#cur-ring { position:fixed; width:36px; height:36px; border:1px solid var(--gold); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; z-index:9998; transition:width .3s,height .3s,opacity .3s; opacity:.6; mix-blend-mode:difference; }
#cur-ring.h { width:56px; height:56px; opacity:.4; }

/* NAV */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:1.5rem 5%; transition:background .4s,border-color .4s; }
.nav.scrolled { background:rgba(8,8,8,.95); backdrop-filter:blur(20px); border-bottom:1px solid var(--border); }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; letter-spacing:.12em; color:var(--white); text-decoration:none; }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:2.5rem; list-style:none; }
.nav-links a { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .25s; font-weight:500; }
.nav-links a:hover,.nav-links a.active { color:var(--gold); }
.nav-btn { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; border:1px solid var(--gold-dim); color:var(--gold); background:transparent; padding:.6rem 1.5rem; transition:all .3s; font-family:'Syne',sans-serif; }
.nav-btn:hover { background:var(--gold); color:#000; }

/* PAGES */
.page { display:none; }
.page.active { display:block; }

/* REVEAL */
.rv { opacity:0; transform:translateY(38px); transition:opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1); }
.rv.fl { transform:translateX(-38px); }
.rv.on { opacity:1 !important; transform:none !important; }

/* HERO */
.hero { min-height:100vh; display:flex; align-items:center; padding:0 5%; position:relative; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 70% 50%,rgba(201,169,110,.06) 0%,transparent 70%); }
.hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(201,169,110,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(201,169,110,.03) 1px,transparent 1px); background-size:80px 80px; }
.hero-wrap { position:relative; max-width:1200px; margin:0 auto; width:100%; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.eyebrow { font-size:.68rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; display:flex; align-items:center; gap:.75rem; }
.eyebrow::before { content:''; width:2rem; height:1px; background:var(--gold); }
.h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(3.5rem,7vw,6.5rem); font-weight:300; line-height:1.02; letter-spacing:-.02em; margin-bottom:2rem; }
.h1 em { font-style:italic; color:var(--gold); }
.sub { font-size:.95rem; color:var(--muted); line-height:1.85; max-width:420px; font-weight:400; margin-bottom:2.5rem; }
.actions { display:flex; gap:1.25rem; align-items:center; flex-wrap:wrap; }
.btn-gold { background:var(--gold); color:#000; font-family:'Syne',sans-serif; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; padding:.95rem 2.25rem; border:none; transition:all .3s; text-decoration:none; display:inline-block; }
.btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); }
.btn-ghost { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; font-weight:500; transition:color .25s; }
.btn-ghost:hover { color:var(--white); }
.btn-ghost::after { content:'→'; transition:transform .25s; }
.btn-ghost:hover::after { transform:translateX(6px); }

/* HERO CARD */
.hero-visual { position:relative; }
.hero-card { background:var(--bg1); border:1px solid var(--border); padding:2rem; position:relative; overflow:hidden; }
.hero-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); }
.metric { background:var(--bg1); padding:1.5rem; }
.metric-num { font-family:'Cormorant Garamond',serif; font-size:2.5rem; font-weight:300; color:var(--gold); line-height:1; margin-bottom:.3rem; }
.metric-lbl { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.ftag { position:absolute; background:var(--bg2); border:1px solid var(--border); padding:.6rem 1rem; font-size:.7rem; letter-spacing:.1em; color:var(--gold); animation:floatY 4s ease-in-out infinite; }
.ftag.t1 { top:-1.5rem; right:2rem; }
.ftag.t2 { bottom:-1.5rem; left:2rem; animation-delay:2s; }
@keyframes floatY { 0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)} }
.lr { display:flex; justify-content:space-between; padding:.4rem 0; border-bottom:1px solid var(--border-soft); font-size:.78rem; }
.lr:last-child { border-bottom:none; }

/* MARQUEE */
.mq-wrap { border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); padding:1.25rem 0; overflow:hidden; background:var(--bg1); }
.mq-inner { display:flex; gap:4rem; animation:mq 20s linear infinite; white-space:nowrap; }
.mq-item { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-style:italic; color:var(--muted); display:inline-flex; align-items:center; gap:2rem; flex-shrink:0; }
.mq-item span { color:var(--gold); font-style:normal; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; font-family:'Syne',sans-serif; }
@keyframes mq { from{transform:translateX(0)}to{transform:translateX(-50%)} }

/* SECTION */
.sec { padding:7rem 5%; max-width:1200px; margin:0 auto; }
.sec-lbl { font-size:.65rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; display:flex; align-items:center; gap:.75rem; }
.sec-lbl::before { content:''; width:1.5rem; height:1px; background:var(--gold); }
.sec-h { font-family:'Cormorant Garamond',serif; font-size:clamp(2.5rem,5vw,4rem); font-weight:300; line-height:1.1; letter-spacing:-.02em; margin-bottom:1rem; }
.sec-h em { font-style:italic; color:var(--gold); }
.sec-sub { font-size:.9rem; color:var(--muted); line-height:1.85; max-width:500px; font-weight:400; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:end; }

/* SERVICES */
.svc-list { margin-top:4rem; }
.svc-row { display:grid; grid-template-columns:3rem 1fr auto; gap:2rem; align-items:start; padding:2.5rem 0; border-bottom:1px solid var(--border-soft); position:relative; overflow:hidden; }
.svc-row::before { content:''; position:absolute; inset:0; background:var(--bg1); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.22,1,.36,1); z-index:0; }
.svc-row:hover::before { transform:scaleX(1); }
.svc-row > * { position:relative; z-index:1; }
.svc-num { font-family:'Cormorant Garamond',serif; font-size:1rem; font-style:italic; color:var(--gold-dim); padding-top:.2rem; }
.svc-name { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:300; margin-bottom:.6rem; transition:color .3s; }
.svc-row:hover .svc-name { color:var(--gold); }
.svc-desc { font-size:.85rem; color:var(--muted); line-height:1.75; max-width:480px; }
.svc-tags { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.75rem; }
.tag { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; border:1px solid var(--border); color:var(--muted); padding:.3rem .7rem; }
.svc-price { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:300; color:var(--gold); white-space:nowrap; }
.svc-price small { font-family:'Syne',sans-serif; font-size:.65rem; letter-spacing:.1em; color:var(--muted); display:block; text-align:right; }

/* PORTFOLIO */
.port-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border-soft); margin-top:4rem; }
.port-item { background:var(--bg); position:relative; overflow:hidden; aspect-ratio:4/3; display:flex; align-items:flex-end; }
.port-item.wide { grid-column:span 2; aspect-ratio:16/7; }
.port-bg { position:absolute; inset:0; transition:transform .6s cubic-bezier(.22,1,.36,1); display:flex; align-items:center; justify-content:center; font-size:6rem; }
.port-item:hover .port-bg { transform:scale(1.05); }
.port-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 60%); }
.port-info { position:relative; padding:1.75rem; z-index:1; }
.port-cat { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.4rem; }
.port-title { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; line-height:1.2; }
.port-arr { position:absolute; top:1.5rem; right:1.5rem; width:40px; height:40px; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--gold); opacity:0; transition:opacity .3s,transform .3s; transform:translateY(8px); }
.port-item:hover .port-arr { opacity:1; transform:none; }

/* TESTIMONIALS */
.t-wrap { background:var(--bg1); border:1px solid var(--border-soft); padding:4rem; margin-top:4rem; position:relative; overflow:hidden; }
.t-wrap::before { content:'❝'; position:absolute; top:1rem; left:2rem; font-family:'Cormorant Garamond',serif; font-size:10rem; color:var(--border); line-height:1; pointer-events:none; }
.t-slide { display:none; }
.t-slide.on { display:block; }
.t-text { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; font-style:italic; line-height:1.5; margin-bottom:2rem; }
.t-auth { display:flex; align-items:center; gap:1rem; }
.t-av { width:44px; height:44px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:600; background:var(--bg2); color:var(--gold); flex-shrink:0; }
.t-name { font-size:.85rem; font-weight:600; margin-bottom:.1rem; }
.t-role { font-size:.75rem; color:var(--muted); }
.t-dots { display:flex; gap:.5rem; margin-top:2rem; }
.t-dot { width:20px; height:2px; background:var(--border); transition:all .3s; }
.t-dot.on { background:var(--gold); width:40px; }

/* PRICING */
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-soft); margin-top:4rem; }
.price-card { background:var(--bg); padding:2.5rem 2rem; display:flex; flex-direction:column; position:relative; }
.price-card.feat { background:var(--bg1); }
.price-card.feat::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.price-tier { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; }
.price-badge { margin-left:.5rem; background:var(--gold); color:#000; font-size:.55rem; padding:.2rem .5rem; letter-spacing:.12em; font-family:'Syne',sans-serif; }
.price-val { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:300; color:var(--white); line-height:1; margin-bottom:.5rem; }
.price-per { font-size:.72rem; color:var(--muted); margin-bottom:1rem; }
.price-desc { font-size:.82rem; color:var(--muted); line-height:1.7; margin-bottom:2rem; flex:1; }
.price-feats { list-style:none; display:flex; flex-direction:column; gap:.75rem; margin-bottom:2rem; }
.price-feats li { font-size:.8rem; color:var(--muted); display:flex; align-items:center; gap:.6rem; }
.price-feats li::before { content:''; width:12px; height:1px; background:var(--gold); flex-shrink:0; }
.price-feats li.em { color:var(--white); }
.btn-outline { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; border:1px solid var(--gold-dim); color:var(--gold); background:transparent; padding:.85rem 1.5rem; transition:all .3s; font-family:'Syne',sans-serif; width:100%; }
.btn-outline:hover { background:var(--gold); color:#000; }

/* PROCESS */
.proc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:4rem; border:1px solid var(--border-soft); }
.proc-step { padding:2.5rem 2rem; border-right:1px solid var(--border-soft); position:relative; transition:background .3s; }
.proc-step:last-child { border-right:none; }
.proc-step:hover { background:var(--bg1); }
.proc-num { font-family:'Cormorant Garamond',serif; font-size:4rem; font-weight:300; color:var(--border); line-height:1; margin-bottom:1rem; }
.proc-title { font-size:.85rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.75rem; }
.proc-desc { font-size:.82rem; color:var(--muted); line-height:1.75; }
.proc-conn { position:absolute; top:3.5rem; right:-12px; width:24px; height:1px; background:var(--gold-dim); z-index:1; }

/* ABOUT */
.about-hero { min-height:60vh; display:flex; align-items:center; padding:10rem 5% 5rem; background:radial-gradient(ellipse 60% 80% at 30% 50%,rgba(201,169,110,.05) 0%,transparent 70%); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; max-width:1200px; margin:0 auto; width:100%; }
.vals-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border-soft); margin-top:3rem; }
.val-item { background:var(--bg); padding:2rem; transition:background .3s; }
.val-item:hover { background:var(--bg1); }
.val-icon { font-size:1.5rem; color:var(--gold); margin-bottom:1rem; }
.val-title { font-size:.85rem; font-weight:600; letter-spacing:.08em; margin-bottom:.5rem; text-transform:uppercase; }
.val-desc { font-size:.82rem; color:var(--muted); line-height:1.7; }
.stat-row { display:flex; justify-content:space-between; padding:1rem 0; border-bottom:1px solid var(--border-soft); align-items:flex-end; }
.stat-row:last-child { border-bottom:none; }

/* WORK */
.filter-tabs { display:flex; gap:0; margin-top:3rem; border-bottom:1px solid var(--border-soft); }
.ftab { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:.85rem 1.5rem; background:transparent; border:none; border-bottom:2px solid transparent; font-family:'Syne',sans-serif; transition:all .25s; margin-bottom:-1px; }
.ftab.on,.ftab:hover { color:var(--gold); border-bottom-color:var(--gold); }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-soft); margin-top:3rem; }
.work-item { background:var(--bg); position:relative; overflow:hidden; aspect-ratio:1; display:flex; align-items:flex-end; }
.work-pat { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:4rem; opacity:.06; transition:opacity .4s,transform .4s; }
.work-item:hover .work-pat { opacity:.12; transform:scale(1.1); }
.work-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.9) 0%,transparent 50%); }
.work-info { position:relative; padding:1.5rem; z-index:1; }
.work-cat { font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem; }
.work-title { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; }

/* CONTACT */
.con-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:5rem; align-items:start; margin-top:4rem; }
.con-item { display:flex; gap:1.25rem; padding:1.5rem 0; border-bottom:1px solid var(--border-soft); }
.con-icon { width:40px; height:40px; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1rem; flex-shrink:0; }
.con-lbl { font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem; }
.con-val { font-size:.9rem; color:var(--white); }
.fg { margin-bottom:1.5rem; }
.fl { font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:.6rem; }
.fi { width:100%; background:var(--bg1); border:1px solid var(--border-soft); border-bottom:1px solid var(--border); color:var(--white); font-family:'Syne',sans-serif; font-size:.9rem; padding:.85rem 1rem; outline:none; transition:border-color .25s; }
.fi:focus { border-color:var(--gold-dim); }
.fi::placeholder { color:var(--muted); }
textarea.fi { resize:vertical; min-height:120px; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
#success-box { background:var(--bg1); border:1px solid var(--border); padding:3rem; text-align:center; display:none; }
#success-box.on { display:block; }
#cform.off { display:none; }

/* FOOTER */
.footer { border-top:1px solid var(--border-soft); background:var(--bg1); padding:4rem 5% 2rem; }
.foot-top { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; margin-bottom:4rem; max-width:1200px; margin-left:auto; margin-right:auto; }
.foot-logo { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:300; letter-spacing:.1em; margin-bottom:1rem; }
.foot-logo span { color:var(--gold); }
.foot-tag { font-size:.82rem; color:var(--muted); line-height:1.75; max-width:260px; }
.foot-col-title { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; }
.foot-links { list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.foot-links a { font-size:.82rem; color:var(--muted); text-decoration:none; transition:color .25s; }
.foot-links a:hover { color:var(--white); }
.foot-btm { max-width:1200px; margin:2rem auto 0; display:flex; justify-content:space-between; align-items:center; padding-top:2rem; border-top:1px solid var(--border-soft); flex-wrap:wrap; gap:1rem; }
.foot-copy { font-size:.72rem; color:var(--muted); }
.foot-legal { display:flex; gap:1.5rem; }
.foot-legal a { color:var(--muted); text-decoration:none; font-size:.72rem; transition:color .25s; }
.foot-legal a:hover { color:var(--white); }

@media(max-width:900px) {
  .hero-wrap,.about-grid,.con-grid,.two-col { grid-template-columns:1fr; }
  .port-grid,.work-grid { grid-template-columns:1fr; }
  .price-grid { grid-template-columns:1fr; }
  .proc-grid { grid-template-columns:1fr 1fr; }
  .foot-top { grid-template-columns:1fr 1fr; }
  .port-item.wide { grid-column:span 1; }
  .nav-links { display:none; }
  .vals-grid { grid-template-columns:1fr; }
  .frow { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .proc-grid { grid-template-columns:1fr; }
  .foot-top { grid-template-columns:1fr; }
}
