:root {
  --black: #090909;
  --black-soft: #11100e;
  --ink: #151515;
  --muted: #77736b;
  --line: rgba(15, 15, 15, 0.1);
  --gold: #c99247;
  --gold-light: #e0b271;
  --cream: #f5f0e8;
  --white: #ffffff;
  --max: 1180px;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: 'DM Sans', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { border: 0; }

.page-noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 100;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.container { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.section-dark { background: var(--black); color: var(--white); }
.section-light { background: var(--cream); }

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  min-height: 76px; padding: 0 32px;
  background: rgba(9,9,9,.72); backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: var(--white);
}
.brand { display:flex; align-items:center; gap:11px; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--gold); color:var(--gold-light); border-radius:50%; font-family:'Playfair Display',serif; font-weight:700; }
.brand strong, .brand small { display:block; }
.brand strong { font-family:'Playfair Display',serif; font-size:14px; letter-spacing:.3px; }
.brand small { margin-top:2px; font-size:9px; color:#aaa49a; letter-spacing:1.5px; text-transform:uppercase; }
.main-nav { display:flex; gap:28px; }
.main-nav a { position:relative; padding:8px 0; font-size:12px; color:#bebbb5; transition:.25s ease; }
.main-nav a::after { content:''; position:absolute; left:0; right:100%; bottom:2px; height:1px; background:var(--gold); transition:.25s ease; }
.main-nav a:hover, .main-nav a.active { color:var(--white); }
.main-nav a.active::after { right:0; }
.menu-toggle { display:none; background:transparent; color:#fff; }

.hero { position:relative; min-height:790px; display:flex; align-items:center; overflow:hidden; }
.hero-grid { position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:80px 80px; mask-image:linear-gradient(to bottom, rgba(0,0,0,.4), transparent 80%); }
.hero::before { content:''; position:absolute; width:760px; height:420px; right:-130px; top:70px; background:radial-gradient(circle at center, rgba(201,146,71,.18), rgba(201,146,71,0) 64%); filter:blur(5px); }
.hero-orb { position:absolute; border:1px solid rgba(201,146,71,.25); border-radius:50%; }
.hero-orb-one { width:650px; height:650px; right:-270px; top:90px; }
.hero-orb-two { width:450px; height:450px; right:-168px; top:190px; }
.hero-content { position:relative; z-index:2; padding-top:86px; max-width:780px; }
.eyebrow { margin:0 0 18px; color:#aaa49a; font-size:11px; font-weight:700; letter-spacing:3px; }
.eyebrow.gold { color:var(--gold); }
h1, h2 { font-family:'Playfair Display', serif; font-weight:600; letter-spacing:-1.5px; }
h1 { margin:0; max-width:800px; font-size:clamp(52px, 8vw, 94px); line-height:.95; }
h1 span { color:var(--gold-light); }
.hero-lead { max-width:640px; margin:28px 0 0; color:#c4c0b8; font-size:18px; line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 26px; border-radius:2px; cursor:pointer; transition:transform .25s ease, box-shadow .25s ease, background .25s ease; font-weight:700; font-size:13px; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:#120d07; background:var(--gold-light); box-shadow:0 14px 40px rgba(201,146,71,.2); }
.button-dark { color:#fff; background:var(--black); width:100%; }
.text-link { font-size:13px; color:#fff; }
.text-link span { color:var(--gold); padding-left:7px; }
.hero-proof { margin-top:84px; display:flex; gap:26px; align-items:center; color:#d9d5cd; }
.hero-proof div { display:flex; flex-direction:column; gap:3px; }
.hero-proof strong { font-family:'Playfair Display',serif; font-size:22px; color:#fff; }
.hero-proof span { font-size:11px; color:#918d85; text-transform:uppercase; letter-spacing:1px; }
.hero-proof i { width:1px; height:36px; background:rgba(255,255,255,.16); }
.scroll-cue { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); width:30px; height:50px; display:grid; place-items:center; }
.scroll-cue span { width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:scrollPulse 2s infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.3;transform:scaleY(.7)} 50%{opacity:1;transform:scaleY(1)} }

.services { padding:120px 0 130px; }
.section-heading { max-width:760px; }
.section-heading.centered { margin-inline:auto; text-align:center; }
.section-heading h2 { margin:0; font-size:clamp(38px,5vw,62px); line-height:1.02; }
.section-heading p:last-child { margin:20px auto 0; color:var(--muted); line-height:1.8; max-width:630px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:58px; }
.service-card { min-height:250px; padding:28px; border:1px solid rgba(15,15,15,.08); background:rgba(255,255,255,.3); transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.service-card:hover { transform:translateY(-6px); border-color:rgba(201,146,71,.55); box-shadow:0 16px 40px rgba(0,0,0,.06); }
.service-number { color:var(--gold); font-size:11px; font-weight:700; letter-spacing:2px; }
.service-card h3 { margin:30px 0 14px; font-family:'Playfair Display',serif; font-size:23px; line-height:1.12; }
.service-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.75; }

.about { padding:120px 0; }
.about-layout { display:grid; grid-template-columns: .92fr 1.08fr; align-items:center; gap:90px; }
.about-visual { position:relative; }
.portrait-placeholder {border-radius:50%; position:relative; height: 30vw; border:1px solid rgba(255,255,255,.08); overflow:hidden; background:linear-gradient(140deg,#171411,#090909 58%,#1e1710); display:flex; align-items:flex-end; justify-content:center; }
.portrait-placeholder::after { content:''; position:absolute; inset:10% 20% 0; border:1px solid rgba(201,146,71,.12); border-bottom:0; border-radius:50% 50% 0 0; }
.portrait-sun { position:absolute; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle,#e0b271 0%,#9d6330 50%,transparent 72%); filter:blur(13px); opacity:.48; top:60px; right:60px; }
.portrait-line { position:absolute; width:360px; height:360px; border:1px solid rgba(224,178,113,.2); border-radius:50%; top:80px; left:50%; transform:translateX(-50%); }
.portrait-placeholder span { position:relative; z-index:2; margin-bottom:60px; text-align:center; font-family:'Playfair Display',serif; color:#7f7569; letter-spacing:4px; font-size:13px; }
.experience-badge { position:absolute; right:-28px; bottom:46px; width:150px; height:150px; display:flex; flex-direction:column; justify-content:center; align-items:center; background:var(--gold); color:#1a1209; border-radius:50%; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.experience-badge strong { font-family:'Playfair Display',serif; font-size:42px; }
.experience-badge span { text-align:center; font-size:11px; line-height:1.25; text-transform:uppercase; letter-spacing:1px; }
.about-copy h2 { margin:0; max-width:760px; font-size:clamp(40px,5vw,67px); line-height:1.03; }
.about-copy h2 em { color:var(--gold-light); font-style:normal; }
.about-copy > p:not(.eyebrow) { max-width:670px; color:#b4b0aa; line-height:1.9; }
.about-copy > p:nth-of-type(1) { margin-top:30px; }
.signature { margin-top:34px; font-family:'Playfair Display',serif; font-size:20px; color:#fff; }
.signature small { display:block; margin-top:5px; font-family:'DM Sans',sans-serif; font-size:9px; color:#7f7a72; letter-spacing:2px; text-transform:uppercase; }

.clients { padding:120px 0; }
.clients-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:52px; }
.client-logo { min-height:180px; display:flex; flex-direction:column; justify-content:center; align-items:center; border:1px solid rgba(15,15,15,.08); background:#f8f3eb; transition:.3s ease; }
.client-logo:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(201,146,71,.5); }
.client-logo span { font-family:'Playfair Display',serif; font-size:26px; letter-spacing:2px; }
.client-logo small { margin-top:7px; color:#9a958c; text-transform:uppercase; letter-spacing:2px; font-size:9px; }

.contact { padding:120px 0 100px; }
.contact-layout { display:grid; grid-template-columns:.88fr 1.12fr; gap:90px; align-items:start; }
.contact-copy h2 { font-size:clamp(42px,5vw,68px); line-height:1.02; margin:0; }
.contact-copy > p:not(.eyebrow) { max-width:520px; color:var(--muted); line-height:1.8; margin-top:24px; }
.contact-highlight { display:flex; gap:15px; align-items:center; margin-top:40px; }
.contact-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--black); color:var(--gold-light); }
.contact-highlight strong, .contact-highlight small { display:block; }
.contact-highlight strong { font-size:14px; }
.contact-highlight small { margin-top:4px; color:var(--muted); }
.contact-form { padding:32px; background:#fbf7f0; border:1px solid rgba(15,15,15,.08); box-shadow:var(--shadow); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.contact-form label { display:block; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#615d56; margin-bottom:17px; }
.contact-form input:not([type="checkbox"]), .contact-form select, .contact-form textarea { width:100%; margin-top:9px; padding:14px 15px; border:1px solid rgba(15,15,15,.12); border-radius:0; background:#fffdfa; color:var(--ink); outline:none; transition:.2s ease; }
.contact-form textarea { resize:vertical; min-height:140px; }
.contact-form input:not([type="checkbox"]):focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,146,71,.1); }
.check-row { display:flex !important; gap:10px; align-items:flex-start; text-transform:none !important; letter-spacing:0 !important; font-weight:400 !important; font-size:12px !important; color:#7d786f !important; line-height:1.5; }
.check-row input { margin-top:3px; accent-color:var(--gold); }
.form-note { margin:12px 0 0; font-size:11px; color:#99948b; line-height:1.5; }
.form-status { min-height:20px; margin:12px 0 0; font-size:12px; font-weight:700; }
.form-status.success { color:#397449; }
.form-status.error { color:#9b3f34; }
.honeypot { position:absolute !important; left:-10000px !important; opacity:0 !important; }
.button-loading[hidden] { display:none; }

.site-footer { padding:28px 0; background:#090909; color:#c0bbb2; }
.footer-inner { display:flex; gap:24px; align-items:center; justify-content:space-between; }
.footer-inner strong, .footer-inner span { display:block; }
.footer-inner strong { color:#fff; font-family:'Playfair Display',serif; }
.footer-inner span { margin-top:3px; font-size:10px; color:#7e796f; text-transform:uppercase; letter-spacing:1.5px; }
.footer-inner p, .footer-inner a { font-size:11px; color:#77726a; }
.footer-inner a:hover { color:var(--gold-light); }

.reveal { opacity:0; transform:translateY(25px); transition:opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 960px) {
  .main-nav { gap:18px; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .about-layout, .contact-layout { grid-template-columns:1fr; gap:56px; }
  .about-visual { max-width:650px; width:100%; }
  .portrait-placeholder { min-height:520px; }
  .clients-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 740px) {
  .container { width:min(calc(100% - 34px), var(--max)); }
  .site-header { padding:0 17px; }
  .menu-toggle { display:flex; width:40px; height:40px; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
  .menu-toggle span { width:20px; height:1px; background:#fff; transition:.25s; }
  .main-nav { position:absolute; top:76px; left:0; right:0; display:none; flex-direction:column; gap:0; padding:10px 17px 20px; background:rgba(9,9,9,.97); border-top:1px solid rgba(255,255,255,.08); }
  .main-nav.open { display:flex; }
  .main-nav a { padding:13px 0; border-bottom:1px solid rgba(255,255,255,.06); }
  .hero { min-height:720px; }
  .hero-content { padding-top:70px; }
  h1 { font-size:clamp(48px,14vw,74px); }
  .hero-lead { font-size:16px; }
  .hero-proof { margin-top:58px; gap:17px; }
  .hero-proof span { font-size:9px; }
  .services, .about, .clients, .contact { padding:86px 0; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:auto; }
  .portrait-placeholder { min-height:450px; }
  .experience-badge { right:10px; bottom:24px; width:125px; height:125px; }
  .experience-badge strong { font-size:36px; }
  .clients-grid { grid-template-columns:1fr; }
  .contact-form { padding:22px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .footer-inner { flex-direction:column; align-items:flex-start; gap:10px; }
}
