:root{--ink:#14222b;--ink2:#0e1a21;--cream:#f4efe4;--cream2:#ebe5d6;--accent:#a8bdcb;--accent-d:#4d6b7f;--line:rgba(168,189,203,.28);--hair:rgba(20,34,43,.16)}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:'Figtree',system-ui,sans-serif;font-weight:300;font-size:1.04rem;line-height:1.75;color:var(--ink);background:var(--cream);overflow-x:hidden}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;font-weight:300;line-height:1.12}
h2{font-size:clamp(2.1rem,4.4vw,3.2rem);margin-bottom:1.2rem}
h3{font-size:1.45rem}
em{font-style:italic}
.eyebrow,.btn,.nav-link,.caps{font-size:.68rem;text-transform:uppercase;letter-spacing:.28em;font-weight:500}
.eyebrow{display:block;color:var(--accent-d);margin-bottom:1rem}
.on-dark .eyebrow,.hero .eyebrow{color:var(--accent)}
section{padding:96px 0}
@media(max-width:767px){section{padding:64px 0}}
.lead-in{max-width:820px}

/* nav (c): centered name stacked above links */
.navbar{background:rgba(14,26,33,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.9rem 0 .5rem;border-bottom:1px solid var(--line)}
.navbar.navbar-expand-lg .container{flex-direction:column;align-items:center}
.navbar-brand{margin:0;text-align:center;color:var(--cream)!important;font-family:'Fraunces',serif;font-weight:300;font-size:1.25rem;letter-spacing:.2em;text-transform:uppercase;line-height:1.2;white-space:normal}
.navbar-brand small{display:block;font-family:'Figtree',sans-serif;font-size:.58rem;letter-spacing:.34em;color:var(--accent);margin-top:.2rem}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;flex-grow:0}
.navbar .nav-link{color:rgba(244,239,228,.8);padding:.7rem 1.1rem;transition:.3s}
.navbar .nav-link:hover{color:#fff;opacity:1}
.navbar-toggler{border:1px solid var(--line);position:absolute;right:12px;top:14px;padding:.35rem .6rem}
.navbar-toggler-icon{filter:invert(1)}
@media(max-width:991px){.navbar-brand{font-size:.95rem;letter-spacing:.14em;padding-right:48px;padding-left:48px}.navbar-collapse{border-top:1px solid var(--line);margin-top:.6rem;text-align:center;width:100%}}

/* buttons */
.btn{border-radius:0;padding:15px 40px;transition:.3s}
.btn-accent{background:var(--accent);color:var(--ink2);border:1px solid var(--accent)}
.btn-accent:hover{background:transparent;color:var(--accent)}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid rgba(244,239,228,.4)}
.btn-ghost:hover{border-color:var(--cream);color:#fff}
.btn-ink{background:var(--ink);color:var(--cream);border:1px solid var(--ink)}
.btn-ink:hover{background:transparent;color:var(--ink)}

/* hero */
.hero{position:relative;color:var(--cream);text-align:center;padding:0;min-height:min(86vh,760px);display:flex;align-items:center;
 background:radial-gradient(ellipse 75% 65% at 50% 48%,rgba(0,0,0,.35) 0%,rgba(0,0,0,.04) 100%),linear-gradient(to bottom,rgba(14,26,33,.34) 0%,rgba(14,26,33,.10) 45%,rgba(14,26,33,.5) 100%),url('img/hero.webp') center 55%/cover no-repeat}
.hero-content{max-width:860px;margin:0 auto;padding:56px 36px;background:rgba(0,0,0,.20);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hero .eyebrow{text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.8)}
.hero h1{font-size:clamp(2.6rem,5.5vw,4.6rem);text-shadow:0 0 4px rgba(0,0,0,1),0 2px 20px rgba(0,0,0,.95),0 0 60px rgba(0,0,0,.8)}
.hero .sub{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.1rem,2vw,1.45rem);letter-spacing:.02em;opacity:.92;margin:1.2rem 0 2rem;text-shadow:0 0 3px rgba(0,0,0,1),0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.85)}
.hero .btn-ghost{margin-left:.6rem}
@media(max-width:575px){.hero .btn{display:block;margin:.6rem 0!important}.hero-content{padding:36px 20px}}

/* signature: the hull from the logo */
.hull{display:block;margin:0 auto;color:var(--accent);opacity:.7}
.hull-divider{background:var(--ink);padding:34px 0}
.hull-divider svg{width:120px;height:auto}

/* services index */
.svc-list{border-top:1px solid var(--hair)}
.svc{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2fr);gap:2rem;padding:2rem 0;border-bottom:1px solid var(--hair)}
.svc h3{margin:0}
.svc p{margin:0 0 .6rem}
.tags{font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;color:var(--accent-d);font-weight:500}
@media(max-width:767px){.svc{grid-template-columns:1fr;gap:.6rem}}

/* process */
.dark{background:var(--ink);color:var(--cream)}
.dark h2,.dark h3{color:var(--cream)}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line)}
.step{padding:1.8rem 1.4rem 0 0;border-right:1px solid var(--line);padding-left:1.4rem}
.step:first-child{padding-left:0}.step:last-child{border-right:0}
.step .n{font-family:'Fraunces',serif;font-size:2rem;color:var(--accent);display:block;margin-bottom:.4rem}
.step h3{font-size:1.05rem;letter-spacing:.02em}
.step p{font-size:.92rem;opacity:.82;margin:0}
@media(max-width:991px){.steps{grid-template-columns:1fr}.step,.step:first-child{padding:1.4rem 0;border-right:0;border-bottom:1px solid var(--line)}}

/* about / team */
.frame{border:1px solid var(--accent-d);padding:10px}
.frame img{display:block;width:100%}
.team-img{aspect-ratio:920/575;object-fit:cover}
.office-img{aspect-ratio:540/552;object-fit:cover}
.roster{list-style:none;padding:0;margin:2.2rem 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair)}
.roster li{padding:1.2rem 1rem 1.2rem 0;border-bottom:1px solid var(--hair)}
.roster b{font-family:'Fraunces',serif;font-weight:400;font-size:1.2rem;display:block}
.roster span{font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:var(--accent-d);font-weight:500}
@media(max-width:767px){.roster{grid-template-columns:1fr}}

/* tools band */
.band{background:var(--cream2);padding:72px 0}
.tool{border:1px solid var(--hair);padding:2rem;height:100%}
.tool h3{font-size:1.3rem}
.tool a.caps{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent-d);padding-bottom:3px}

/* contact */
.contact dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.26em;color:var(--accent);font-weight:500;margin-top:1.4rem}
.contact dd{margin:0;font-size:1.1rem}
.contact a{color:var(--cream);text-decoration:none;border-bottom:1px solid var(--line)}
.map{border:1px solid var(--accent-d);padding:8px}
.map iframe{width:100%;height:380px;border:0;display:block;filter:grayscale(.4)}

footer{background:var(--ink2);color:rgba(244,239,228,.7);padding:56px 0 40px;font-size:.82rem;line-height:1.7}
footer a{color:var(--accent);text-decoration:none}
.logo-chip{display:inline-block;background:var(--cream);padding:8px 14px}
.logo-chip img{display:block;width:210px;height:auto}
.legal{font-size:.74rem;opacity:.7;max-width:900px}
.powered{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.2rem}
