:root{
  --abyss:#050D1C;
  --navy:#0B1730;
  --navy-2:#0E1D3C;
  --line:#1B2C52;
  --gold:#D9B45B;
  --gold-lt:#F3E29D;
  --gold-dp:#A8792C;
  --ivory:#EDEAE3;
  --muted:#8C9BB6;
  --maxw:1240px;
  --display:'Marcellus',serif;
  --body:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--abyss);
  color:var(--ivory);
  font-family:var(--body);
  font-weight:300;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ---------- shared bits ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:12px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold);font-weight:400;
}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.18;letter-spacing:.01em}
h2{font-size:clamp(1.9rem,3.6vw,3rem)}
h3{font-size:1.28rem;letter-spacing:.06em}
p{color:#C7CFDD; font-size: 16px;}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem);color:#D5DBE6}
.gold{color:var(--gold-lt)}

/* the signature: a centred gold seam, echoing two horns meeting */
.seam{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto}
.seam::before,.seam::after{
  content:"";height:1px;width:min(150px,22vw);
  background:linear-gradient(90deg,transparent,var(--gold-dp));
}
.seam::after{background:linear-gradient(270deg,transparent,var(--gold-dp))}
.seam i{
  width:7px;height:7px;transform:rotate(45deg);
  background:var(--gold);box-shadow:0 0 14px rgba(217,180,91,.7);
  display:block;
}
.section{padding:clamp(72px,9vw,124px) 0;position:relative}
.section-head{text-align:center;max-width:760px;margin:0 auto clamp(40px,5vw,64px)}
.section-head .eyebrow{display:block;margin-bottom:20px}
.section-head h2{margin-bottom:18px}
.divider{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent)}

/* ---------- header ---------- */
header{
  position:fixed;inset:0 0 auto 0;z-index:60;
  transition:background .35s ease,border-color .35s ease,padding .35s ease;
  border-bottom:1px solid transparent;padding:10px 0;
}
header.stuck{background:rgba(5,13,28,.9);backdrop-filter:blur(12px);border-bottom-color:var(--line);padding:6px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{
  height:110px;width:auto;
  mix-blend-mode:screen;
  transition:height .35s ease,opacity .3s;
}
.brand:hover img{opacity:.86}
header.stuck .brand img{height:66px}
.menu{display:flex;align-items:center;gap:34px}
.menu a{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:#B9C3D4;transition:color .25s}
.menu a:hover{color:var(--gold-lt)}
.btn{
  display:inline-block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  padding:14px 30px;border:1px solid var(--gold-dp);color:var(--gold-lt);
  background:linear-gradient(180deg,rgba(217,180,91,.10),rgba(217,180,91,0));
  transition:background .3s,color .3s,border-color .3s;white-space:nowrap;cursor:pointer;
}
.btn:hover{background:var(--gold);color:#0A1327;border-color:var(--gold)}
.btn.solid{background:var(--gold);color:#0A1327;border-color:var(--gold)}
.btn.solid:hover{background:var(--gold-lt);border-color:var(--gold-lt)}
.burger{display:none;background:none;border:0;color:var(--ivory);font-size:22px;cursor:pointer;line-height:1}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  min-height:min(92vh,860px);display:flex;align-items:center;
  padding:150px 0 110px;
  border-bottom:1px solid var(--line);
}
.banner{position:absolute;inset:0;z-index:0}
.banner img{
  width:100%;height:100%;object-fit:cover;opacity:.42;
  filter:grayscale(.35) contrast(1.1);
  transform:scale(1.06);animation:drift 26s ease-in-out infinite alternate;
}
@keyframes drift{from{transform:scale(1.06) translateY(0)}to{transform:scale(1.12) translateY(-14px)}}
.banner::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,var(--abyss) 6%,rgba(5,13,28,.86) 42%,rgba(5,13,28,.5)),
    linear-gradient(180deg,rgba(5,13,28,.95),rgba(5,13,28,.25) 45%,var(--abyss));
}
.hero-glow{
  position:absolute;left:8%;top:20%;width:900px;height:620px;z-index:1;
  background:radial-gradient(ellipse at center,rgba(217,180,91,.10),transparent 62%);
  pointer-events:none;
}
.hero-inner{position:relative;z-index:2;text-align:left}
.hero-inner .seam{justify-content:flex-start}
.hero-inner .seam::before{display:none}
.hero-inner .seam::after{width:min(220px,40vw)}
.hero h1{font-size:clamp(2.1rem,4.7vw,4rem);max-width:17ch;margin:16px 0 0}
.hero .tag{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}
.hero p.lead{max-width:620px;margin:0 0 38px}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap}
.scroll-hint{
  position:absolute;left:50%;bottom:26px;z-index:2;width:1px;height:66px;
  background:linear-gradient(180deg,transparent,var(--gold-dp));
}
.scroll-hint::after{
  content:"";position:absolute;left:-3px;bottom:0;width:7px;height:7px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 12px rgba(217,180,91,.8);
  animation:bob 2.4s ease-in-out infinite;
}
@keyframes bob{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-10px);opacity:.45}}

/* ---------- intro / statement ---------- */
.statement{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,86px);align-items:center}
.statement.flip .frame{order:-1}
.frame{
  position:relative;background:linear-gradient(140deg,var(--navy-2),var(--abyss));
  border:1px solid var(--line);overflow:hidden;
}
.frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;opacity:.86;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity .6s}
.frame:hover img{transform:scale(1.04);opacity:1}
.frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(5,13,28,.35),rgba(5,13,28,0) 45%,rgba(5,13,28,.6));
  pointer-events:none;
}
.frame::before{
  content:"";position:absolute;z-index:2;left:14px;top:14px;width:34px;height:34px;
  border-left:1px solid var(--gold-dp);border-top:1px solid var(--gold-dp);
}
.statement h2{margin:18px 0 22px}
.statement p+p{margin-top:18px}
.rule{width:64px;height:1px;background:var(--gold);margin:28px 0 0}

/* ---------- what we do ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{
  background:linear-gradient(180deg,var(--navy),rgba(5,13,28,.6));
  border:1px solid var(--line);overflow:hidden;
  display:flex;flex-direction:column;transition:border-color .35s,transform .35s;
}
.card:hover{border-color:var(--gold-dp);transform:translateY(-6px)}
.card .shot{position:relative;overflow:hidden;height:190px;background:var(--navy-2)}
.card .shot img{width:100%;height:100%;object-fit:cover;opacity:.7;transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .5s}
.card:hover .shot img{transform:scale(1.06);opacity:.95}
.card .shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,13,28,.15),var(--navy))}
.card .body{padding:26px 26px 30px}
.card h3{margin-bottom:12px}
.card p{font-size:15px;line-height:1.7;color:#A9B5C8}
.card .idx{font-size:11px;letter-spacing:.3em;color:var(--gold-dp);display:block;margin-bottom:14px}

/* ---------- industries ---------- */
.industries{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.industries .bg{position:absolute;inset:0}
.industries .bg img{width:100%;height:100%;object-fit:cover;opacity:.20;filter:grayscale(1) contrast(1.1)}
.industries .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--abyss),rgba(5,13,28,.72) 40%,var(--abyss))}
.industries .wrap{position:relative;z-index:2}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:900px;margin:0 auto}
.chip{
  border:1px solid var(--line);background:rgba(11,23,48,.7);
  padding:13px 22px;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:#C3CBD9;
  transition:border-color .3s,color .3s,background .3s;
}
.chip:hover{border-color:var(--gold);color:var(--gold-lt);background:rgba(217,180,91,.07)}

/* ---------- audiences (the convergence) ---------- */
.audience{display:grid;grid-template-columns:1fr 1px 1fr;gap:0;align-items:stretch;border:1px solid var(--line)}
.audience .spine{background:linear-gradient(180deg,transparent,var(--gold-dp) 30%,var(--gold-dp) 70%,transparent)}
.aud{padding:clamp(34px,4vw,54px)}
.aud .shot{margin-bottom:30px;border:1px solid var(--line);overflow:hidden;background:var(--navy-2)}
.aud .shot img{width:100%;height:260px;object-fit:cover;opacity:.82;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.aud:hover .shot img{transform:scale(1.05)}
.aud h3{font-size:1.6rem;margin-bottom:18px}
.aud .eyebrow{display:block;margin-bottom:14px}
.aud p{font-size:15.5px}
.aud a.link{
  display:inline-block;margin-top:26px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-lt);border-bottom:1px solid var(--gold-dp);padding-bottom:6px;transition:letter-spacing .3s,border-color .3s;
}
.aud a.link:hover{letter-spacing:.3em;border-color:var(--gold)}

/* ---------- promise ---------- */
.promise{text-align:center;background:linear-gradient(180deg,var(--abyss),#071127,var(--abyss))}
.vows{list-style:none;display:grid;gap:0;max-width:720px;margin:0 auto}
.vows li{
  font-family:var(--display);font-size:clamp(1.25rem,2.4vw,1.75rem);
  padding:26px 10px;border-top:1px solid var(--line);color:var(--ivory);
  transition:color .3s,background .3s;
}
.vows li:last-child{border-bottom:1px solid var(--line)}
.vows li:hover{color:var(--gold-lt);background:rgba(217,180,91,.04)}

/* ---------- contact ---------- */
.contact{position:relative;overflow:hidden}
.contact .bg{position:absolute;inset:0}
.contact .bg img{width:100%;height:100%;object-fit:cover;opacity:.24}
.contact .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--abyss) 8%,rgba(5,13,28,.78))}
.contact .wrap{position:relative;z-index:2}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center}
form{display:grid;gap:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input,select,textarea{
  width:100%;background:rgba(5,13,28,.72);border:1px solid var(--line);color:var(--ivory);
  padding:15px 16px;font-family:var(--body);font-size:15px;font-weight:300;transition:border-color .3s,background .3s;
}
input::placeholder,textarea::placeholder{color:#6F7E96}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);background:rgba(11,23,48,.9)}
textarea{resize:vertical;min-height:120px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px;background-repeat:no-repeat}
form .btn{justify-self:start}
.formnote{font-size:12.5px;color:var(--muted);letter-spacing:.04em}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:56px 0 34px;text-align:center}
.foot-brand{font-family:var(--display);font-size:20px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-lt)}
.foot-tag{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.foot-links{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin:30px 0}
.foot-links a{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#9DA9BC;transition:color .25s}
.foot-links a:hover{color:var(--gold-lt)}
.copy{font-size:12.5px;color:#6C7A92;letter-spacing:.06em}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- responsive ---------- */
@media(max-width:1024px){
  .services{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  .menu{
    position:fixed;inset:0 0 auto 0;top:0;padding:96px 28px 34px;
    flex-direction:column;align-items:flex-start;gap:22px;
    background:rgba(5,13,28,.98);border-bottom:1px solid var(--line);
    transform:translateY(-110%);transition:transform .45s cubic-bezier(.2,.7,.2,1);
  }
  .menu.open{transform:none}
  .menu a{font-size:15px;letter-spacing:.22em}
  .menu .btn{width:100%;text-align:center}
  .burger{display:block;z-index:70}
  .hero{min-height:auto;padding:128px 0 88px}
  .brand img{height:64px}
  header.stuck .brand img{height:54px}
  .brand{position:relative;z-index:70}
  .scroll-hint{display:none}
  .statement{grid-template-columns:1fr;gap:34px}
  .statement.flip .frame{order:0}
  .audience{grid-template-columns:1fr}
  .audience .spine{height:1px;background:linear-gradient(90deg,transparent,var(--gold-dp),transparent)}
  .contact-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .services{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .chip{padding:11px 16px;font-size:11.5px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
