@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600&family=DM+Serif+Display:ital@0;1&display=swap');

:root{
  --bg:#0a0a09;
  --bg-soft:#10100f;
  --panel:#131311;
  --text:#f3efe7;
  --muted:#aaa59a;
  --line:rgba(224,204,169,.19);
  --line-strong:rgba(224,204,169,.42);
  --accent:#c7a26a;
  --accent-soft:#dfc9a8;
  --max:1440px;
  --gutter:clamp(20px,4vw,64px);
  --section:clamp(92px,10vw,170px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,Arial,sans-serif;font-weight:300;line-height:1.55;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{width:100%;display:block}button,input,textarea,select{font:inherit}.site{overflow:hidden}.wrap{width:min(var(--max),calc(100% - (var(--gutter)*2)));margin-inline:auto}.eyebrow{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent-soft);font-weight:500}.display{font-size:clamp(52px,7vw,118px);line-height:.92;letter-spacing:-.055em;font-weight:300;margin:0}.display em{font-family:'DM Serif Display',serif;font-weight:400;color:var(--accent);letter-spacing:-.02em}.title{font-size:clamp(38px,4.2vw,72px);line-height:1;letter-spacing:-.045em;font-weight:300;margin:0}.lede{font-size:clamp(18px,1.5vw,24px);line-height:1.5;color:#d9d4c9;max-width:740px}.copy{color:var(--muted);max-width:680px}.micro{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#8f8a80}.rule{height:1px;background:var(--line)}

.header{height:78px;position:fixed;inset:0 0 auto;z-index:50;background:linear-gradient(to bottom,rgba(8,8,7,.94),rgba(8,8,7,.74),transparent);backdrop-filter:blur(10px)}.header .wrap{width:100%;max-width:none;padding-inline:clamp(28px,3vw,64px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;flex-direction:column;gap:3px;min-width:max-content}.brand-name{font-size:18px;letter-spacing:.23em;font-weight:500}.brand-sub{font-size:8px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}.nav{display:flex;align-items:center;gap:28px}.nav>a,.drop-toggle{font-size:12px;color:#ddd7cc;position:relative;padding:24px 0;background:none;border:0;cursor:pointer}.nav>a:after,.drop-toggle:after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:1px;background:var(--accent);transition:right .35s var(--ease)}.nav>a:hover:after,.drop:hover .drop-toggle:after{right:0}.drop{position:relative}.drop-menu{position:absolute;top:64px;right:-18px;min-width:260px;background:#0d0d0c;border:1px solid var(--line);padding:14px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}.drop:hover .drop-menu,.drop:focus-within .drop-menu{opacity:1;visibility:visible;transform:none}.drop-menu a{display:flex;justify-content:space-between;padding:13px 12px;color:#cbc5ba;font-size:12px;border-bottom:1px solid rgba(255,255,255,.05)}.drop-menu a:last-child{border:0}.drop-menu a:hover{color:var(--text);background:#141411}.header-cta{border:1px solid var(--line-strong);padding:11px 17px!important;letter-spacing:.14em;text-transform:uppercase;font-size:10px!important}.header-cta:after{display:none!important}.menu-btn{display:none;background:none;border:0;color:white;padding:12px}.menu-btn span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0}

.hero{min-height:100svh;display:grid;grid-template-columns:clamp(600px,34vw,720px) minmax(0,1fr);padding-top:78px;border-bottom:1px solid var(--line)}.hero-copy{padding:clamp(70px,9vh,130px) clamp(42px,3.2vw,64px) 50px clamp(42px,3.2vw,64px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 20% 30%,rgba(199,162,106,.08),transparent 45%)}.hero-copy .eyebrow{margin-bottom:28px}.hero-copy .lede{margin:32px 0 38px}.hero-meta{display:flex;gap:28px;margin-top:64px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}.hero-meta span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#a9a499}.hero-media{position:relative;min-height:660px}.hero-media picture,.hero-media img{height:100%;object-fit:cover}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,9,.32),transparent 30%,rgba(10,10,9,.12)),linear-gradient(0deg,rgba(10,10,9,.48),transparent 35%)}.hero-note{position:absolute;z-index:2;right:clamp(22px,4vw,64px);bottom:40px;width:180px;padding-left:20px;border-left:1px solid var(--line-strong);font-size:10px;letter-spacing:.22em;line-height:1.9;text-transform:uppercase;color:#d8d2c7}.btn{display:inline-flex;align-items:center;gap:16px;border:1px solid var(--line-strong);padding:15px 20px;width:max-content;text-transform:uppercase;font-size:10px;letter-spacing:.19em;transition:.3s var(--ease)}.btn:after{content:"↗";font-size:14px}.btn:hover{background:var(--text);color:#111;border-color:var(--text)}.btn.ghost{border-color:var(--line)}

.section{padding:var(--section) 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end;margin-bottom:64px}.section-head .copy{justify-self:end}.statement{display:grid;grid-template-columns:1.15fr .85fr;min-height:660px;border-bottom:1px solid var(--line)}.statement-media{min-height:600px}.statement-media img{height:100%;object-fit:cover}.statement-copy{padding:var(--section) var(--gutter);display:flex;flex-direction:column;justify-content:center;background:var(--bg-soft)}.statement-copy .eyebrow{margin-bottom:22px}.statement-copy .title{margin-bottom:28px}.statement-copy .copy{font-size:16px}.statement-copy .btn{margin-top:30px}

.service-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{padding:30px 24px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:330px;display:flex;flex-direction:column;gap:20px;transition:.35s var(--ease)}.service-card:hover{background:#11110f;transform:translateY(-3px)}.service-number{font-size:10px;letter-spacing:.2em;color:var(--accent)}.service-icon{width:42px;height:42px;stroke:var(--accent-soft);fill:none;stroke-width:1.3}.service-card h3{font-size:18px;font-weight:400;letter-spacing:-.02em;margin:6px 0 0}.service-card p{font-size:13px;color:var(--muted);margin:0}.text-link{margin-top:auto;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft)}

.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}.project-card{grid-column:span 4}.project-card.wide{grid-column:span 6}.project-image{aspect-ratio:4/3;overflow:hidden;background:#161614}.project-image img{height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .8s var(--ease)}.project-card:hover img{transform:scale(1.025);filter:saturate(.9)}.project-meta{padding:18px 2px}.project-meta h3{font-weight:300;font-size:20px;margin:4px 0 8px;letter-spacing:-.02em}.project-meta p{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8f8a80;margin:0}.concept-badge{display:inline-block;margin-top:10px;font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--accent);border-top:1px solid var(--line-strong);padding-top:8px}

.split-band{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.split-panel{padding:clamp(70px,8vw,140px) var(--gutter)}.split-panel:first-child{background:#0d0d0c}.split-panel:last-child{background:#121210;border-left:1px solid var(--line)}.split-panel .title{max-width:650px}.split-panel .copy{margin-top:28px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:55px;border-top:1px solid var(--line)}.metric{padding:24px 20px 0 0}.metric strong{font-size:28px;font-weight:300;display:block}.metric span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}

.page-hero{min-height:82svh;position:relative;padding-top:78px;display:flex;align-items:end;border-bottom:1px solid var(--line);overflow:hidden}.page-hero picture,.page-hero>img{position:absolute;inset:0;width:100%;height:100%}.page-hero picture{display:block;overflow:hidden}.page-hero picture img,.page-hero>img{width:100%;height:100%;object-fit:cover;object-position:center center}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.83) 0%,rgba(5,5,5,.54) 38%,rgba(5,5,5,.1) 72%),linear-gradient(0deg,rgba(5,5,5,.78),transparent 50%)}.page-hero-inner{position:relative;z-index:2;padding:120px 0 70px}.page-hero .display{max-width:900px;font-size:clamp(58px,7vw,110px)}.page-hero .lede{margin:28px 0 0}.page-index{font-size:10px;letter-spacing:.2em;color:var(--accent);margin-bottom:18px}.service-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.service-intro .title{max-width:500px}.service-intro-right{display:grid;grid-template-columns:1fr 1fr;gap:40px}.service-intro-right p{margin:0;color:var(--muted)}.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.capability{background:var(--bg);padding:42px 34px;min-height:280px}.capability span{font-size:10px;color:var(--accent);letter-spacing:.18em}.capability h3{font-size:24px;font-weight:300;margin:22px 0 12px}.capability p{font-size:14px;color:var(--muted);margin:0}.feature{display:grid;grid-template-columns:1.1fr .9fr;min-height:700px;border-bottom:1px solid var(--line)}.feature.reverse{grid-template-columns:.9fr 1.1fr}.feature.reverse .feature-media{order:2}.feature-media img{height:100%;object-fit:cover}.feature-copy{padding:var(--section) var(--gutter);display:flex;flex-direction:column;justify-content:center}.feature-copy .title{margin:18px 0 28px}.feature-list{margin-top:34px;border-top:1px solid var(--line)}.feature-list div{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px;color:#c9c3b8}.feature-list span:last-child{color:#77736b}.cta{position:relative;min-height:520px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.cta>img{position:absolute;inset:0;height:100%;object-fit:cover;filter:saturate(.85)}.cta:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,6,.88),rgba(7,7,6,.42),rgba(7,7,6,.7))}.cta-inner{position:relative;z-index:2}.cta .title{max-width:780px}.cta .copy{font-size:17px;margin:26px 0 32px;color:#d5cfc4}

.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}.about-sticky{position:sticky;top:110px}.about-sticky img{aspect-ratio:4/5;object-fit:cover}.about-copy .title{margin:16px 0 34px}.about-copy .lede{margin-bottom:34px}.about-copy p{color:var(--muted);font-size:16px;max-width:760px}.principles{margin-top:60px;border-top:1px solid var(--line)}.principle{display:grid;grid-template-columns:80px 1fr;gap:28px;padding:28px 0;border-bottom:1px solid var(--line)}.principle b{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:500}.principle h3{margin:0 0 8px;font-weight:300;font-size:26px}.principle p{margin:0;font-size:14px}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.contact-details{padding-top:20px}.contact-details .title{margin:16px 0 30px}.detail-row{padding:20px 0;border-top:1px solid var(--line)}.detail-row span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin-bottom:7px}.detail-row p{margin:0;color:#d6d0c6}.form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:#a39e94}.field input,.field textarea,.field select{background:transparent;border:0;border-bottom:1px solid var(--line-strong);color:var(--text);padding:14px 0;outline:0}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent)}.field select option{background:#111;color:white}.form .btn{margin-top:18px;background:transparent;color:var(--text);cursor:pointer}.form-status{grid-column:1/-1;font-size:12px;color:var(--accent-soft)}

.footer{padding:55px 0 28px;background:#080807}.footer-top{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}.footer-links{display:flex;gap:24px;justify-content:flex-end;flex-wrap:wrap}.footer-links a{font-size:11px;color:#a9a499}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#77736b}

/* Content visibility must never depend on JavaScript. */
.reveal,.reveal.in{opacity:1;transform:none}

@media(max-width:1050px){.nav{gap:18px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{min-height:72svh;padding-top:130px}.hero-media{height:68svh;min-height:520px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card:last-child{grid-column:span 2}.statement,.feature,.feature.reverse{grid-template-columns:1fr}.feature.reverse .feature-media{order:0}.statement-media,.feature-media{min-height:60svh}.section-head,.service-intro,.about-grid,.contact-grid{grid-template-columns:1fr;gap:50px}.section-head .copy{justify-self:start}.service-intro-right{grid-template-columns:1fr 1fr}.about-sticky{position:static}.about-sticky img{max-height:700px}.project-card{grid-column:span 6}.split-band{grid-template-columns:1fr}.split-panel:last-child{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:760px){.header{height:68px}.header-inner{height:68px}.brand-name{font-size:14px}.brand-sub{font-size:7px}.menu-btn{display:block}.nav{position:fixed;inset:68px 0 0;background:#090908;display:flex;flex-direction:column;align-items:stretch;padding:28px var(--gutter);gap:0;transform:translateX(100%);transition:transform .35s var(--ease)}.menu-open .nav{transform:none}.nav>a,.drop-toggle{display:block;width:100%;text-align:left;padding:18px 0;border-bottom:1px solid var(--line);font-size:15px}.nav>a:after,.drop-toggle:after{display:none}.drop-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;padding:0 0 10px 14px;display:none}.drop.open .drop-menu{display:block}.drop-menu a{font-size:13px;padding:12px 0}.header-cta{margin-top:18px;width:max-content!important;padding:12px 16px!important}.hero{padding-top:68px}.hero-copy{min-height:68svh;padding:110px var(--gutter) 45px}.hero-copy .lede{margin:26px 0 30px}.hero-meta{margin-top:44px}.hero-media{height:62svh;min-height:460px}.display{font-size:clamp(46px,14vw,70px)}.title{font-size:clamp(34px,10vw,52px)}.section{padding:82px 0}.statement-copy,.feature-copy{padding:82px var(--gutter)}.service-grid{grid-template-columns:1fr}.service-card:last-child{grid-column:auto}.service-card{min-height:230px}.project-grid{grid-template-columns:1fr}.project-card,.project-card.wide{grid-column:1}.section-head{margin-bottom:40px}.service-intro-right{grid-template-columns:1fr}.capabilities{grid-template-columns:1fr}.capability{min-height:auto}.page-hero{min-height:76svh;padding-top:68px}.page-hero-inner{padding:120px 0 50px}.page-hero .display{font-size:clamp(52px,14vw,76px)}.form{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-top{grid-template-columns:1fr}.footer-links{justify-content:flex-start}.footer-bottom{flex-direction:column}.metrics{grid-template-columns:1fr}.metric{padding-top:18px}.statement-media,.feature-media{min-height:52svh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}

/* Projects page isolation: prevent the full-bleed hero artwork from visually bleeding into the portfolio grid. */
.projects-page .page-hero{
  height:clamp(560px,72svh,780px);
  min-height:0;
  max-height:780px;
  isolation:isolate;
  contain:paint;
  z-index:0;
}
.projects-page .page-hero picture{
  overflow:hidden;
  clip-path:inset(0);
}
.projects-page .page-hero picture img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.projects-page main>.section{
  position:relative;
  z-index:2;
  background:var(--bg);
  isolation:isolate;
}
.projects-page .project-grid{
  position:relative;
  z-index:3;
}
@media(max-width:1050px){
  .projects-page .page-hero{
    height:68svh;
    min-height:560px;
    max-height:none;
  }
}
@media(max-width:760px){
  .projects-page .page-hero{
    height:70svh;
    min-height:520px;
  }
}

/* v1.5 — Mobile navigation opacity / Safari compositing fix */
@media (max-width:760px){
  .header{
    background:#090908 !important;
    background-color:#090908 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  body.menu-open .header{
    background:#090908 !important;
    background-color:#090908 !important;
  }
  .nav{
    position:fixed !important;
    top:68px !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    width:100vw !important;
    height:calc(100dvh - 68px) !important;
    min-height:calc(100svh - 68px) !important;
    background:#090908 !important;
    background-color:#090908 !important;
    opacity:1 !important;
    z-index:999 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    box-shadow:none !important;
    isolation:isolate;
  }
  .nav::after{
    content:"";
    position:fixed;
    inset:68px 0 0;
    background:#090908;
    z-index:-1;
    pointer-events:none;
  }
  .menu-open .nav{
    transform:translateX(0) !important;
  }
  .nav>a,.drop-toggle{
    position:relative;
    z-index:1;
  }
  .drop,.drop-menu{
    position:relative;
    z-index:1;
  }
}

/* V1.6 — Contact form human-verification challenge */
.challenge-field{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(110px,150px);
  gap:18px 28px;
  align-items:end;
  margin-top:4px;
  padding:20px 0 8px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.challenge-copy{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.challenge-kicker{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.challenge-copy label{font-size:11px;letter-spacing:.08em;color:#d7d1c6}
.challenge-copy label strong{font-weight:400;color:var(--text);margin-left:8px;font-size:14px;letter-spacing:.04em}
.challenge-refresh{padding:0;background:transparent;border:0;color:#8f8a80;font-size:9px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.challenge-refresh:hover{color:var(--accent-soft)}
.challenge-field input{
  width:100%;
  background:transparent;
  border:1px solid var(--line-strong);
  color:var(--text);
  padding:13px 14px;
  outline:0;
  text-align:center;
  font-size:16px;
}
.challenge-field input:focus{border-color:var(--accent)}
.challenge-field input:disabled{opacity:.45;cursor:wait}
.challenge-help{grid-column:1/-1;font-size:9px;letter-spacing:.08em;color:#77736b}
.form .btn:disabled{opacity:.45;cursor:wait}

@media(max-width:760px){
  .challenge-field{grid-template-columns:1fr;gap:14px;padding:18px 0 6px}
  .challenge-field input{max-width:150px;text-align:left}
  .challenge-help{grid-column:auto}
}
