@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

:root{
  --ink:#171815;
  --forest:#202a25;
  --forest-2:#28342e;
  --ivory:#f2eee6;
  --paper:#e8e1d7;
  --stone:#b9b0a3;
  --muted:#706b63;
  --line:rgba(23,24,21,.18);
  --light-line:rgba(242,238,230,.2);
  --max:1240px;
  --gutter:clamp(22px,4vw,64px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;image-orientation:from-image}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
::selection{background:#cfc4b5;color:#111}

.skip-link{position:fixed;left:16px;top:-100px;background:var(--ivory);padding:10px 16px;z-index:9999;border:1px solid var(--ink)}
.skip-link:focus{top:16px}
.shell{width:min(var(--max),calc(100% - var(--gutter)*2));margin:0 auto}
.kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;margin:0 0 22px}
.kicker.light{color:rgba(242,238,230,.75)}
.display{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:.96;letter-spacing:-.03em;margin:0;font-size:clamp(3.3rem,7vw,7.8rem)}
.display.medium{font-size:clamp(2.6rem,5vw,5.6rem)}
.copy{max-width:660px;font-size:clamp(1rem,1.25vw,1.18rem);color:var(--muted)}
.light-copy{color:rgba(242,238,230,.76)}

.site-header{position:fixed;inset:0 0 auto;z-index:1000;color:var(--ivory);mix-blend-mode:difference;pointer-events:none}
.nav{height:90px;display:flex;align-items:center;justify-content:space-between;gap:30px;pointer-events:auto}
.brand{font-size:.8rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:32px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.nav-links a{position:relative;padding:6px 0}
.nav-links a:after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:.3s ease}
.nav-links a:hover:after,.nav-links a[aria-current='page']:after{right:0}
.nav-cta{border:1px solid currentColor;padding:10px 15px!important}
.nav-cta:after{display:none}
.menu-btn{display:none;background:none;border:0;color:inherit;padding:8px;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}

.hero{min-height:100svh;position:relative;overflow:hidden;background:#1d211f;color:var(--ivory);display:grid;align-items:end}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:-3%;opacity:0;transition:opacity 1.2s ease,transform 7s ease;transform:scale(1.03);background-position:center;background-size:cover}
.hero-slide.active{opacity:1;transform:scale(1.09)}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,12,10,.1) 22%,rgba(9,12,10,.28) 58%,rgba(9,12,10,.72) 100%)}
.hero-content{position:relative;z-index:2;padding:150px 0 66px}
.hero-title{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:.78;letter-spacing:-.055em;font-size:clamp(5.2rem,15vw,13rem);margin:12px 0 28px}
.hero-tagline{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.35rem,2.4vw,2.2rem);font-style:italic;margin:0 0 34px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border:1px solid var(--ink);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;transition:.25s ease}
.btn.light{border-color:var(--ivory);background:var(--ivory);color:var(--ink)}
.btn.outline-light{border-color:rgba(242,238,230,.75);color:var(--ivory)}
.btn.dark{background:var(--ink);color:var(--ivory)}
.btn:hover{transform:translateY(-2px)}
.scroll-note{position:absolute;z-index:2;right:var(--gutter);bottom:72px;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;writing-mode:vertical-rl;color:rgba(242,238,230,.7)}

.band{background:var(--forest);color:var(--ivory);padding:clamp(90px,11vw,150px) 0}
.band-grid{display:grid;grid-template-columns:.8fr 1.6fr;gap:8vw;align-items:start}
.band .display{font-size:clamp(3.3rem,7vw,7rem)}

.section{padding:clamp(90px,10vw,145px) 0}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end;margin-bottom:60px}
.section-head .copy{justify-self:end}
.text-link{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px}

.feature-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:stretch}
.feature-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.media{overflow:hidden;position:relative;background:#ddd}
.media img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.65,.25,1)}
.media:hover img{transform:scale(1.025)}
.feature-main{min-height:680px}
.feature-small{min-height:330px}

.experience{padding:clamp(95px,11vw,150px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.experience-top{display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;margin-bottom:72px}
.experience-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(3rem,6vw,6.2rem);font-weight:500;line-height:.96;letter-spacing:-.03em;margin:0 0 28px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.step{padding:32px 32px 12px 0;border-right:1px solid var(--line);min-height:240px}
.step+.step{padding-left:32px}
.step:last-child{border-right:0}
.step-num{display:block;font-size:.7rem;letter-spacing:.16em;color:var(--muted);margin-bottom:62px}
.step h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.8rem;font-weight:500;margin:0 0 12px}
.step p{font-size:.95rem;color:var(--muted);margin:0}

.about-split{display:grid;grid-template-columns:1fr 1fr;min-height:740px}
.about-image img{height:100%;object-fit:cover}
.about-copy-panel{background:var(--forest);color:var(--ivory);padding:clamp(60px,8vw,120px);display:flex;flex-direction:column;justify-content:center}
.about-copy-panel .display{font-size:clamp(3.1rem,6vw,6.4rem)}

.cta{padding:clamp(100px,12vw,165px) 0;text-align:center}
.cta .display{max-width:900px;margin:0 auto 26px}
.cta .copy{margin:0 auto 35px}
.footer{background:var(--ink);color:var(--ivory);padding:34px 0}
.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(242,238,230,.72)}

.page-hero{padding:175px 0 90px;border-bottom:1px solid var(--line)}
.page-hero-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:8vw;align-items:end}
.page-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(4.4rem,9vw,9.5rem);font-weight:500;line-height:.88;letter-spacing:-.045em;margin:0 0 28px}
.page-lede{font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:700px;color:var(--muted)}
.side-note{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-style:italic;color:var(--muted);padding-bottom:12px}

.jump-nav{display:flex;flex-wrap:wrap;gap:10px;padding:24px 0;border-bottom:1px solid var(--line)}
.jump-nav a{border:1px solid var(--line);padding:10px 13px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}

.portfolio-section{padding:100px 0 125px;scroll-margin-top:90px}
.portfolio-section+.portfolio-section{border-top:1px solid var(--line)}
.pf-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(3rem,5.5vw,5.5rem);font-weight:500;margin:0 0 42px;line-height:1}
.pf-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;grid-auto-rows:120px}
.pf-card{border:0;padding:0;cursor:zoom-in;background:#ddd;overflow:hidden;position:relative}
.pf-card img{height:100%;object-fit:cover;transition:transform .7s ease}
.pf-card:hover img{transform:scale(1.025)}
.orientation-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.corrected-photo{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.pf-card:hover .corrected-photo{transform:scale(1.025)}
.pf-card:nth-child(1){grid-column:span 7;grid-row:span 5}
.pf-card:nth-child(2){grid-column:span 5;grid-row:span 3}
.pf-card:nth-child(3){grid-column:span 5;grid-row:span 4}
.pf-card:nth-child(4){grid-column:span 7;grid-row:span 4}
.pf-card:nth-child(5){grid-column:span 5;grid-row:span 4}

.dark-cta{background:var(--forest);color:var(--ivory);padding:110px 0}
.dark-cta .display{font-size:clamp(3.5rem,7vw,7rem);max-width:900px;margin-bottom:35px}

.lightbox{position:fixed;inset:0;background:rgba(10,12,10,.94);z-index:3000;display:none;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox img{max-height:88vh;max-width:92vw;width:auto;height:auto;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.lightbox img.rotated-lightbox{max-height:82vw;max-width:82vh}
.lightbox-close{position:absolute;top:24px;right:28px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;width:44px;height:44px;font-size:22px;cursor:pointer}

.about-intro{padding:120px 0}
.about-intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center}
.about-intro-image{min-height:720px}
.about-intro-image img{height:100%;object-fit:cover}
.archive-strip{background:var(--paper);padding:70px 0}
.archive-images{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:16px;margin-top:34px}
.archive-images .media{min-height:360px}
.services{padding:110px 0}
.service-list{border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:100px 1fr;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
.service-index{font-size:.72rem;letter-spacing:.15em;color:var(--muted)}
.service-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2rem,4vw,4rem)}

.inquire-hero{padding:175px 0 90px}
.inquire-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:8vw}
.inquire-side{border-left:1px solid var(--line);padding-left:35px;align-self:end;color:var(--muted);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.35rem;line-height:1.65}
.form-section{padding:20px 0 120px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 34px}
.field.full{grid-column:1/-1}
label{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px}
input,textarea,select{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 2px 14px;color:var(--ink);border-radius:0;outline:none}
textarea{min-height:135px;resize:vertical}
input:focus,textarea:focus,select:focus{border-bottom-color:var(--ink)}
.form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}
.form-note{color:var(--muted);font-size:.82rem;max-width:430px}
.form-status{grid-column:1/-1;padding:18px 0;display:none;border-top:1px solid var(--line);margin-top:8px}
.form-status.show{display:block}
.next{background:var(--forest);color:var(--ivory);padding:110px 0}
.next-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:52px;border-top:1px solid var(--light-line)}
.next-item{padding:28px 32px 10px 0;border-right:1px solid var(--light-line)}
.next-item+.next-item{padding-left:32px}
.next-item:last-child{border-right:0}
.next-num{font-size:.68rem;letter-spacing:.15em;color:rgba(242,238,230,.55);display:block;margin-bottom:55px}
.next-item h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.85rem;font-weight:500;margin:0 0 12px}
.next-item p{color:rgba(242,238,230,.68);font-size:.93rem;max-width:300px}

@media(max-width:900px){
  .site-header{mix-blend-mode:normal;background:rgba(23,24,21,.92)}
  .nav{height:72px}
  .menu-btn{display:block}
  .nav-links{position:fixed;top:72px;left:0;right:0;background:var(--ink);color:var(--ivory);padding:24px var(--gutter) 32px;display:none;flex-direction:column;align-items:flex-start;gap:18px}
  .nav-links.open{display:flex}
  .scroll-note{display:none}
  .hero-content{padding-bottom:42px}
  .band-grid,.section-head,.experience-top,.about-split,.page-hero-grid,.about-intro-grid,.inquire-grid{grid-template-columns:1fr}
  .section-head .copy{justify-self:start}
  .feature-grid{grid-template-columns:1fr}
  .feature-main{min-height:580px}
  .feature-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .feature-small{min-height:320px}
  .steps,.next-grid{grid-template-columns:1fr}
  .step,.step+.step,.next-item,.next-item+.next-item{padding:24px 0;border-right:0;border-bottom:1px solid var(--line);min-height:auto}
  .step-num,.next-num{margin-bottom:18px}
  .next-item,.next-item+.next-item{border-color:var(--light-line)}
  .next-item:last-child{border-bottom:0}
  .about-image{min-height:580px}
  .page-hero{padding-top:135px}
  .pf-grid{grid-auto-rows:90px}
  .about-intro-image{min-height:620px}
  .archive-images{grid-template-columns:1fr 1fr}
  .archive-images .media:last-child{grid-column:1/-1}
  .inquire-side{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
}
@media(max-width:620px){
  .hero-title{font-size:clamp(4.4rem,24vw,7.5rem)}
  .hero-actions{flex-direction:column;align-items:stretch;width:min(100%,360px)}
  .feature-main{min-height:520px}
  .feature-stack{grid-template-columns:1fr}
  .feature-small{min-height:430px}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .jump-nav{overflow:auto;flex-wrap:nowrap;padding-bottom:15px}
  .jump-nav a{white-space:nowrap}
  .pf-grid{display:block}
  .pf-card{display:block;height:auto;margin-bottom:12px}
  .pf-card img{height:auto;max-height:72vh}
  .archive-images{grid-template-columns:1fr}
  .archive-images .media,.archive-images .media:last-child{grid-column:auto;min-height:420px}
  .service-row{grid-template-columns:55px 1fr}
  .form-grid{grid-template-columns:1fr}
  .field.full,.form-actions,.form-status{grid-column:auto}
  .form-actions{align-items:flex-start;flex-direction:column}
  .lightbox{padding:16px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.hero-slide,.media img,.btn{transition:none!important}}


.brand-wrap{display:flex;align-items:center;gap:12px}
.footer-stack{display:flex;justify-content:space-between;gap:28px;align-items:center}
.footer-brand{display:flex;align-items:center;gap:18px}
.footer-logo{width:180px;max-width:42vw;height:auto;opacity:.95;filter:grayscale(.02)}
.footer-text{display:flex;flex-direction:column;gap:6px}
.footer-wordmark{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.footer-sub{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(242,238,230,.72)}
.footer-note{font-size:.72rem;letter-spacing:.06em;text-transform:none;color:rgba(242,238,230,.72);max-width:360px;line-height:1.55;text-align:right}
.signature-block{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;align-items:center;padding:36px 0 0;border-top:1px solid var(--line);margin-top:40px}
.signature-logo{max-width:320px;width:100%;height:auto}
.signature-copy{color:var(--muted);font-size:1rem;max-width:520px}
.inquire-side .inquire-logo{width:220px;max-width:100%;margin:0 0 24px auto}
.inquire-side .inquire-list{display:block}
.category-note{margin-top:10px;color:var(--muted);font-size:.95rem;max-width:520px}
@media(max-width:900px){
  .footer-stack{flex-direction:column;align-items:flex-start}
  .footer-note{text-align:left;max-width:none}
  .signature-block{grid-template-columns:1fr;gap:20px}
  .inquire-side .inquire-logo{margin:0 0 20px 0;width:200px}
}


/* Mobile photography pass: preserve compositions instead of forcing desktop crops. */
@media(max-width:900px){
  .hero{min-height:92svh}
  .hero-slide:nth-child(1){background-position:center 38%}
  .hero-slide:nth-child(2){background-position:center 38%}
  .hero-slide:nth-child(3){background-position:center 42%}
  .feature-main,.feature-small,.about-image,.about-intro-image,.archive-images .media{min-height:0}
  .feature-main img,.feature-small img,.about-image img,.about-intro-image img,.archive-images .media img{height:auto;object-fit:contain}
  .feature-stack{grid-template-columns:1fr;grid-template-rows:auto}
  .about-split{min-height:0}
  .about-copy-panel{padding:clamp(50px,9vw,82px) var(--gutter)}
  .page-title{font-size:clamp(3.8rem,11vw,6.2rem)}
  .portfolio-section{padding:72px 0 88px}
  .pf-title{margin-bottom:28px}
  .pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;grid-auto-rows:auto}
  .pf-card,.pf-card:nth-child(n){grid-column:auto;grid-row:auto;height:auto;aspect-ratio:auto;margin:0}
  .pf-card img,.pf-card .corrected-photo{width:100%;height:auto;max-height:none;object-fit:contain}
  .archive-images{gap:12px}
}
@media(max-width:620px){
  :root{--gutter:20px}
  .nav{height:66px}
  .nav-links{top:66px}
  .brand{font-size:.72rem;letter-spacing:.16em}
  .hero{min-height:88svh}
  .hero-content{padding:116px 0 34px}
  .hero-title{font-size:clamp(3.7rem,19vw,5.4rem);line-height:.84;margin-bottom:20px}
  .hero-tagline{font-size:1.25rem;margin-bottom:26px}
  .band{padding:72px 0}
  .section,.experience,.about-intro,.services,.cta{padding:76px 0}
  .display{font-size:clamp(2.85rem,14vw,4.6rem);line-height:.95}
  .display.medium{font-size:clamp(2.7rem,13vw,4.2rem)}
  .experience-title{font-size:clamp(2.9rem,14vw,4.4rem)}
  .section-head{margin-bottom:36px}
  .feature-grid,.feature-stack{gap:12px}
  .feature-main,.feature-small{display:block;min-height:0}
  .feature-main img,.feature-small img{width:100%;height:auto;max-height:none;object-fit:contain}
  .about-image{display:block;min-height:0}
  .about-image img{width:100%;height:auto;object-fit:contain}
  .about-intro-image{min-height:0}
  .about-intro-image img{height:auto;object-fit:contain}
  .archive-images{display:block}
  .archive-images .media,.archive-images .media:last-child{min-height:0;margin-bottom:12px}
  .archive-images .media img{height:auto;object-fit:contain}
  .page-hero,.inquire-hero{padding:118px 0 58px}
  .page-title{font-size:clamp(3.15rem,16vw,4.5rem);line-height:.92;margin-bottom:22px}
  .page-lede{font-size:1rem}
  .jump-nav{margin:0 -20px;padding-left:20px;padding-right:20px}
  .portfolio-section{padding:58px 0 70px}
  .pf-title{font-size:clamp(2.8rem,14vw,4rem);margin-bottom:24px}
  .category-note{margin:-8px 0 26px}
  .pf-grid{display:block}
  .pf-card,.pf-card:nth-child(n){display:block;width:100%;height:auto;aspect-ratio:auto;margin:0 0 16px;background:transparent}
  .pf-card img,.pf-card .corrected-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
  .lightbox{padding:12px}
  .lightbox img{max-width:94vw;max-height:88vh}
  .lightbox img.rotated-lightbox{max-width:82vh;max-height:94vw}
  .footer{padding:30px 0}
  .footer-logo{width:140px;max-width:55vw}
  .footer-brand{align-items:flex-start;gap:14px;flex-direction:column}
  .footer-note{font-size:.7rem}
  .signature-logo{max-width:250px}
  .inquire-side .inquire-logo{width:170px}
  .form-actions{gap:14px}
  .btn{width:100%}
  .hero-actions .btn{width:100%}
}
