*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --linen:#f0ebe3;
  --linen2:#e8e1d8;
  --stone:#ddd6cc;
  --chalk:#f8f5f1;
  --charcoal:#231f1b;
  --charcoal2:#1a1714;
  --text:#1a2440;
  --body:#3a4150;
  --muted:#6e7686;
  --gold:#5a7090;
  --gold-dark:#3d5570;
  --rule:rgba(50,40,32,0.10);
  --rule-dark:rgba(248,245,241,0.14);
  --nav-h:72px;--pad:80px;
}
html{height:100%;scroll-behavior:smooth}
body{font-family:'Raleway',sans-serif;font-weight:300;background:var(--linen);color:var(--text);overflow-x:hidden;cursor:none}

/* cursor — refined gold ring */
.cursor{position:fixed;width:6px;height:6px;border-radius:50%;background:var(--gold);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s,height .3s,background .3s}
.cursor.h{width:32px;height:32px;background:transparent;border:1px solid var(--gold-dark);opacity:.6}

/* ── NAV — chalk/linen, almost invisible ── */
nav{
  position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;
  display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);
  background:rgba(240,235,227,0);
  transition:background .5s,border-color .5s;
  border-bottom:1px solid transparent;
}
nav.scrolled{
  background:rgba(248,245,241,0.96);
  backdrop-filter:blur(16px);
  border-bottom-color:var(--rule);
}
/* Logo dark on light — use original with no invert */
.nav-logo img{height:36px;width:auto;display:block;opacity:1;transition:filter .3s}
/* On hero — logo needs to be light */
.nav-logo img.light{filter:brightness(0) invert(1);opacity:1}
.nav-logo-link{display:inline-block;text-decoration:none}
.nav-logo-link:hover img{transform:scale(1.04);opacity:.85;transition:transform .4s ease,opacity .4s ease}

.nav-links{display:flex;gap:44px;list-style:none}
.nav-links a{font-size:10px;letter-spacing:0.28em;text-transform:uppercase;color:rgba(248,245,241,0.7);text-decoration:none;font-weight:200;transition:color .3s;position:relative}
nav.scrolled .nav-links a{color:var(--muted)}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
nav.scrolled .nav-links a:hover,nav.scrolled .nav-links a.active{color:var(--text)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-menu-btn{display:none;background:none;border:none;cursor:none;flex-direction:column;gap:5px;padding:4px}
.nav-menu-btn span{display:block;width:22px;height:1px;background:rgba(248,245,241,0.6);transition:all .3s,background .5s}
nav.scrolled .nav-menu-btn span{background:var(--muted)}

.page{display:block;min-height:100vh}
.page-enter{animation:pageIn .7s ease forwards}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.pt{position:fixed;inset:0;background:#0e1e35;z-index:200;pointer-events:none;transform:scaleY(0);transform-origin:bottom;transition:transform .4s ease}
.pt.is-visible{transform:scaleY(1)}
.mob{display:none;position:fixed;inset:0;background:#133964;z-index:99;flex-direction:column;justify-content:center;align-items:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .3s}
.mob.open{opacity:1;pointer-events:all}
.mob a{font-weight:100;font-size:32px;letter-spacing:0.26em;text-transform:uppercase;color:var(--chalk);text-decoration:none;cursor:none;transition:color .2s}
.mob a:hover{color:var(--gold)}

/* ── HERO — warm sand tones overlay ── */
.hero{position:relative;height:100vh;min-height:600px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 45%;transform:scale(1.04);animation:slowZ 22s ease-out forwards}
@keyframes slowZ{from{transform:scale(1.04)}to{transform:scale(1.00)}}
.hero-ov{
  position:absolute;inset:0;
  background:linear-gradient(
    180deg,
    rgba(42,46,58,0.20) 0%,
    rgba(29,37,64,0.55) 38%,
    rgba(18,32,53,0.85) 72%,
    rgba(10,22,40,0.97) 100%
  );
}
.hero-ov::after{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340' viewBox='0 0 340 340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='6' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:0.22;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.hero-content{position:relative;z-index:2;padding:72px var(--pad);opacity:0;animation:heroUp 1.4s .4s ease forwards}
@keyframes heroUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.hero-eye{font-size:10px;letter-spacing:0.36em;text-transform:uppercase;color:var(--gold);font-weight:100;margin-bottom:28px;display:flex;align-items:center;gap:20px}
.hero-eye::before{content:'';width:36px;height:1px;background:var(--gold);opacity:.6}
.hero-title{font-weight:100;font-size:clamp(52px,7.5vw,100px);line-height:.95;letter-spacing:0.20em;text-transform:uppercase;color:var(--chalk);margin-bottom:44px}
.hero-meta{display:flex;gap:48px;align-items:center;border-top:1px solid rgba(184,154,120,0.22);padding-top:32px;flex-wrap:wrap}
.hero-stat{display:flex;flex-direction:column;gap:6px}
.hero-stat-n{font-size:9px;letter-spacing:0.26em;text-transform:uppercase;color:rgba(248,245,241,0.45);font-weight:200}
.hero-stat-v{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--chalk);font-weight:200}
.hero-div{width:1px;height:32px;background:rgba(184,154,120,0.20)}
.hero-scroll{position:absolute;right:var(--pad);bottom:60px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:9px;letter-spacing:0.30em;text-transform:uppercase;color:rgba(248,245,241,0.35);font-weight:100;cursor:none;opacity:0;animation:heroUp 1s 1.4s ease forwards}
.hero-scroll-line{width:1px;height:48px;background:rgba(184,154,120,0.20);position:relative;overflow:hidden}
.hero-scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--gold);animation:scrollL 2.5s 2s ease infinite}
@keyframes scrollL{0%{top:-100%}100%{top:100%}}

/* ── SECTIONS ── */
.section{padding:108px var(--pad);background:var(--linen)}
.section.alt{background:var(--linen2)}
.section.stone{background:var(--stone)}
.section.dark{background:#0e1e35;color:var(--chalk)}
.section.dark .s-label{color:var(--gold)}
.section.dark .s-label::after{background:var(--rule-dark)}
.section.dark .s-h{color:var(--chalk)}
.section.dark .s-body{color:rgba(248,245,241,0.6)}

.s-label{font-size:9px;letter-spacing:0.34em;text-transform:uppercase;color:var(--gold);font-weight:200;display:flex;align-items:center;gap:22px;margin-bottom:48px}
.s-label::after{content:'';flex:1;height:1px;background:var(--rule)}
.s-h{font-weight:100;font-size:clamp(36px,4.5vw,62px);letter-spacing:0.22em;text-transform:uppercase;color:var(--text);line-height:1.0;margin-bottom:20px}
.s-body{font-size:15px;color:var(--body);line-height:1.95;letter-spacing:0.04em;max-width:580px;font-weight:300}

/* ── WORK GRID ── */
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:64px}
.wi-1{grid-column:1/8;grid-row:1;height:520px}
.wi-2{grid-column:8/10;grid-row:1;height:520px}
.wi-3{grid-column:10/13;grid-row:1;height:520px}
.wi-4{grid-column:1/4;grid-row:2;height:420px}
.wi-5{grid-column:4/8;grid-row:2;height:420px}
.wi-6{grid-column:8/13;grid-row:2;height:420px}.wi-7{grid-column:1/13;grid-row:3;height:480px}
.wi{position:relative;overflow:hidden;cursor:none;background:var(--stone)}
.wi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.25,.46,.45,.94);filter:brightness(0.97) saturate(0.95)}
.wi:hover img{transform:scale(1.05);filter:brightness(1) saturate(1)}
.wi::before{content:'';position:absolute;z-index:1;border:1px solid rgba(184,154,120,0.0);inset:20px;pointer-events:none;transition:border-color .6s}
.wi:hover::before{border-color:rgba(184,154,120,0.35)}

/* Overlay — warm charcoal, not black */
.wi-ov{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(to top,rgba(26,20,14,.94) 0%,rgba(26,20,14,.0) 52%,transparent 100%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:28px;
}
.wi-name{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:var(--chalk);font-weight:200;opacity:0;transform:translateY(10px);transition:opacity .4s .06s,transform .4s .06s}
.wi-loc{font-size:9px;letter-spacing:0.20em;text-transform:uppercase;color:var(--gold);font-weight:200;margin-top:5px;opacity:0;transform:translateY(10px);transition:opacity .45s .12s,transform .45s .12s}
.wi-arch{font-size:9px;letter-spacing:0.12em;color:rgba(248,245,241,0.5);font-weight:200;margin-top:4px;opacity:0.45;transition:opacity .35s}
.wi:hover .wi-name,.wi:hover .wi-loc{opacity:1;transform:translateY(0)}
.wi:hover .wi-arch{opacity:0.85}

/* ── ABOUT ── */
.about-2col{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:64px;align-items:start}
.about-l{padding-right:80px}
.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:64px}
.partner-card{background:var(--stone);padding:40px 32px;border-top:1px solid var(--gold);transition:background .4s}
.partner-card:hover{background:#d0c8be}
.p-name{font-weight:200;font-size:17px;letter-spacing:0.20em;text-transform:uppercase;color:var(--text);margin-bottom:8px}
.p-role{font-size:9px;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-dark);font-weight:200;margin-bottom:20px}
.p-bio{font-size:13px;color:var(--body);line-height:1.88;letter-spacing:0.03em}

/* markets — dark section */
.markets-strip{display:flex;border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark)}
.mkt{flex:1;padding:28px 0;text-align:center;border-right:1px solid var(--rule-dark);font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(248,245,241,0.5);font-weight:200;transition:color .3s}
.mkt:last-child{border-right:none}.mkt:hover{color:var(--chalk)}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule-dark)}
.stat{padding:40px 0;border-right:1px solid var(--rule-dark);text-align:center}.stat:last-child{border-right:none}
.stat-n{font-weight:100;font-size:52px;letter-spacing:0.06em;color:var(--chalk);line-height:1;margin-bottom:10px}
.stat-l{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(248,245,241,0.4);font-weight:200}
.about-photo{position:relative;height:520px;overflow:hidden}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.97) saturate(0.92)}
.about-photo::after{content:'';position:absolute;inset:20px;border:1px solid rgba(184,154,120,0.18)}

/* ── CONTACT ── */
.contact-2col{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:60px}
.c-form{display:flex;flex-direction:column;gap:0}
.fg{display:flex;flex-direction:column;gap:12px;padding:28px 0;border-bottom:1px solid var(--rule)}
.fg label{font-size:9px;letter-spacing:0.30em;text-transform:uppercase;color:var(--gold-dark);font-weight:200}
.fg input,.fg textarea,.fg select{background:transparent;border:none;outline:none;font-family:'Raleway',sans-serif;font-weight:300;font-size:14px;letter-spacing:0.05em;color:var(--text);resize:none;padding:0}
.fg input::placeholder,.fg textarea::placeholder{color:var(--muted)}
.fg select option{background:var(--linen)}
.fg textarea{min-height:80px}
.c-submit{margin-top:40px;background:var(--charcoal);border:1px solid var(--charcoal);color:var(--chalk);font-family:'Raleway',sans-serif;font-weight:200;font-size:10px;letter-spacing:0.30em;text-transform:uppercase;padding:18px 40px;cursor:none;transition:background .3s;align-self:flex-start}
.c-submit:hover{background:var(--charcoal2)}
.c-info-item{padding:24px 0;border-bottom:1px solid var(--rule)}
.c-info-label{font-size:9px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold-dark);font-weight:200;margin-bottom:10px}
.c-info-val{font-size:14px;letter-spacing:0.05em;color:var(--text);font-weight:300;line-height:1.85}
.routing{margin-top:40px;padding-top:28px;border-top:1px solid var(--rule)}
.routing-title{font-size:9px;letter-spacing:0.26em;text-transform:uppercase;color:var(--muted);font-weight:200;margin-bottom:18px}
.routing-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--rule)}
.routing-name{font-size:13px;letter-spacing:0.10em;color:var(--text)}
.routing-dom{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}

/* ── CAREERS ── */
.careers-stmt{max-width:680px;margin-top:28px}
.careers-stmt p{font-size:17px;color:var(--body);line-height:1.95;letter-spacing:0.04em;font-weight:300}
.roles{margin-top:72px}
.role{display:grid;grid-template-columns:1fr auto;align-items:center;padding:40px 0;border-bottom:1px solid var(--rule);gap:40px}
.role:first-child{border-top:1px solid var(--rule)}
.role-title{font-weight:200;font-size:19px;letter-spacing:0.18em;text-transform:uppercase;color:var(--text);margin-bottom:8px}
.role-loc{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-dark);font-weight:200;margin-bottom:16px}
.role-desc{font-size:13px;color:var(--body);line-height:1.88;letter-spacing:0.03em;max-width:520px}
.role-apply{background:transparent;border:1px solid var(--rule);color:var(--muted);font-family:'Raleway',sans-serif;font-weight:200;font-size:9px;letter-spacing:0.24em;text-transform:uppercase;padding:14px 24px;cursor:none;white-space:nowrap;transition:all .3s;flex-shrink:0}
.role-apply:hover{border-color:var(--charcoal);color:var(--text)}
.spec-box{margin-top:72px;padding:64px;background:var(--stone);text-align:center;border-top:1px solid var(--rule)}
.spec-title{font-weight:100;font-size:32px;letter-spacing:0.22em;text-transform:uppercase;color:var(--text);margin-bottom:16px}
.spec-body{font-size:13px;color:var(--body);letter-spacing:0.05em;margin-bottom:32px;line-height:1.85}
.spec-link{font-size:10px;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold-dark);font-weight:200;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;cursor:none;transition:color .2s}
.spec-link:hover{color:var(--text)}

/* ── FOOTER — deep warm charcoal ── */
footer{
  padding:64px var(--pad) 44px;
  background:#133964;
  display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px;
}
.ft-logo img{width:96px;filter:brightness(0) invert(1);opacity:1;margin-bottom:18px}
.ft-addr{font-size:11px;letter-spacing:0.12em;color:rgba(248,245,241,0.35);font-weight:200;line-height:2.0}
.ft-right{text-align:right}
.ft-tag{font-weight:100;font-size:19px;letter-spacing:0.26em;text-transform:uppercase;color:var(--chalk);margin-bottom:8px;opacity:.3}
.ft-nav{display:flex;gap:28px;justify-content:flex-end;list-style:none;margin-top:20px}
.ft-nav a{font-size:9px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(248,245,241,0.3);text-decoration:none;font-weight:200;transition:color .3s;cursor:none}
.ft-nav a:hover{color:rgba(248,245,241,0.65)}
.ft-fine{grid-column:1/-1;padding-top:32px;border-top:1px solid rgba(248,245,241,0.12);display:flex;justify-content:space-between;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(248,245,241,0.32);font-weight:200}

.rev{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}

@media(max-width:900px){
  :root{--pad:32px}
  .nav-links{display:none}.nav-menu-btn{display:flex}
  .hero-title{font-size:clamp(40px,12vw,68px)}
  .work-grid{grid-template-columns:1fr 1fr}
  .wi-1,.wi-2,.wi-3,.wi-4,.wi-5,.wi-6,.wi-7{grid-column:auto;grid-row:auto;height:52vw}
  .about-2col{grid-template-columns:1fr}.about-l{padding-right:0}
  .partner-grid{grid-template-columns:1fr}
  .contact-2col{grid-template-columns:1fr;gap:60px}
  .markets-strip{flex-wrap:wrap}.mkt{flex-basis:50%}
  footer{grid-template-columns:1fr}.ft-right{text-align:left}.ft-nav{justify-content:flex-start}
  body{cursor:auto}.cursor{display:none}
}

.hero-eye{color:#b8882a}
.hero-eye::before{background:#b8882a;opacity:.7}
.hero-scroll-line::after{background:#b8882a}

/* ───── Textured navy banner — slate→navy gradient + paper grain ───── */
.section.dark,
.spec-box,
footer{
  background-color:#0a1628;
  background-image:
    radial-gradient(ellipse 110% 55% at 50% -10%, rgba(255,255,255,0.045) 0%, transparent 70%),
    linear-gradient(180deg, #2a2e3a 0%, #1d2540 38%, #122035 72%, #0a1628 100%);
  position:relative;
}
.section.dark::before,
.spec-box::before,
footer::before{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340' viewBox='0 0 340 340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:0.38;
  mix-blend-mode:overlay;
  pointer-events:none;
  z-index:0;
}
.section.dark > *,
.spec-box > *,
footer > *{
  position:relative;
  z-index:1;
}

/* ───── Partner middle initials — the J · D · R of JDR ───── */
.partners-intro{font-size:11px;letter-spacing:0.26em;text-transform:uppercase;color:var(--muted);font-weight:200;margin:-28px 0 44px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.partners-intro .jdr-ltr{color:var(--gold);font-weight:300;font-size:13px;letter-spacing:0.2em;padding:0 4px}
.jdr-mi{color:var(--gold);font-weight:300;font-size:1.08em;letter-spacing:0.08em;padding:0 0.06em}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
