:root {
  --ink: #08080d;
  --charcoal: #1a1a1a;
  --sand: #e8e5c5;
  --olive: #6b4f13;
  --ivory: #f7f6ed;
  --gold: #b7a67a;
  --line-dark: rgba(8, 8, 13, .16);
  --line-light: rgba(247, 246, 237, .18);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
}
body.is-loading, body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font: inherit; }
[id] { scroll-margin-top: 88px; }
a:focus-visible, button:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
::selection { color: var(--ivory); background: var(--olive); }
.svg-filters { position:absolute; overflow:hidden; pointer-events:none; }

.skip-link {
  position: fixed; z-index: 10000; left: 1rem; top: 1rem; padding: .8rem 1rem;
  background: var(--ivory); transform: translateY(-180%); transition: transform .2s;
}
.skip-link:focus { transform: translateY(0); }

.noise {
  pointer-events: none; position: fixed; z-index: 999; inset: 0; opacity: .026;
  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='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.scroll-progress { position:fixed; z-index:1500; inset:0 0 auto; height:2px; pointer-events:none; background:rgba(183,166,122,.08); }
.scroll-progress span { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--olive),var(--gold),var(--sand)); box-shadow:0 0 14px rgba(183,166,122,.7); transform:scaleX(var(--scroll-progress,0)); transform-origin:left; will-change:transform; }

.loader {
  position: fixed; z-index: 9000; inset: 0; display: grid; place-content: center; gap: 2rem;
  color: var(--sand); background:radial-gradient(circle at 50% 45%,#181712 0,#0c0c10 28%,var(--ink) 64%); transition:transform 1.05s cubic-bezier(.76,0,.24,1) .22s;
  overflow:hidden; isolation:isolate;
}
.loader::before { content:""; position:absolute; inset:-40%; z-index:-1; background:conic-gradient(from 25deg,transparent 0 35%,rgba(183,166,122,.08) 41%,transparent 47% 71%,rgba(232,229,197,.05) 77%,transparent 84%); animation:loaderAtmosphere 7s linear infinite; }
.loader::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,var(--gold),var(--sand),var(--gold),transparent); transform:scaleX(0); animation:loaderSweep 1.9s ease forwards; box-shadow:0 0 20px rgba(183,166,122,.55); }
.loader.is-done { transform: translateY(-102%); }
.loader__stage { position:relative; width:clamp(180px,22vw,280px); aspect-ratio:1; display:grid; place-items:center; justify-self:center; }
.loader__logo { position:relative; z-index:5; width:78%; height:auto; filter:drop-shadow(0 0 18px rgba(247,246,237,.2)) drop-shadow(0 0 46px rgba(183,166,122,.22)); opacity:0; transform:scale(.1) rotate(-9deg); animation:loaderLogoImpact 1.45s cubic-bezier(.16,1,.3,1) .14s forwards; }
.loader__aura { position:absolute; inset:17%; border-radius:50%; background:radial-gradient(circle,rgba(247,246,237,.9) 0,rgba(183,166,122,.34) 16%,rgba(107,79,19,.15) 42%,transparent 72%); filter:blur(9px); opacity:0; animation:loaderAura 1.5s ease-out .08s forwards; }
.loader__flare { position:absolute; z-index:4; width:190%; height:1px; background:linear-gradient(90deg,transparent,rgba(183,166,122,.45),#fff,rgba(183,166,122,.45),transparent); transform:scaleX(0) rotate(-8deg); box-shadow:0 0 12px #fff,0 0 38px rgba(183,166,122,.9); animation:loaderFlare 1.05s cubic-bezier(.16,1,.3,1) .27s forwards; }
.loader__shockwave { position:absolute; inset:22%; border:1px solid rgba(232,229,197,.8); border-radius:50%; opacity:0; box-shadow:inset 0 0 18px rgba(183,166,122,.3),0 0 26px rgba(183,166,122,.24); }
.loader__shockwave--one { animation:loaderShockwave 1.15s cubic-bezier(.1,.72,.25,1) .28s forwards; }
.loader__shockwave--two { animation:loaderShockwave 1.28s cubic-bezier(.1,.72,.25,1) .46s forwards; }
.loader__particles { position:absolute; inset:50%; z-index:3; }
.loader__particles i { position:absolute; left:0; top:0; width:3px; height:3px; border-radius:50%; background:#fff8d6; opacity:0; box-shadow:0 0 7px 2px rgba(255,225,150,.9),0 0 18px 5px rgba(183,166,122,.38); transform:rotate(var(--angle)) translateX(0) scale(.2); animation:loaderParticle 1.08s cubic-bezier(.12,.55,.2,1) calc(.28s + var(--delay)) forwards; }
.loader__line { width: 190px; height: 1px; background: rgba(255,255,255,.12); overflow:hidden; }
.loader__line span { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--olive),var(--sand),#fff); transform:translateX(-100%); animation:loadLine 1.7s cubic-bezier(.7,0,.2,1) forwards; box-shadow:0 0 12px rgba(232,229,197,.65); }
.loader p { margin:0; text-align:center; font-size:.55rem; letter-spacing:.45em; opacity:0; animation:loaderCaption .7s ease .72s forwards; }
@keyframes loadLine { to { transform: translateX(0); } }
@keyframes loaderSweep { to { transform:scaleX(1); } }
@keyframes loaderAtmosphere { to { transform:rotate(1turn); } }
@keyframes loaderLogoImpact { 0% { opacity:0; transform:scale(.1) rotate(-9deg); filter:blur(14px) brightness(4); } 42% { opacity:1; transform:scale(1.16) rotate(1deg); filter:blur(0) brightness(2.2) drop-shadow(0 0 38px rgba(247,246,237,.9)); } 68% { transform:scale(.94) rotate(0); filter:brightness(1.15) drop-shadow(0 0 26px rgba(183,166,122,.5)); } 100% { opacity:1; transform:scale(1); filter:brightness(1) drop-shadow(0 0 18px rgba(247,246,237,.18)) drop-shadow(0 0 46px rgba(183,166,122,.2)); } }
@keyframes loaderAura { 0% { opacity:0; transform:scale(.08); } 24% { opacity:1; } 100% { opacity:.28; transform:scale(2.8); } }
@keyframes loaderShockwave { 0% { opacity:0; transform:scale(.18); } 18% { opacity:.9; } 100% { opacity:0; transform:scale(3.25); border-width:.5px; } }
@keyframes loaderFlare { 0% { opacity:0; transform:scaleX(0) rotate(-8deg); } 24% { opacity:1; } 100% { opacity:0; transform:scaleX(1) rotate(-8deg); } }
@keyframes loaderParticle { 0% { opacity:0; transform:rotate(var(--angle)) translateX(0) scale(.2); } 14% { opacity:1; } 100% { opacity:0; transform:rotate(var(--angle)) translateX(var(--distance)) scale(.05); } }
@keyframes loaderCaption { to { opacity:.72; } }

.cursor { position:fixed; z-index:10000; width:36px; height:36px; border:1px solid rgba(232,229,197,.68); border-radius:50%; pointer-events:none; mix-blend-mode:difference; transform:translate(-50%,-50%); transition:width .2s,height .2s,background .2s; display:none; }
.cursor span { position:absolute; width:4px; height:4px; left:50%; top:50%; border-radius:50%; background:var(--sand); transform:translate(-50%,-50%); }
.cursor.is-hover { width:64px; height:64px; background:rgba(255,255,255,.12); }

.site-header {
  position: fixed; z-index: 1200; inset: 0 0 auto; height: 92px; padding: 0 clamp(1.2rem,4vw,5rem);
  display: flex; align-items: center; justify-content: space-between; color: var(--ivory);
  transition: height .35s, background .35s, color .35s, border-color .35s;
  border-bottom: 1px solid transparent;
}
.site-header.is-scrolled { height:72px; color:var(--ink); background:rgba(247,246,237,.91); border-color:var(--line-dark); backdrop-filter:blur(16px); }
.site-brand { display:flex; align-items:center; gap:.75rem; letter-spacing:.18em; font-size:.7rem; font-weight:500; }
.site-brand img { width:42px; height:31px; object-fit:cover; object-position:center; filter:url(#logo-white); }
.site-header.is-scrolled .site-brand img { filter:url(#logo-dark); }
.site-brand small { display:block; font-size:.46rem; letter-spacing:.45em; margin-top:.18rem; }
.site-nav { display:flex; align-items:center; gap:clamp(1.2rem,3vw,3.5rem); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; }
.site-nav a { position:relative; padding:.8rem 0; }
.site-nav a::after { content:""; position:absolute; left:0; bottom:.45rem; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s; }
.site-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.menu-toggle { display:none; border:0; background:transparent; color:inherit; padding:.7rem; cursor:pointer; }
.menu-toggle span { display:block; width:25px; height:1px; background:currentColor; margin:5px; transition:.3s; }
.menu-toggle b { position:absolute; width:1px; height:1px; overflow:hidden; }

.section-light { background:var(--ivory); }
.section-dark { color:var(--ivory); background:var(--ink); }
.section-kicker { display:flex; align-items:center; gap:1rem; text-transform:uppercase; font-size:.6rem; letter-spacing:.3em; }
.section-kicker::after { content:""; width:75px; height:1px; background:var(--line-dark); transform:scaleX(.08); transform-origin:left; transition:transform 1.15s cubic-bezier(.16,1,.3,1) .28s; }
.section-kicker.is-visible::after { transform:scaleX(1); }
.section-kicker span { font-family:var(--serif); font-size:.8rem; letter-spacing:0; }
.section-kicker--light::after { background:var(--line-light); }
.display { margin:0; font:500 clamp(3.7rem,8vw,9rem)/.88 var(--serif); letter-spacing:-.055em; }
.display em { font-weight:500; color:var(--olive); }

.hero {
  position:relative; min-height:100svh; padding:clamp(7.5rem,13vh,10rem) clamp(1.2rem,4vw,5rem) 2.5rem;
  color:var(--ivory); background:
    radial-gradient(circle at 50% 45%, rgba(99,77,14,.25), transparent 25%),
    linear-gradient(145deg,#07070b 0%,#111116 58%,#07070a 100%);
  display:flex; flex-direction:column; justify-content:space-between; overflow:hidden;
}
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, transparent 49.9%, rgba(232,229,197,.07) 50%, transparent 50.1%); }
.hero::after { content:""; position:absolute; inset:-45%; pointer-events:none; opacity:.11; background:conic-gradient(from 130deg at 50% 50%,transparent 0 24%,rgba(183,166,122,.22) 32%,transparent 40% 68%,rgba(107,79,19,.2) 76%,transparent 84%); animation:heroAmbient 26s linear infinite; }
.hero__glow { position:absolute; width:38vw; aspect-ratio:1; border-radius:50%; filter:blur(95px); opacity:.12; background:var(--gold); }
.hero__glow--one { left:-12vw; top:15%; }
.hero__glow--two { right:-15vw; bottom:-20%; background:#43350f; }
.hero__eyebrow { position:relative; display:flex; gap:1.1rem; justify-content:center; align-items:center; margin:0; font-size:.55rem; letter-spacing:.28em; text-transform:uppercase; }
.hero__eyebrow i { width:4px; height:4px; transform:rotate(45deg); background:var(--gold); }
.hero__title { position:relative; height:min(55vw,470px); display:grid; place-items:center; margin:1rem 0; }
.hero__word { position:absolute; color:transparent; font:500 clamp(5rem,15.4vw,15.5rem)/.75 var(--serif); letter-spacing:-.075em; white-space:nowrap; background:linear-gradient(105deg,var(--ivory) 0 38%,var(--gold) 48%,var(--ivory) 58% 100%); background-size:240% 100%; background-position:100% 0; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero__word--top { top:5%; left:0; animation:heroTop 1.4s cubic-bezier(.16,1,.3,1) .8s both,heroTypeShimmer 10s ease-in-out 2.5s infinite; }
.hero__word--bottom { bottom:3%; right:0; animation:heroBottom 1.4s cubic-bezier(.16,1,.3,1) 1s both,heroTypeShimmer 10s ease-in-out 4s infinite; }
.hero__word--bottom span { color:var(--gold); -webkit-text-fill-color:var(--gold); }
.hero__monogram { position:relative; z-index:2; width:clamp(165px,20vw,290px); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle at 42% 38%,#171712 0%,#08080d 65%,#050509 100%); box-shadow:0 22px 70px rgba(0,0,0,.45),inset 0 0 0 1px rgba(183,166,122,.12); animation:monogramPulse 5s ease-in-out infinite; }
.hero__orbit { position:absolute; z-index:0; border:1px solid rgba(183,166,122,.2); border-top-color:rgba(183,166,122,.72); border-right-color:rgba(183,166,122,.08); border-radius:50%; pointer-events:none; will-change:transform; }
.hero__orbit::after { content:""; position:absolute; left:50%; top:-3px; width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 10px rgba(183,166,122,.85),0 0 22px rgba(183,166,122,.42); transform:translateX(-50%); }
.hero__orbit--outer { inset:-35%; animation:orbitSpin 20s linear infinite; }
.hero__orbit--middle { inset:-21%; border-color:rgba(247,246,237,.1); border-bottom-color:rgba(183,166,122,.62); animation:orbitSpinReverse 14s linear infinite; }
.hero__orbit--middle::after { top:auto; bottom:-2.5px; width:5px; height:5px; }
.hero__orbit--inner { inset:-8%; border-color:rgba(247,246,237,.09); border-left-color:rgba(183,166,122,.55); animation:orbitSpin 9s linear infinite; }
.hero__orbit--inner::after { left:-2.5px; top:50%; width:4px; height:4px; transform:translateY(-50%); }
.hero__monogram-clip { position:absolute; inset:0; z-index:2; display:grid; place-items:center; pointer-events:none; }
.hero__monogram img { width:128%; max-width:none; filter:drop-shadow(0 10px 24px rgba(0,0,0,.4)); animation:markIn 1.4s cubic-bezier(.16,1,.3,1) 1.3s both; }
.hero__footer { position:relative; display:grid; grid-template-columns:1fr auto 1fr; align-items:end; font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; }
.hero__footer p { margin:0; }
.hero__location { text-align:right; }
.round-link { width:62px; height:62px; display:grid; place-items:center; border:1px solid rgba(247,246,237,.35); border-radius:50%; transition:.35s; }
.round-link svg { width:20px; fill:none; stroke:currentColor; stroke-width:1.3; }
@keyframes heroTop { from { opacity:0; transform:translate3d(-8%,55%,0); } }
@keyframes heroBottom { from { opacity:0; transform:translate3d(8%,-55%,0); } }
@keyframes markIn { from { opacity:0; transform:scale(.6) rotate(-15deg); } }
@keyframes orbitSpin { to { transform:rotate(360deg); } }
@keyframes orbitSpinReverse { to { transform:rotate(-360deg); } }
@keyframes monogramPulse { 0%,100% { box-shadow:0 22px 70px rgba(0,0,0,.45),inset 0 0 0 1px rgba(183,166,122,.12); } 50% { box-shadow:0 26px 85px rgba(0,0,0,.58),0 0 38px rgba(107,79,19,.14),inset 0 0 0 1px rgba(183,166,122,.22); } }
@keyframes heroAmbient { to { transform:rotate(360deg) scale(1.04); } }
@keyframes heroTypeShimmer { 0%,28% { background-position:100% 0; } 52%,100% { background-position:-100% 0; } }

.manifesto { position:relative; padding:clamp(6rem,12vw,12rem) clamp(1.2rem,7vw,8rem) 4rem; overflow:hidden; }
.manifesto__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; align-items:end; margin-top:clamp(4rem,8vw,8rem); }
.manifesto__copy { max-width:500px; border-left:1px solid var(--line-dark); padding-left:clamp(1.5rem,4vw,4rem); }
.manifesto__copy .lead { font:500 clamp(1.6rem,2.5vw,2.5rem)/1.18 var(--serif); margin:0 0 2rem; }
.manifesto__copy > p:not(.lead) { color:#4d4b46; max-width:42ch; }
.text-link { display:inline-flex; gap:2rem; align-items:center; margin-top:2rem; padding-bottom:.6rem; border-bottom:1px solid var(--ink); text-transform:uppercase; font-size:.62rem; letter-spacing:.2em; }
.link-arrow { width:26px; height:26px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; transition:transform .3s,background .3s,color .3s; }
.link-arrow svg { width:14px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.manifesto__marquee { margin:clamp(6rem,12vw,11rem) calc(clamp(1.2rem,7vw,8rem) * -1) 0; overflow:hidden; border-block:1px solid var(--line-dark); }
.manifesto__marquee div { width:max-content; padding:1.3rem 0; display:flex; align-items:center; gap:2rem; animation:marquee 26s linear infinite; }
.manifesto__marquee span { font:500 clamp(2rem,4vw,4rem)/1 var(--serif); letter-spacing:-.04em; }
.manifesto__marquee i { color:var(--olive); font-style:normal; }
@keyframes marquee { to { transform:translateX(-50%); } }

.services { padding:clamp(6rem,11vw,11rem) clamp(1.2rem,7vw,8rem); }
.services__heading { display:grid; grid-template-columns:1.35fr .65fr; gap:7vw; align-items:end; margin:clamp(4rem,8vw,7rem) 0 clamp(5rem,9vw,9rem); }
.services__heading .display { font-size:clamp(3.4rem,7vw,7.8rem); }
.services__heading .display em { color:var(--gold); }
.services__heading > p { color:#a7a59e; max-width:38ch; }
.service-list { border-top:1px solid var(--line-light); }
.service { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:70px 1.25fr .75fr 40px; gap:2rem; align-items:center; min-height:132px; border-bottom:1px solid var(--line-light); transition:padding .4s,background .4s,color .4s; }
.service::before { content:""; position:absolute; z-index:-1; inset:-1px; opacity:0; background:radial-gradient(260px circle at var(--spot-x,80%) 50%,rgba(183,166,122,.18),transparent 72%); transition:opacity .45s; pointer-events:none; }
.service::after { content:""; position:absolute; z-index:2; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.16) 48%,transparent 70%); transform:translateX(-125%); transition:transform .8s cubic-bezier(.16,1,.3,1); }
.service > * { position:relative; z-index:1; }
.service > span { color:var(--gold); font:500 .8rem var(--serif); }
.service h3 { margin:0; font:500 clamp(1.8rem,3vw,3.1rem)/1 var(--serif); letter-spacing:-.03em; }
.service p { margin:0; color:#9c9a93; font-size:.75rem; }
.service .service__arrow { justify-self:end; width:38px; height:38px; display:grid; place-items:center; color:var(--gold); border:1px solid rgba(183,166,122,.48); border-radius:50%; transition:transform .35s,background .35s,color .35s,border-color .35s; }
.service__arrow svg { width:17px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

.identity { padding:clamp(6rem,11vw,11rem) clamp(1.2rem,7vw,8rem); }
.identity__intro { display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; align-items:end; margin:clamp(4rem,8vw,7rem) 0; }
.identity__intro p { max-width:42ch; color:#4d4b46; }
.brand-board { --tilt-x:0deg; --tilt-y:0deg; position:relative; margin:0; overflow:hidden; background:var(--charcoal); box-shadow:0 30px 80px rgba(8,8,13,.18); transform-style:preserve-3d; will-change:transform; }
.brand-board.is-visible { transform:perspective(1400px) rotateX(var(--tilt-y)) rotateY(var(--tilt-x)) translateZ(0); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .24s ease-out,box-shadow .5s; }
.brand-board img { width:100%; aspect-ratio:1.47; object-fit:cover; transition:transform 1.2s cubic-bezier(.16,1,.3,1); }
.brand-board:hover img { transform:scale(1.025); }
.brand-board__shine { position:absolute; z-index:2; inset:0; background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 48%,transparent 65%); transform:translateX(-120%); transition:transform 1.2s; pointer-events:none; }
.brand-board:hover .brand-board__shine { transform:translateX(120%); }
.brand-board figcaption { display:flex; justify-content:space-between; color:var(--ivory); background:var(--ink); padding:1rem 1.25rem; font-size:.54rem; letter-spacing:.2em; }
.palette { display:grid; grid-template-columns:repeat(5,1fr); margin-top:clamp(3rem,6vw,6rem); border:1px solid var(--line-dark); }
.palette div { position:relative; min-height:175px; padding:1.2rem; display:flex; flex-direction:column; justify-content:flex-end; border-right:1px solid var(--line-dark); overflow:hidden; }
.palette div:last-child { border-right:0; }
.palette div::before { content:""; position:absolute; inset:0; background:var(--swatch); transform:translateY(-72%); transition:transform .55s cubic-bezier(.16,1,.3,1); }
.palette div:hover::before { transform:translateY(0); }
.palette span,.palette b { position:relative; z-index:1; color:var(--ink); transition:color .35s; }
.palette div:hover span,.palette div:hover b { color:var(--swatch-text); }
.palette span { font:500 1.1rem var(--serif); }
.palette b { margin-top:.35rem; font-size:.52rem; letter-spacing:.16em; font-weight:400; }

.quote { position:relative; min-height:82vh; padding:7rem 1.2rem; display:grid; place-content:center; text-align:center; overflow:hidden; }
.quote::before,.quote::after { content:""; position:absolute; left:50%; top:50%; aspect-ratio:1; border-radius:50%; pointer-events:none; }
.quote::before { width:min(48vw,660px); border:1px dashed rgba(183,166,122,.13); animation:quoteOrbit 34s linear infinite; }
.quote::after { width:min(33vw,440px); border:1px solid rgba(247,246,237,.06); border-top-color:rgba(183,166,122,.34); animation:quoteOrbitReverse 22s linear infinite; }
.quote > * { position:relative; z-index:1; }
.quote__mark { width:100px; margin:0 auto 4rem; }
.quote__mark img { filter:url(#logo-gold); }
.quote blockquote { margin:0; font:500 clamp(3.2rem,7.5vw,8rem)/1 var(--serif); letter-spacing:-.05em; }
.quote blockquote em { color:var(--gold); }
.quote > p { margin:3rem 0 0; text-transform:uppercase; font-size:.55rem; letter-spacing:.4em; color:#9c9a93; }
@keyframes quoteOrbit { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes quoteOrbitReverse { to { transform:translate(-50%,-50%) rotate(-360deg); } }

.contact { padding:clamp(6rem,11vw,11rem) clamp(1.2rem,7vw,8rem); }
.contact__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:9vw; align-items:end; margin-top:clamp(4rem,8vw,7rem); }
.contact__overline { text-transform:uppercase; font-size:.58rem; letter-spacing:.32em; color:var(--olive); }
.contact__actions { border-left:1px solid var(--line-dark); padding-left:clamp(1.5rem,4vw,4rem); }
.contact__actions > p { max-width:38ch; color:#4d4b46; margin:0 0 2.5rem; }
.contact-button { position:relative; isolation:isolate; overflow:hidden; display:flex; justify-content:space-between; align-items:center; padding:1.35rem 1.5rem; color:var(--ivory); background:var(--ink); text-transform:uppercase; font-size:.62rem; letter-spacing:.18em; transition:.35s; }
.contact-button::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(110deg,transparent 20%,rgba(183,166,122,.42) 46%,transparent 72%); transform:translateX(-135%); animation:ctaSheen 5.8s cubic-bezier(.16,1,.3,1) infinite; }
.button-arrow { flex:0 0 32px; width:32px; height:32px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; transition:transform .3s,background .3s,color .3s; }
.button-arrow svg { width:16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-detail { display:block; width:max-content; margin-top:1.4rem; padding-bottom:.25rem; border-bottom:1px solid var(--line-dark); font:500 1.2rem var(--serif); }
@keyframes ctaSheen { 0%,58% { transform:translateX(-135%); } 82%,100% { transform:translateX(135%); } }

.social-dock { position:fixed; z-index:1100; right:1rem; bottom:1rem; display:flex; flex-direction:column; gap:.65rem; }
.social-dock__item { width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.22); transition:width .45s cubic-bezier(.16,1,.3,1),border-radius .45s; overflow:hidden; animation:socialFloat 3.5s ease-in-out infinite; }
.social-dock__item:nth-child(2) { animation-delay:-1.2s; }
.social-dock__item svg { flex:0 0 22px; width:22px; fill:currentColor; }
.social-dock__item span { max-width:0; opacity:0; margin-left:0; white-space:nowrap; text-transform:uppercase; font-size:.55rem; letter-spacing:.12em; transition:.35s; }
.social-dock__item:hover { width:138px; border-radius:28px; }
.social-dock__item:hover span { max-width:85px; opacity:1; margin-left:.65rem; }
.social-dock__item--whatsapp { background:#25D366; }
.social-dock__item--instagram { background:radial-gradient(circle at 30% 110%,#ffd600 0 10%,#ff7a00 28%,#ff0169 52%,#d300c5 72%,#7638fa 100%); }
@keyframes socialFloat { 0%,100% { transform:translateY(0); box-shadow:0 12px 30px rgba(0,0,0,.22),0 0 0 0 rgba(183,166,122,0); } 50% { transform:translateY(-5px); box-shadow:0 17px 34px rgba(0,0,0,.28),0 0 0 5px rgba(183,166,122,.08); } }

.site-footer { padding:4rem clamp(1.2rem,4vw,5rem) 2rem; color:var(--ivory); background:var(--ink); border-top:1px solid var(--line-light); }
.footer-brand { display:block; width:150px; margin-bottom:4rem; }
.footer-brand img { filter:url(#logo-gold); }
.footer-meta { display:flex; justify-content:space-between; gap:2rem; padding:1.5rem 5rem 0 0; border-top:1px solid var(--line-light); color:#918f88; font-size:.5rem; letter-spacing:.16em; }
.footer-meta a { color:var(--gold); }
.footer-credit { display:inline-flex; align-items:center; gap:.5rem; }
.footer-credit svg { flex:0 0 14px; width:14px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

.reveal { opacity:0; transform:translateY(55px); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

@media (pointer:fine) { .cursor { display:block; } }
@media (hover:hover) and (pointer:fine) {
  .round-link:hover { color:var(--ink); background:var(--sand); transform:scale(1.08); }
  .text-link:hover .link-arrow { color:var(--ivory); background:var(--ink); transform:translate(5px,-5px); }
  .service:hover { padding-inline:1.5rem; color:var(--ink); background:var(--sand); }
  .service:hover::before { opacity:1; }
  .service:hover::after { transform:translateX(125%); }
  .service:hover p,.service:hover > span:first-child { color:var(--olive); }
  .service:hover .service__arrow { color:var(--ivory); background:var(--olive); border-color:var(--olive); transform:translate(5px,-5px) rotate(4deg); }
  .contact-button:hover { color:var(--ink); background:var(--gold); }
  .contact-button:hover .button-arrow { color:var(--ivory); background:var(--ink); transform:translate(5px,-5px); }
}
@media (max-width: 900px) {
  .site-header { height:72px; }
  .menu-toggle { display:block; position:relative; z-index:2; }
  .site-nav { position:fixed; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:18vh 10vw; gap:1.5rem; color:var(--ivory); background:rgba(8,8,13,.98); transform:translateY(-102%); transition:transform .65s cubic-bezier(.76,0,.24,1); }
  .site-nav a { font:500 clamp(2.5rem,10vw,4.5rem)/1 var(--serif); letter-spacing:-.04em; text-transform:none; }
  .menu-open .site-nav a { animation:menuLinkIn .65s cubic-bezier(.16,1,.3,1) both; }
  .menu-open .site-nav a:nth-child(2) { animation-delay:.07s; }
  .menu-open .site-nav a:nth-child(3) { animation-delay:.14s; }
  .menu-open .site-nav a:nth-child(4) { animation-delay:.21s; }
  .menu-open .site-nav { transform:translateY(0); }
  .menu-open .menu-toggle { color:var(--ivory); }
  .menu-open .menu-toggle span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  .menu-open .menu-toggle span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  .manifesto__grid,.services__heading,.identity__intro,.contact__grid { grid-template-columns:1fr; }
  .manifesto__copy,.contact__actions { border-left:0; border-top:1px solid var(--line-dark); padding:2rem 0 0; }
  .service { grid-template-columns:40px 1fr 38px; gap:1rem; padding:1.4rem 0; }
  .service p { display:none; }
  .palette { grid-template-columns:1fr; }
  .palette div { min-height:92px; border-right:0; border-bottom:1px solid var(--line-dark); }
  .palette div:last-child { border-bottom:0; }
  .palette div::before { transform:translateX(-86%); }
  .palette div:hover::before { transform:translateX(0); }
}

@media (max-width: 620px) {
  .hero { min-height:860px; padding-top:7.2rem; }
  .hero__eyebrow { justify-content:center; gap:.55rem; line-height:1.7; flex-wrap:wrap; text-align:center; }
  .hero__title { height:420px; }
  .hero__word { font-size:clamp(4.15rem,22vw,7rem); }
  .hero__word--top { top:10%; }
  .hero__word--bottom { bottom:9%; }
  .hero__monogram { width:155px; }
  .hero__footer { grid-template-columns:1fr auto; }
  .hero__location { display:none; }
  .display { font-size:clamp(3.3rem,17vw,5.4rem); }
  .services__heading .display { font-size:clamp(3.15rem,15vw,5rem); }
  .manifesto,.services,.identity,.contact { padding-top:6rem; padding-bottom:6rem; }
  .service-list { margin-right:3.4rem; }
  .brand-board { margin-inline:-1.2rem; }
  .brand-board img { aspect-ratio:.95; object-position:50% 50%; }
  .quote { min-height:70vh; }
  .social-dock { right:.75rem; bottom:.75rem; }
  .social-dock__item { width:48px; height:48px; }
  .footer-meta { flex-direction:column; padding-right:4rem; }
}

@keyframes menuLinkIn { from { opacity:0; transform:translateY(36px) skewY(3deg); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
  .cursor { display:none; }
}
