@font-face{font-family:'Cormorant Garamond';src:url('/assets/cormorant.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/cormorant-italic.woff2') format('woff2');font-weight:400 600;font-style:italic;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/inter.woff2') format('woff2');font-weight:400 650;font-style:normal;font-display:swap}

:root {
  --ink:#1C1B1A;
  --ivory:#F5EAE4;
  --paper:#FAF8F5;
  --taupe:#B9AFA0;
  --stone:#D8D1C7;
  --line:#D8D1C7;
  --muted:#5F574F;
  --serif:'Cormorant Garamond','Times New Roman',serif;
  --sans:Inter,'Helvetica Neue',Arial,sans-serif;
  --gutter:clamp(1.25rem,5.55vw,6.5rem);
  --header:76px;
}

*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header) + 1rem); }
body { margin:0; color:var(--ink); background:var(--paper); font:400 .94rem/1.75 var(--sans); }
img { display:block; max-width:100%; }
p,h1,h2,h3,figure { margin:0; }
a { color:inherit; }
button,input,select,textarea { font:inherit; }
button { color:inherit; }
button:enabled { cursor:pointer; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
::selection { color:var(--ink); background:var(--taupe); }
h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:.98; }
em { font-weight:400; }
.wrap { width:min(calc(100% - var(--gutter) * 2), 92rem); margin-inline:auto; }
.eyebrow { font:550 .67rem/1.5 var(--sans); letter-spacing:.19em; text-transform:uppercase; }
.text-link { display:inline-flex; width:fit-content; min-height:44px; align-items:center; gap:.75rem; border-bottom:1px solid currentColor; font-size:.69rem; font-weight:550; letter-spacing:.10em; text-transform:uppercase; line-height:1.4; text-decoration:none; transition:opacity .2s ease; }
.text-link:hover { opacity:.68; }
.text-link span { font:400 1rem/1 var(--sans); }
.image-frame { overflow:hidden; background:var(--stone); }
.image-frame img { width:100%; height:100%; object-fit:cover; }
.skip-link { position:fixed; top:.5rem; left:.75rem; z-index:20; transform:translateY(-150%); padding:.65rem 1rem; background:var(--ink); color:var(--paper); }
.skip-link:focus { transform:none; }

.site-header { position:sticky; inset-block-start:0; z-index:10; min-height:var(--header); background:var(--paper); color:var(--ink); border-bottom:1px solid #1c1b1a10; }
.header-inner { position:relative; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; column-gap:2rem; min-height:var(--header); }
.brand { display:inline-flex; width:fit-content; gap:.85rem; align-items:center; font:600 .78rem/1 var(--sans); letter-spacing:.20em; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
.brand img { width:42px; height:42px; }
.site-nav { display:flex; align-items:center; gap:clamp(1rem,2.15vw,2.25rem); }
.site-nav a { position:relative; display:inline-flex; align-items:center; min-height:44px; font:550 .65rem/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; }
.site-nav a::after { content:''; position:absolute; inset:auto 0 8px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .24s ease; }
.site-nav a:hover::after,.site-nav a[aria-current]::after { transform:scaleX(1); }
.header-contact { justify-self:end; display:inline-flex; align-items:center; gap:.8rem; min-height:38px; border:1px solid var(--line); padding:.4rem .86rem; font-size:.65rem; font-weight:550; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; white-space:nowrap; transition:background .2s,border-color .2s; }
.header-contact:hover { background:var(--ivory); border-color:var(--taupe); }
.header-contact span { font-size:.92rem; }
.menu-toggle { display:none; }

.hero { position:relative; isolation:isolate; display:grid; min-height:calc(100svh - var(--header)); background:#49453f; color:var(--paper); overflow:hidden; }
.hero-media,.hero-media img,.hero-wash { position:absolute; inset:0; width:100%; height:100%; }
.hero-media { z-index:-2; }
.hero-media img { object-fit:cover; object-position:center 53%; transform:translateY(var(--parallax,0px)) scale(1.045); }
.hero-wash { z-index:-1; background:linear-gradient(90deg,#181614b8 0%,#1816147d 31%,#18161425 65%,#18161408 100%),linear-gradient(0deg,#16141377,transparent 22%); }
.hero-inner { display:grid; grid-template-rows:1fr auto; padding-block:clamp(4.5rem,12vh,9rem) 1.8rem; }
.hero-copy { align-self:center; padding-bottom:clamp(2rem,8vh,6rem); }
.hero-kicker { font-size:.65rem; font-weight:500; letter-spacing:.19em; }
.hero h1 { margin-top:.18em; margin-left:-.045em; font-size:clamp(4.5rem,10.5vw,10.1rem); font-weight:500; letter-spacing:-.035em; line-height:.85; text-transform:uppercase; }
.hero-tagline { margin-top:.36em; font:italic 400 clamp(1.9rem,3.85vw,3.85rem)/1.03 var(--serif); }
.hero-intro { max-width:29rem; margin-top:1.48rem; font-size:clamp(.84rem,1.18vw,.99rem); line-height:1.65; color:#faf8f5ec; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.05rem 1.8rem; margin-top:1.9rem; }
.hero-button { display:inline-flex; gap:1.2rem; justify-content:space-between; align-items:center; min-height:49px; padding:.62rem 1rem; background:var(--ivory); color:var(--ink); border:1px solid var(--ivory); font-size:.68rem; font-weight:600; letter-spacing:.10em; line-height:1.3; text-decoration:none; text-transform:uppercase; transition:background .2s,color .2s; }
.hero-button:hover { background:var(--paper); }
.hero-button span { font-size:1rem; font-weight:400; }
.hero-button:focus-visible { outline-color:var(--paper); }
.hero-secondary { font-weight:500; }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.scroll-link,.hero-caption { font-size:.61rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase; }
.scroll-link { display:inline-flex; align-items:center; min-height:44px; gap:.72rem; text-decoration:none; }
.scroll-track { position:relative; width:1px; height:29px; overflow:hidden; background:#faf8f569; }
.scroll-track::before { content:''; position:absolute; inset:0 0 auto; height:14px; background:var(--paper); animation:scroll-track 2.5s ease-in-out infinite; }
@keyframes scroll-track { 0%,10%{transform:translateY(-100%)} 70%,100%{transform:translateY(210%)} }

.section-mark { display:flex; align-items:center; gap:1rem; }
.section-mark span { flex:1; height:1px; background:var(--line); }
.selected-work { padding-block:clamp(4.5rem,8vw,8rem) clamp(5.2rem,9.6vw,9rem); }
.selected-intro { display:grid; grid-template-columns:1.65fr .85fr; gap:clamp(1.25rem,7vw,8rem); align-items:end; margin:2.15rem 0 clamp(2.75rem,5vw,4.65rem); }
.selected-intro h2,.studio-intro h2,.home-team h2,.home-contact h2 { font-size:clamp(3.15rem,6.35vw,6.4rem); letter-spacing:-.042em; }
.selected-intro h2 { max-width:12em; }
.selected-intro h2 em { white-space:nowrap; }
.selected-aside p,.studio-intro-copy>p:not(.eyebrow),.updates-grid article>p:not(.eyebrow) { color:var(--muted); }
.selected-aside p { max-width:21rem; }
.selected-aside .text-link { margin-top:.55rem; }
.home-gallery { display:grid; grid-template-columns:1fr 1.35fr .9fr; gap:clamp(.9rem,2.3vw,2.5rem); align-items:start; }
.feature-card { display:block; text-decoration:none; }
.feature-card:nth-child(2) { margin-top:clamp(1.5rem,6vw,6rem); }
.feature-card:nth-child(3) { margin-top:clamp(.8rem,2.5vw,2.2rem); }
.feature-card .image-frame { aspect-ratio:4/5; }
.feature-card:nth-child(2) .image-frame { aspect-ratio:5/4; }
.feature-card:nth-child(3) .image-frame { aspect-ratio:4/5; }
.feature-card img { transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.feature-card:hover img { transform:scale(1.05); }
.feature-caption { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:.25rem .5rem; padding-top:.75rem; }
.feature-caption strong { font:500 clamp(1.42rem,2.25vw,2.1rem)/1 var(--serif); }
.feature-caption span { font-size:.61rem; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; }
.studio-intro { padding-block:clamp(3.5rem,8vw,8rem); background:var(--ivory); }
.studio-intro-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,8vw,9rem); align-items:center; }
.studio-intro-image { aspect-ratio:5/4; }
.studio-intro h2 { margin:.23em 0 .26em; }
.studio-intro-copy>p:not(.eyebrow) { max-width:26rem; }
.studio-intro-copy .text-link { margin-top:1.15rem; }
.home-team {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  align-items:center;
  gap:clamp(2rem,7vw,8rem);
  padding-block:clamp(4rem,8vw,7rem) 0;
}
.home-team-copy p { max-width:24rem; margin-top:1rem; color:var(--muted); }
.home-team-copy .text-link { margin-top:1.05rem; }
.home-team-members { margin:0; padding:0; list-style:none; border-block-start:1px solid var(--line); }
.home-team-member { display:flex; align-items:center; gap:1.1rem; padding-block:1rem; border-block-end:1px solid var(--line); }
.home-team-initials { display:grid; flex:none; place-items:center; width:3.45rem; aspect-ratio:1; background:var(--ivory); font:400 1.7rem/1 var(--serif); }
.home-team-member h3 { font-size:clamp(1.65rem,3vw,2.4rem); }
.home-team-member p { margin-top:.35rem; color:var(--muted); font-size:.76rem; }
.studio-updates { padding-block:clamp(4rem,7vw,6.7rem); }
.updates-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2.3rem; }
.updates-grid h2 { font-size:clamp(2.9rem,5vw,5rem); letter-spacing:-.035em; }
.updates-grid h3 { margin:.26em 0 .27em; font-size:clamp(1.95rem,3.15vw,3rem); }
.updates-grid .text-link { margin-top:.5rem; }
.home-contact { padding-block:clamp(4rem,8vw,8rem); background:var(--stone); text-align:center; }
.home-contact .text-link { margin-top:1.35rem; }

.site-footer { background:var(--ink); color:var(--paper); }
.footer-main { display:grid; grid-template-columns:1.45fr .8fr 1fr; gap:2rem 3rem; padding-block:clamp(3rem,6vw,5.9rem) clamp(2.2rem,4.8vw,4rem); }
.footer-brand { display:inline-flex; align-items:center; gap:.95rem; width:fit-content; font:500 clamp(1.9rem,4vw,3.7rem)/1 var(--serif); text-transform:uppercase; letter-spacing:-.02em; text-decoration:none; }
.footer-brand img { width:53px; height:53px; }
.footer-intro p { margin-top:.63rem; color:var(--stone); font-size:.83rem; }
.footer-group .eyebrow { margin-bottom:.65rem; }
.footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.3rem .75rem; }
.footer-links a,.footer-connect a { font-size:.82rem; text-decoration-color:transparent; text-underline-offset:.18em; transition:text-decoration-color .2s ease; }
.footer-links a:hover,.footer-connect a:hover { text-decoration-color:currentColor; }
.footer-connect a { display:inline-flex; align-items:center; gap:.55rem; width:fit-content; min-height:31px; }
.footer-socials { display:flex; flex-wrap:wrap; gap:.3rem 1rem; margin-top:.45rem; }
.social-icon { display:inline-grid; place-items:center; flex:none; width:1rem; height:1rem; font-size:.7rem; font-weight:650; line-height:1; }
.social-icon.instagram { position:relative; border:1px solid currentColor; border-radius:4px; }
.social-icon.instagram::before { content:''; width:6px; height:6px; border:1px solid currentColor; border-radius:50%; }
.social-icon.instagram::after { content:''; position:absolute; top:2px; right:2px; width:2px; height:2px; border-radius:50%; background:currentColor; }
.social-icon.linkedin { border:1px solid currentColor; border-radius:2px; }
.footer-bottom { padding-block:1.2rem; border-top:1px solid #faf8f53b; color:var(--stone); font-size:.69rem; letter-spacing:.055em; }

[data-reveal].awaiting-reveal { opacity:0; transform:translateY(12px); }
[data-reveal] { transition:opacity .75s ease, transform .85s cubic-bezier(.2,.6,.2,1); }

@media (max-width:900px) {
  :root { --header:66px; }
  .header-inner { column-gap:1.1rem; }
  .brand { gap:.55rem; }
  .brand img { width:37px; height:37px; }
  .site-nav { gap:.9rem; }
  .header-contact { padding-inline:.6rem; gap:.43rem; }
  .selected-intro { gap:1.5rem; }
  .selected-intro h2 em { white-space:normal; }
}

@media (max-width:720px) {
  :root { --header:62px; }
  .header-inner { grid-template-columns:1fr auto; }
  .header-contact { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; gap:.62rem; border:0; background:none; min-width:44px; min-height:44px; padding:0; font:550 .68rem/1 var(--sans); letter-spacing:.13em; text-transform:uppercase; }
  .menu-glyph { position:relative; width:18px; height:11px; }
  .menu-glyph::before,.menu-glyph::after { position:absolute; content:''; inset:0 0 auto; height:1px; background:currentColor; transition:transform .2s,top .2s; }
  .menu-glyph::after { top:9px; }
  .menu-toggle[aria-expanded='true'] .menu-glyph::before { top:5px; transform:rotate(45deg); }
  .menu-toggle[aria-expanded='true'] .menu-glyph::after { top:5px; transform:rotate(-45deg); }
  .site-nav { display:none; position:absolute; inset:100% calc(-1 * var(--gutter)) auto; flex-direction:column; align-items:stretch; gap:0; padding:0 var(--gutter) 1.2rem; background:var(--paper); border-bottom:1px solid var(--line); }
  .site-nav.is-open { display:flex; }
  .site-nav a { border-top:1px solid var(--line); min-height:48px; }
  .site-nav a::after { right:auto; width:1.4rem; }
  .hero-inner { padding-top:clamp(3.75rem,10vh,6rem); }
  .hero-media img { object-position:67% center; }
  .hero-wash { background:linear-gradient(90deg,#181614b3,#18161442 87%),linear-gradient(0deg,#16141380,transparent 26%); }
  .hero h1 { font-size:clamp(3.2rem,13.2vw,6.4rem); }
  .hero-kicker { font-size:.57rem; letter-spacing:.12em; }
  .hero-intro { max-width:25rem; }
  .hero-actions { column-gap:1rem; }
  .hero-caption,.scroll-link { font-size:.53rem; }
  .selected-intro,.studio-intro-grid,.home-team,.updates-grid { grid-template-columns:1fr; }
  .home-gallery { grid-template-columns:1fr 1fr; row-gap:1.75rem; }
  .feature-card:nth-child(2) { margin-top:2.1rem; }
  .feature-card:nth-child(3) { margin:0 0 0 12%; grid-column:1 / -1; width:62%; }
  .feature-card:nth-child(3) .image-frame { aspect-ratio:6/5; }
  .footer-main { grid-template-columns:1fr 1fr; gap:1.7rem 1.2rem; }
  .footer-intro { grid-column:1/-1; }
  .footer-links { grid-template-columns:1fr; }
  .footer-brand img { width:44px; height:44px; }
  .desktop-break { display:none; }
  .site-header:has(.menu-toggle[hidden]) { position:static; }
  .site-header:has(.menu-toggle[hidden]) .site-nav { display:flex; position:static; grid-column:1/-1; flex-direction:row; flex-wrap:wrap; padding:0; column-gap:.75rem; border:0; }
  .site-header:has(.menu-toggle[hidden]) .site-nav a { border:0; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001s !important; transition-duration:.001s !important; }
  .hero-media img { transform:none; }
  [data-reveal].awaiting-reveal { opacity:1; transform:none; }
}

@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:.25s; }
