:root{
  --background:oklch(16% .01 60);
  --foreground:oklch(94% .02 85);
  --card:oklch(20% .012 60);
  --border:oklch(100% 0 0/.1);
  --muted:oklch(70% .02 80);
  --gold:oklch(76% .12 75);
  --field:oklch(36% .018 60);
  --field-bg:oklch(18% .012 60);
  --error:oklch(74% .14 32);
  --brand-mat:oklch(96.5% .025 89.2);
  --hero:oklch(96.5% .014 82);
  --hero-deep:oklch(93.2% .028 74);
  --hero-fg:oklch(23% .018 62);
  --hero-muted:oklch(40% .028 62);
  --hero-accent:oklch(45% .118 62);
  --hero-border:oklch(84% .03 72);
  --hero-caramel:oklch(85.5% .085 62);
  --hero-glow:oklch(88.5% .088 82);
  --hero-glow-2:oklch(87.8% .075 66);
  --hero-shade:oklch(87.2% .04 66/.85);
  --display:"Cormorant Garamond",Georgia,serif;
  --sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:.25rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:500;margin:0;line-height:1.1;letter-spacing:.005em}
h2{font-size:clamp(2.25rem,4.5vw,3rem)}
p{margin:0}
.container{max-width:64rem;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
.section{padding-top:5rem;padding-bottom:5rem}
.center{text-align:center}
.mt{margin-top:.75rem}
.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.3em;color:var(--gold)}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.band{background:var(--card)}
.band-top{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* HERO */
.hero{position:relative;overflow:hidden;color:var(--hero-fg);background-color:var(--hero);
  background-image:radial-gradient(135% 105% at 50% 42%,transparent 55%,var(--hero-shade) 100%),radial-gradient(72% 60% at 14% 48%,var(--hero-caramel) 0%,transparent 74%),radial-gradient(120% 92% at 4% 2%,var(--hero-glow) 0%,transparent 60%),radial-gradient(60% 48% at 20% 90%,var(--hero-glow-2) 0%,transparent 72%),radial-gradient(95% 78% at 0% 100%,var(--hero-glow-2) 0%,transparent 66%),linear-gradient(158deg,var(--hero) 0%,var(--hero-deep) 46%,var(--hero) 100%)}
.hero-grain{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
.glow{position:absolute;border-radius:50%;filter:blur(64px);pointer-events:none}
.g1{left:-6rem;top:-6rem;width:20rem;height:20rem;background:color-mix(in oklab,var(--gold) 22%,transparent)}
.g2{left:-2.5rem;top:33%;width:20rem;height:20rem;background:color-mix(in oklab,var(--gold) 16%,transparent)}
.g3{left:-4rem;bottom:0;width:24rem;height:24rem;background:color-mix(in oklab,var(--gold) 18%,transparent)}
.ring{position:absolute;border-radius:50%;pointer-events:none;border:1px solid var(--gold)}
.r1{left:-14rem;bottom:-24rem;width:44rem;height:44rem;border-color:color-mix(in oklab,var(--gold) 40%,transparent)}
.r2{left:-7rem;bottom:-16rem;width:30rem;height:30rem;border-color:color-mix(in oklab,var(--gold) 25%,transparent)}
.r3{left:-1.5rem;bottom:-9rem;width:18rem;height:18rem;border-color:color-mix(in oklab,var(--gold) 15%,transparent)}
.hero-media{position:relative;z-index:1}
.hero-photo{width:100%;height:min(42vh,22rem);object-fit:cover;object-position:50% 63%;-webkit-mask-image:linear-gradient(#000 calc(100% - 2.5rem),transparent 100%);mask-image:linear-gradient(#000 calc(100% - 2.5rem),transparent 100%)}
.hero-inner{position:relative;z-index:1;max-width:64rem;margin:0 auto;padding:3rem 1.5rem 5rem;display:flex;flex-direction:column;justify-content:flex-end}
.hero-copy{max-width:32rem}
.hero-eyebrow{color:var(--hero-accent)}
.hero-title{margin-top:1rem;font-size:3rem;font-weight:600;text-transform:uppercase;line-height:.95;letter-spacing:.04em}
.hero-name{margin-top:1.25rem;display:flex;align-items:baseline;gap:.6rem;color:var(--hero-fg)}
.hero-name .by{font-family:var(--display);font-style:italic;font-size:1.05rem;letter-spacing:.02em;text-transform:none;color:#000}
.hero-name .byline{font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.32em;color:var(--hero-fg)}
.footer .by{font-family:var(--display);font-style:italic;font-size:1.05em}
.hero-lede{margin-top:1.25rem;max-width:36rem;color:var(--hero-muted);font-size:1rem}
.stats{margin-top:2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:28rem;border-top:1px solid var(--hero-border);padding-top:1.5rem}
.stat-n{font-family:var(--display);font-size:1.5rem;color:var(--hero-accent);line-height:1.3}
.stat-l{font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--hero-muted)}
.btn-outline{margin-top:2.5rem;display:inline-flex;align-items:center;gap:.75rem;border:1px solid color-mix(in oklab,var(--gold) 70%,transparent);border-radius:999px;padding:.75rem 1.75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.28em;text-decoration:none;color:var(--hero-fg);transition:background .3s,transform .3s}
.btn-outline span{color:var(--hero-accent);transition:transform .3s}
.btn-outline:hover{background:color-mix(in oklab,var(--gold) 15%,transparent);border-color:var(--hero-accent)}
.btn-outline:hover span{transform:translateX(4px)}
@media (min-width:768px){
  .hero-media{position:absolute;top:0;bottom:0;right:0;width:46%;overflow:hidden}
  .hero-photo{height:100%;object-position:62% 50%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 3rem);mask-image:linear-gradient(90deg,transparent 0,#000 3rem)}
  .hero-inner{min-height:min(92vh,56rem);padding-top:4rem}
  .hero-title{font-size:6rem}
  .hero-name,.hero-lede{margin-top:1.5rem}
  .hero-name .by{font-size:1.2rem}
  .hero-name .byline{font-size:.875rem}
  .hero-lede{font-size:1.125rem}
  .stats{margin-top:2.5rem}
  .stat-n{font-size:1.875rem}
  .stat-l{font-size:.75rem}
}
.gold-rule{height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--gold) 70%,transparent),transparent)}

/* BRAND */
.brand{position:relative;padding:3.5rem 1.5rem 2.5rem}
.brand-glow{position:absolute;left:50%;top:50%;width:36rem;max-width:100%;height:24rem;transform:translate(-50%,-50%);border-radius:50%;background:color-mix(in oklab,var(--gold) 10%,transparent);filter:blur(64px);pointer-events:none}
.brand-wrap{position:relative;max-width:36rem;margin:0 auto}
.brand-frame{border:1px solid color-mix(in oklab,var(--gold) 35%,transparent);background:var(--brand-mat);border-radius:calc(var(--r) + 8px);padding:.5rem;box-shadow:0 30px 70px -30px color-mix(in oklab,var(--gold) 30%,transparent),0 70px 150px -60px rgba(0,0,0,.85)}
.brand-frame video{width:100%;height:auto;border-radius:var(--r);pointer-events:none}
@media (min-width:768px){.brand{padding:4rem 1.5rem 3rem}.brand-frame{padding:.625rem}}

/* PROFILE */
.profile{margin-top:2rem;display:grid;gap:2.5rem;align-items:start}
.portrait{width:16rem;margin:0 auto;border-radius:var(--r);border:1px solid var(--border);object-fit:cover}
.prose{margin-top:2rem;color:var(--muted)}
.prose p+p{margin-top:1.5rem}
@media (min-width:768px){.profile{grid-template-columns:280px 1fr}.portrait{width:100%}}

/* GALLERY */
.gallery{margin-top:2.5rem;display:grid;gap:1rem}
@media (min-width:640px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery figure{margin:0;overflow:hidden;border-radius:var(--r);border:1px solid var(--border);position:relative}
.gallery figure::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .5s;border-radius:inherit;pointer-events:none}
.gallery figure:hover::after{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 50%,transparent)}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .5s}
.gallery figure:hover img{transform:scale(1.05)}

/* SERVICES */
.services{list-style:none;margin:2.5rem 0 0;padding:0}
.services li{display:flex;gap:1.5rem;padding:1.25rem 0}
.services li+li{border-top:1px solid var(--border)}
.services .num{font-family:var(--display);font-size:1.5rem;min-width:2.25rem;color:var(--gold);line-height:1.2;flex:none}
.services li span:last-child{padding-top:.25rem}
.quiet{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.875rem;font-style:italic;color:var(--muted)}

/* BRANDS */
.logos{margin-top:2.5rem;display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem;row-gap:2.5rem;align-items:center}
@media (min-width:768px){.logos{grid-template-columns:repeat(4,1fr)}}
.logos>div{min-height:5.5rem}
.logos .lg-wide{max-height:2.5rem}
.logos .lg-mid{max-height:3.75rem}
.logos .lg-tall{max-height:5rem}
.logos>div{display:flex;align-items:center;justify-content:center}
.logos img{width:auto;height:auto;max-width:80%;object-fit:contain;opacity:.85;transition:opacity .3s}
.logos img:hover,.wordmark:hover{opacity:1}
.wordmark{font-family:var(--display);font-size:clamp(1.35rem,4.5vw,1.875rem);color:var(--gold);opacity:.9;transition:opacity .3s}
.narrow{margin-top:2.5rem;max-width:42rem}

/* CONTACT */
.form-shell{margin-top:3rem}
.card-form{position:relative;max-width:48rem;margin:0 auto;text-align:left;background:var(--card);border:1px solid var(--field);border-radius:var(--r);padding:1.5rem}
@media (min-width:768px){.card-form{padding:2.5rem}}
.grid2{display:grid;gap:1.5rem}
@media (min-width:768px){.grid2{grid-template-columns:1fr 1fr}}
.field label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}
.opt{text-transform:none;letter-spacing:normal}
.field input,.field select,.field textarea{margin-top:.5rem;width:100%;font:inherit;color:var(--foreground);background:var(--field-bg);border:1px solid var(--field);border-radius:calc(var(--r) - 2px);padding:.75rem 1rem;outline:none;transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical}
.field ::placeholder{color:var(--muted);opacity:.8}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in oklab,var(--gold) 30%,transparent)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--error)}
.err{display:block;min-height:0;margin-top:.4rem;font-size:.8rem;color:var(--error)}
.err:empty{display:none}
.select{position:relative}
.select select{appearance:none;-webkit-appearance:none;padding-right:2.5rem}
.select span{position:absolute;right:1rem;top:calc(50% + .25rem);transform:translateY(-50%);color:var(--muted);pointer-events:none}
.field.full{margin-top:1.5rem}
.hp{position:absolute;left:-9999px;width:0;height:0;overflow:hidden}
.submit-row{margin-top:2rem;padding-top:1.75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
@media (min-width:640px){.submit-row{flex-direction:row;align-items:center}}
.btn-gold{white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:.75rem;font:inherit;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.24em;cursor:pointer;border:0;border-radius:999px;background:var(--gold);color:var(--background);padding:1rem 2rem;transition:background .25s,transform .2s,box-shadow .25s}
.btn-gold span{transition:transform .3s}
.btn-gold:hover{background:color-mix(in oklab,var(--gold) 88%,white);box-shadow:0 10px 30px -12px color-mix(in oklab,var(--gold) 60%,transparent)}
.btn-gold:hover span{transform:translateX(4px)}
.btn-gold:active{transform:translateY(1px)}
.thanks{text-align:center;padding:3rem 1.5rem}
.thanks:focus{outline:none}
.seal{width:3.5rem;height:3.5rem;margin:0 auto 1.5rem;border-radius:50%;border:1px solid var(--gold);color:var(--gold);display:grid;place-items:center;font-size:1.4rem}
.thanks h3{font-size:clamp(1.75rem,3.5vw,2.25rem)}
.thanks p{margin:1rem auto 0;max-width:30rem}
.thanks-actions{margin-top:2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}
.btn-outline.dark{margin-top:0;color:var(--foreground);letter-spacing:.2em}
.link-btn{margin-top:1.5rem;background:none;border:0;color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.link-btn:hover{color:var(--gold)}
.muted-eyebrow{margin-top:3.5rem;color:var(--muted)}
.direct{margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}
@media (min-width:640px){.direct{flex-direction:row}}
.btn-ghost{border:1px solid color-mix(in oklab,var(--gold) 35%,transparent);border-radius:999px;padding:.9rem 2rem;font-size:.9375rem;letter-spacing:.04em;text-decoration:none;transition:border-color .2s,color .2s,background .2s}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);background:color-mix(in oklab,var(--gold) 6%,transparent)}

.footer{border-top:1px solid var(--border);padding:2.5rem 1.5rem;text-align:center;font-size:.875rem;color:var(--muted)}
.footer-links{margin-top:.4rem}
.footer-links a{color:var(--gold)}
.footer a{text-decoration:none}
.footer a:hover{color:var(--gold)}

/* reveal */
.reveal{opacity:1}
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease}
.js .reveal.in{opacity:1;transform:none}
.section-after-brand{padding-top:2rem}

/* focus + selection */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:999px}
.hero a:focus-visible{outline-color:var(--hero-accent)}
::selection{background:color-mix(in oklab,var(--gold) 35%,transparent);color:inherit}
.brand-frame video{aspect-ratio:3/2;object-fit:cover;background:var(--brand-mat)}
.services li span:last-child{color:var(--foreground)}
.footer{font-size:.8125rem;letter-spacing:.02em}
@media (max-width:479px){.hero-name{flex-wrap:wrap;gap:.4rem}.hero-name .byline{letter-spacing:.24em}.stats{gap:.75rem}}
.nw{white-space:nowrap}
@media (max-width:479px){.hero-eyebrow .sep{display:none}.hero-eyebrow .nw{display:block}.hero-eyebrow .nw+.nw{margin-top:.35rem}.stat-l{letter-spacing:.06em}}
