:root{
  --ivory:#faf8f3;
  --paper:#fffdf9;
  --ink:#11100e;
  --muted:#756f68;
  --line:#ded6ca;
  --bronze:#8c6a43;
  --charcoal:#090908;
  --green:#173308;
  --soft-green:#2f3f34;
  --serif:"Cormorant Garamond", Georgia, serif;
  --mono:"IBM Plex Mono", monospace;
  --sans:"Inter", Arial, sans-serif;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  max-width:100%;
}

::selection{
  background:var(--bronze);
  color:white;
}

/* Header */

.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:50;
  min-height:68px;
  padding:18px 6vw 16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  background:rgba(250,248,243,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(222,214,202,.55);
}

.logo{
  flex-shrink:0;
  font-family:var(--serif);
  text-transform:uppercase;
  color:var(--ink);
  line-height:.78;
  letter-spacing:.18em;
  text-align:center;
}

.logo .city{
  display:block;
  font-size:10px;
  letter-spacing:.14em;
  margin-bottom:2px;
}

.logo .main{
  display:block;
  font-size:26px;
  letter-spacing:.28em;
  margin-left:.28em;
}

.logo .photo{
  display:block;
  font-size:10px;
  letter-spacing:.56em;
  margin-left:.56em;
  margin-top:4px;
}

.nav{
  display:flex;
  gap:34px;
  align-items:center;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.nav a{
  padding-bottom:8px;
  border-bottom:1px solid transparent;
  white-space:nowrap;
}

.nav a:hover,
.nav .active{
  border-color:var(--bronze);
  color:var(--bronze);
}

.nav .sep{
  display:none;
}

/* Shared elements */

.kicker{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bronze);
  font-weight:500;
}

.rule{
  width:64px;
  height:1px;
  background:var(--bronze);
  margin:24px 0;
}

.btn,
.text-link{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.text-link{
  border-bottom:1px solid var(--bronze);
  padding-bottom:8px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:188px;
  padding:17px 26px;
  border:1px solid var(--ink);
  transition:.25s ease;
}

.btn.dark{
  background:var(--charcoal);
  color:white;
  border-color:var(--charcoal);
}

.btn:hover{
  transform:translateY(-2px);
  border-color:var(--bronze);
  color:var(--bronze);
}

.btn.dark:hover{
  background:var(--bronze);
  color:white;
  border-color:var(--bronze);
}

.bwp-green-btn{
  background:var(--soft-green)!important;
  color:#f8f3ea!important;
  border-color:var(--soft-green)!important;
}

.actions{
  display:flex;
  gap:28px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:34px;
}

/* Page transition */

.bwp-page-wipe{
  position:fixed;
  inset:0;
  z-index:2147483000;
  pointer-events:none;
}

.bwp-page-wipe:after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(250,248,243,.24);
  opacity:0;
}

/* Homepage hero */

.home-hero{
  min-height:100vh;
  padding-top:86px;
  display:grid;
  grid-template-columns:69% 31%;
  border-bottom:1px solid var(--line);
}

.home-hero-img{
  min-height:520px;
  background:url("../images/hero/hero-main.jpg") center/cover;
  border-right:1px solid var(--line);
  animation:bwpHeroImageRevealFast 1.05s cubic-bezier(.16,.84,.32,1) both;
}

.home-hero-copy{
  padding:54px 6vw 68px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.home-hero-copy h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(36px,3.6vw,54px);
  line-height:1.05;
  letter-spacing:-.03em;
  margin:48px 0 26px;
  max-width:520px;
}

.home-hero-copy p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:380px;
}

.home-hero-copy .kicker,
.home-hero-copy h1,
.home-hero-copy p,
.home-hero-copy .actions{
  opacity:0;
  transform:translateY(22px);
  filter:blur(5px);
  animation:bwpHeroTextRevealFast .85s cubic-bezier(.16,.84,.32,1) both;
}

.home-hero-copy .kicker{animation-delay:.08s;}
.home-hero-copy h1{animation-delay:.18s;}
.home-hero-copy p{animation-delay:.28s;}
.home-hero-copy .actions{animation-delay:.38s;}

@keyframes bwpHeroImageRevealFast{
  0%{opacity:0;transform:scale(1.045) translateY(8px);filter:blur(5px);}
  100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0);}
}

@keyframes bwpHeroTextRevealFast{
  0%{opacity:0;transform:translateY(22px);filter:blur(5px);}
  100%{opacity:1;transform:translateY(0);filter:blur(0);}
}

/* Green editorial block */

.editorial-text-block{
  min-height:82vh;
  padding:118px 6vw 110px;
  display:grid;
  grid-template-columns:24% 52% 24%;
  gap:42px;
  align-items:center;
  background:var(--green);
  color:#eef7d5;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.editorial-text-block:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(238,247,213,.08), transparent 28%),
    radial-gradient(circle at 80% 80%, rgba(238,247,213,.06), transparent 28%);
  pointer-events:none;
}

.editorial-text-block .mini-mark{
  position:absolute;
  top:60px;
  left:50%;
  transform:translateX(-50%);
  width:70px;
  height:70px;
  border:1px solid rgba(238,247,213,.58);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--serif);
  font-size:30px;
  letter-spacing:-.04em;
  z-index:2;
}

.editorial-text-block > div{
  position:relative;
  z-index:2;
}

.editorial-text-block h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(54px,6.7vw,112px);
  line-height:.88;
  letter-spacing:.02em;
  text-transform:uppercase;
  margin:0;
  opacity:0;
  transform:translateY(24px);
  animation:bwpTextReveal 1.35s cubic-bezier(.2,.8,.2,1) .25s forwards;
}

.editorial-text-block p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:rgba(238,247,213,.82);
  max-width:660px;
  margin:42px auto 0;
  opacity:0;
  transform:translateY(18px);
  animation:bwpTextReveal 1.35s cubic-bezier(.2,.8,.2,1) .55s forwards;
}

.editorial-side-img{
  width:100%;
  max-width:300px;
  height:auto;
  display:block;
  filter:grayscale(1);
  opacity:.72;
  justify-self:center;
}

.editorial-side-img.left{
  align-self:end;
  transform:translateY(40px);
}

.editorial-side-img.right{
  content:url("../images/final/green-section-table-vertical.jpg");
  filter:none;
  opacity:.92;
  max-width:380px;
  align-self:start;
  transform:translateY(-10px);
}

@keyframes bwpTextReveal{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Three moments */

.three-moments{
  padding:120px 6vw 130px;
  background:var(--ivory);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}

.three-moments-head{
  text-align:center;
  max-width:780px;
  margin:0 auto 64px;
}

.three-moments-head .kicker{
  margin-bottom:18px;
}

.three-moments-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(40px,4.4vw,72px);
  line-height:.96;
  letter-spacing:-.035em;
  margin:0;
}

.three-carousel{
  position:relative;
  display:grid;
  grid-template-columns:52px 1fr 52px;
  gap:48px;
  align-items:center;
}

.three-arrow{
  width:52px;
  height:52px;
  border:1px solid var(--bronze);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  color:var(--bronze);
  font-size:20px;
  opacity:.9;
}

.three-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  align-items:end;
}

.three-card{
  position:relative;
  animation:threeSwap 6.5s ease-in-out infinite;
  will-change:transform;
}

.three-card:nth-child(1){animation-delay:0s;}
.three-card:nth-child(2){animation-delay:-2.1s;}
.three-card:nth-child(3){animation-delay:-4.2s;}

.three-card img{
  width:100%;
  height:620px;
  object-fit:cover;
  display:block;
}

.three-meta{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  align-items:start;
  padding-top:18px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.three-meta span:first-child{
  color:var(--bronze);
}

.three-progress{
  display:flex;
  justify-content:center;
  gap:34px;
  margin-top:70px;
  align-items:center;
}

.three-line{
  width:150px;
  height:1px;
  background:var(--line);
}

.three-line.active{
  background:var(--bronze);
}

.three-pause{
  margin:34px auto 0;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:11px;
  color:var(--bronze);
}

@keyframes threeSwap{
  0%,100%{transform:translateY(0) scale(1);}
  33%{transform:translateY(-26px) scale(1.018);}
  66%{transform:translateY(26px) scale(.992);}
}

/* Signature section */

.signature-image-section{
  padding:130px 6vw;
  background:var(--ivory);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:32% 46% 22%;
  gap:70px;
  align-items:center;
}

.signature-copy .kicker{
  margin-bottom:22px;
}

.signature-copy h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(38px,4.1vw,68px);
  line-height:.98;
  letter-spacing:-.04em;
  margin:0 0 28px;
}

.signature-copy p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:430px;
}

.signature-photo{
  width:100%;
  height:auto;
  display:block;
  box-shadow:0 30px 80px rgba(17,16,14,.08);
}

.signature-small{
  width:100%;
  max-width:240px;
  height:auto;
  display:block;
  align-self:end;
  justify-self:center;
  filter:grayscale(1);
}

/* Homepage content sections */

.safe-overlap{
  position:relative;
  margin-top:0;
  border-top:1px solid var(--line);
  box-shadow:0 -20px 50px rgba(17,16,14,.035);
}

.home-work-intro,
.home-portfolio-link{
  display:grid;
  grid-template-columns:24% 42% 34%;
  gap:70px;
  align-items:center;
  padding:112px 6vw 116px;
  background:var(--ivory);
}

.home-work-intro h2,
.home-portfolio-link h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.6vw,56px);
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0;
  max-width:620px;
}

.home-work-intro p,
.home-portfolio-link p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:620px;
}

.home-work-intro .work-image,
.home-portfolio-link .portfolio-side-image{
  width:100%;
  height:auto;
  display:block;
  justify-self:end;
}

.home-slider-section{
  padding:96px 0 106px;
  background:#d8d1c6;
  overflow:hidden;
}

.slider-head{
  padding:0 6vw 48px;
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
}

.slider-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.6vw,56px);
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0;
}

.slider-head p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:#5f5850;
  max-width:620px;
}

.editorial-slider{
  display:flex;
  gap:34px;
  align-items:flex-end;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:0 6vw 26px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}

.editorial-slide{
  flex:0 0 auto;
  scroll-snap-align:center;
  width:min(34vw,520px);
}

.editorial-slide.small{
  width:min(22vw,340px);
}

.editorial-slide.wide{
  width:min(46vw,720px);
}

.editorial-slide img{
  width:100%;
  height:auto;
  object-fit:contain;
  max-height:560px;
  display:block;
}

.home-portfolio-cta{
  text-align:center;
  margin-top:34px;
}

.home-portfolio-cta a{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--soft-green);
  border-bottom:1px solid #a1744b;
  padding-bottom:10px;
}

.home-detail-strip,
.home-no-crop-pair,
.visual-flow,
.home-manifesto{
  display:none!important;
}

/* Strong mosaic */

.strong-mosaic{
  padding:120px 6vw 130px;
  background:var(--ivory);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:22px;
  align-items:start;
  border-bottom:1px solid var(--line);
}

.strong-mosaic img{
  width:100%;
  height:auto;
  display:block;
}

.strong-mosaic-right{
  display:grid;
  gap:22px;
}

.strong-mosaic-right .row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  align-items:start;
}

.strong-mosaic .small-offset{
  margin-top:84px;
}

.strong-mosaic .wide-note{
  padding:60px 0 0;
  max-width:520px;
}

.strong-mosaic h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.6vw,58px);
  line-height:1;
  letter-spacing:-.035em;
  margin:0 0 22px;
}

.strong-mosaic p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
}

/* Journal preview */

.journal-preview{
  padding:105px 6vw 120px;
  border-bottom:1px solid var(--line);
}

.section-head{
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
  margin-bottom:60px;
}

.section-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.6vw,56px);
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0;
}

.journal-grid{
  display:grid;
  grid-template-columns:1.35fr .85fr .85fr;
  gap:22px;
}

.article{
  border-top:1px solid var(--line);
  padding-top:22px;
}

.article-img{
  height:300px;
  background-size:cover;
  background-position:center;
  margin-bottom:28px;
}

.article:first-child .article-img{
  height:470px;
}

.j1{background-image:url("../images/journal/journal-01.jpg");}
.j2{background-image:url("../images/journal/journal-02.jpg");}
.j3{background-image:url("../images/journal/journal-03.jpg");}

.article h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:32px;
  line-height:1;
  margin:14px 0 16px;
}

.article p{
  font-family:var(--mono);
  font-size:13px;
  line-height:1.75;
  color:var(--muted);
}

/* CTA */

.cta{
  min-height:430px;
  background:var(--charcoal);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:90px 6vw;
}

.cta h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(42px,4.5vw,72px);
  line-height:.96;
  letter-spacing:-.04em;
  margin:0 0 28px;
}

.cta em{
  font-style:normal;
  color:#b3936b;
}

.cta p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:rgba(255,255,255,.72);
  max-width:560px;
  margin:0 auto 34px;
}

.cta .btn{
  border-color:white;
  color:white;
}

.cta .btn:hover{
  background:var(--bronze);
  border-color:var(--bronze);
  color:white;
}

.home-single-portrait{
  padding:110px 6vw 130px;
  background:#f8f3ea;
  text-align:center;
  border-top:1px solid rgba(40,35,30,.12);
}

.home-single-portrait img{
  width:min(520px,78vw);
  height:auto;
  display:block;
  margin:0 auto;
  box-shadow:0 28px 90px rgba(0,0,0,.10);
}

.home-single-portrait .kicker{
  margin-bottom:26px;
}

/* Common page sections */

.page-hero{
  min-height:58vh;
  padding:118px 6vw 90px;
  display:flex;
  align-items:end;
  border-bottom:1px solid var(--line);
}

.page-hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(46px,4.7vw,72px);
  line-height:.96;
  letter-spacing:-.04em;
  margin:0;
  max-width:820px;
}

.page-intro{
  padding:90px 6vw;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
}

.page-intro h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.6vw,56px);
  line-height:1.02;
  letter-spacing:-.03em;
  margin:0;
}

.page-intro p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:650px;
}

/* Portfolio */

.portfolio-intro-hero{
  min-height:72vh;
  padding:118px 6vw 70px;
  display:grid;
  grid-template-columns:43% 57%;
  gap:70px;
  align-items:end;
  border-bottom:1px solid var(--line);
}

.portfolio-intro-copy h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(46px,4.7vw,72px);
  line-height:.96;
  letter-spacing:-.04em;
  margin:0 0 28px;
}

.portfolio-intro-copy p{
  max-width:520px;
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
}

.portfolio-intro-image img{
  width:100%;
  height:auto;
  display:block;
  filter:grayscale(1);
}

.portfolio-note{
  padding:76px 6vw 58px;
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
}

.portfolio-note h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(30px,3.2vw,50px);
  line-height:1.05;
  letter-spacing:-.03em;
  margin:0;
}

.portfolio-note p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:720px;
}

.portfolio-book.real{
  padding:64px 6vw 120px;
  border-bottom:1px solid var(--line);
}

.real-portfolio-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:30px 24px;
  align-items:start;
}

.real-shot{
  display:block;
  height:auto;
  min-height:0;
  margin:0;
  background:transparent;
  overflow:visible;
  position:relative;
}

.real-shot img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
  background:var(--paper);
  transition:opacity .35s ease;
}

.real-shot:hover img{
  opacity:.94;
}

.real-shot.hero-wide{grid-column:span 12;}
.real-shot.wide{grid-column:span 7;}
.real-shot.medium{grid-column:span 6;}
.real-shot.vertical{grid-column:span 4;}
.real-shot.small{grid-column:span 3;}
.real-shot.tiny-pause{grid-column:5 / span 3;padding:76px 0;}

.real-shot.tiny-pause img{
  max-width:240px;
  margin:0 auto;
}

.real-shot:nth-child(7n+2){margin-top:42px;}
.real-shot:nth-child(9n+5){margin-top:96px;}
.real-shot:nth-child(11n+8){margin-bottom:76px;}

/* Journal */

.journal-banner{
  margin-top:86px;
  min-height:64vh;
  background:url("../images/final/journal-hero-wedding-table.jpg") center/cover;
  color:white;
  display:flex;
  align-items:center;
  padding:110px 6vw;
  position:relative;
}

.journal-banner:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.24),rgba(0,0,0,.04));
}

.journal-banner-content{
  position:relative;
  max-width:620px;
}

.journal-banner h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(42px,4.5vw,70px);
  line-height:.96;
  letter-spacing:-.04em;
  margin:0 0 26px;
}

.journal-banner p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:rgba(255,255,255,.78);
  max-width:520px;
}

.journal-banner .kicker{
  color:#d7b98d;
}

.journal-library{
  padding:110px 6vw 130px;
  background:var(--ivory);
}

.journal-library-head{
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
  margin-bottom:76px;
}

.journal-library-head h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(38px,4.2vw,72px);
  line-height:.96;
  letter-spacing:-.04em;
  margin:0;
}

.journal-card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.journal-card{
  border-top:1px solid var(--line);
  padding-top:22px;
}

.journal-card img{
  width:100%;
  height:auto;
  display:block;
  margin-bottom:22px;
}

.journal-card h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(28px,2.5vw,42px);
  line-height:1;
  letter-spacing:-.03em;
  margin:0 0 16px;
}

.journal-card p{
  font-family:var(--mono);
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
  margin:0 0 22px;
}

/* Article pages */

.article-hero{
  padding:132px 6vw 86px;
  display:grid;
  grid-template-columns:44% 48%;
  gap:8%;
  align-items:end;
  border-bottom:1px solid var(--line);
}

.article-hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(46px,5.3vw,90px);
  line-height:.92;
  letter-spacing:-.045em;
  margin:0 0 28px;
}

.article-hero p{
  font-family:var(--mono);
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
  max-width:620px;
}

.article-hero img{
  width:100%;
  height:auto;
  display:block;
}

.article-body{
  padding:94px 6vw 120px;
  display:grid;
  grid-template-columns:26% 58%;
  gap:16%;
  background:var(--ivory);
}

.article-body aside{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--bronze);
  position:sticky;
  top:110px;
  align-self:start;
}

.article-content h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.5vw,58px);
  line-height:1;
  letter-spacing:-.035em;
  margin:0 0 22px;
}

.article-content p,
.article-content li{
  font-family:var(--mono);
  font-size:15px;
  line-height:1.9;
  color:#5f5850;
}

.article-content p{
  margin:0 0 34px;
}

.article-content ul{
  margin:0 0 42px;
  padding-left:22px;
}

.article-summary,
.article-toc{
  padding:28px 0;
  margin:0 0 44px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.article-summary strong{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bronze);
  margin-bottom:14px;
}

.article-toc a{
  display:block;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
  margin:12px 0;
}

.article-image-break{
  margin:52px 0;
}

.article-image-break img{
  width:100%;
  height:auto;
  display:block;
}

.article-faq{
  padding-top:30px;
  border-top:1px solid var(--line);
  margin-top:52px;
}

.article-faq details{
  border-bottom:1px solid var(--line);
  padding:22px 0;
}

.article-faq summary{
  font-family:var(--serif);
  font-size:30px;
  line-height:1.1;
  cursor:pointer;
}

.article-faq p{
  margin:16px 0 0;
}

.article-internal-links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:38px;
}

.article-internal-links a{
  border-top:1px solid var(--line);
  padding-top:18px;
  font-family:var(--mono);
  font-size:12px;
  line-height:1.55;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
}

.article-related{
  padding:90px 6vw 120px;
  border-top:1px solid var(--line);
  background:#f3eee5;
}

.article-related h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(34px,3.7vw,62px);
  line-height:1;
  letter-spacing:-.035em;
  margin:0 0 36px;
}

/* About */

.about-hero-final{
  min-height:72vh;
  padding:118px 6vw 90px;
  display:grid;
  grid-template-columns:52% 38%;
  gap:10%;
  align-items:end;
  background:var(--ivory);
  border-bottom:1px solid var(--line);
}

.about-hero-final h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(48px,5.5vw,92px);
  line-height:.94;
  letter-spacing:-.045em;
  margin:0;
}

.about-hero-final p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:620px;
  margin-top:34px;
}

.about-hero-final img{
  width:100%;
  height:auto;
  display:block;
  box-shadow:0 30px 80px rgba(17,16,14,.08);
}

.no-crop-img{
  height:auto;
  object-fit:contain;
}

.about-mini-detail{
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
  padding:92px 6vw 18px;
}

.editorial-small{
  width:168px;
  height:248px;
  background-size:cover;
  background-position:center;
  justify-self:start;
}

.about-mini-detail .editorial-small{
  background-image:url("../images/polish/about-small-color.jpg");
}

.about-essay{
  display:grid;
  grid-template-columns:45% 55%;
  border-bottom:1px solid var(--line);
}

.about-photo{
  min-height:720px;
  background:url("../images/about/about-01.jpg") center/cover;
}

.about-copy{
  padding:110px 6vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.about-copy h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(38px,4vw,62px);
  line-height:1;
  letter-spacing:-.035em;
  margin:0 0 30px;
}

.about-copy p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:560px;
}

/* Contact */

.contact-wrap{
  display:grid;
  grid-template-columns:42% 58%;
  border-bottom:1px solid var(--line);
  padding-top:86px;
}

.contact-copy{
  padding:80px 6vw 80px;
  display:flex;
  flex-direction:column;
  justify-content:end;
}

.contact-copy h1{
  font-family:var(--serif);
  font-size:clamp(46px,4.8vw,74px);
  line-height:.96;
  letter-spacing:-.04em;
  font-weight:400;
  margin:0 0 34px;
}

.contact-copy p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:430px;
}

.contact-mini-detail{
  margin-top:38px;
  width:138px;
  height:188px;
  background:url("../images/contact/contact-01.jpg") center/cover;
  filter:grayscale(1);
}

.contact-panel{
  padding:86px 6vw 80px;
  border-left:1px solid var(--line);
  background:var(--paper);
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.field{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:18px;
}

.field.full{
  grid-column:1/-1;
}

label{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bronze);
}

input,
textarea,
select{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:14px 0;
  font-family:var(--mono);
  font-size:14px;
  color:var(--ink);
  outline:none;
}

textarea{
  min-height:130px;
  resize:vertical;
}

input:focus,
textarea:focus,
select:focus{
  border-color:var(--bronze);
}

.faq{
  padding:95px 6vw 115px;
  border-bottom:1px solid var(--line);
}

.faq-grid{
  display:grid;
  grid-template-columns:34% 66%;
  gap:70px;
}

.faq h2{
  font-family:var(--serif);
  font-size:clamp(34px,3.7vw,58px);
  line-height:1;
  font-weight:400;
  margin:0;
}

.faq-list{
  border-top:1px solid var(--line);
}

.faq-item{
  padding:26px 0;
  border-bottom:1px solid var(--line);
}

.faq-item h3{
  font-family:var(--mono);
  font-weight:500;
  font-size:18px;
  line-height:1.55;
  margin:0 0 10px;
}

.faq-item p{
  font-family:var(--mono);
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  margin:0;
}

/* Footer */

.footer{
  background:var(--charcoal);
  color:rgba(255,255,255,.72);
  border-top:1px solid rgba(255,255,255,.12);
  padding:0;
  font-family:var(--mono);
  font-size:11px;
}

.footer-final{
  padding:80px 6vw 36px;
}

.footer-cta{
  display:grid;
  grid-template-columns:55% 45%;
  gap:70px;
  padding-bottom:70px;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.footer-cta h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(38px,4vw,68px);
  line-height:.98;
  letter-spacing:-.04em;
  color:white;
  margin:0;
}

.footer-cta p{
  font-family:var(--mono);
  font-size:13px;
  line-height:1.8;
  color:rgba(255,255,255,.66);
  max-width:520px;
  margin:0 0 22px;
}

.footer-email{
  color:white;
  border-bottom:1px solid var(--bronze);
  padding-bottom:8px;
}

.footer-main{
  display:grid;
  grid-template-columns:34% 22% 22% 22%;
  gap:30px;
  padding:58px 0;
}

.footer-logo{
  font-family:var(--serif);
  text-transform:uppercase;
  color:white;
  line-height:.78;
  letter-spacing:.18em;
  text-align:left;
}

.footer-logo .city{
  display:block;
  font-size:10px;
  letter-spacing:.14em;
  margin-bottom:2px;
}

.footer-logo .main{
  display:block;
  font-size:26px;
  letter-spacing:.28em;
}

.footer-logo .photo{
  display:block;
  font-size:10px;
  letter-spacing:.56em;
  margin-top:4px;
}

.footer-col-title{
  color:white;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:18px;
}

.footer-links{
  display:flex;
  flex-direction:column;
  gap:10px;
  color:rgba(255,255,255,.62);
}

.footer-links a:hover{
  color:white;
}

.footer-bottom{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:20px;
  align-items:center;
  padding-top:30px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.footer-bottom div:last-child{
  text-align:right;
}

.footer-mark{
  font-family:var(--serif);
  font-size:24px;
  color:white;
  letter-spacing:-.04em;
}

.footer-legal{
  display:flex;
  gap:18px;
  justify-content:center;
  margin-top:26px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.footer-legal a{
  color:inherit;
  opacity:.65;
}

/* Cookie banner */

.cookie-banner{
  position:fixed;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:9999;
  background:#f8f3ea;
  border:1px solid rgba(40,35,30,.18);
  padding:18px 20px;
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 20px 70px rgba(0,0,0,.12);
}

.cookie-banner p{
  font-family:var(--mono);
  font-size:12px;
  line-height:1.6;
  margin:0;
  color:#5f5850;
  max-width:780px;
}

.cookie-banner a{
  text-decoration:underline;
}

.cookie-actions{
  display:flex;
  gap:10px;
  flex-shrink:0;
}

.cookie-actions button{
  border:1px solid rgba(40,35,30,.25);
  background:transparent;
  padding:10px 14px;
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  cursor:pointer;
}

.cookie-actions .accept{
  background:var(--soft-green);
  color:#fff;
  border-color:var(--soft-green);
}

/* Hide unused controls */

.slider-arrows,
.slider-dots,
.carousel-arrows,
.carousel-dots,
.portfolio-slider-arrows,
.portfolio-slider-dots,
.atmosphere-arrows,
.atmosphere-dots,
.pause-icon,
.slider-pause,
.swiper-button-next,
.swiper-button-prev,
.swiper-pagination{
  display:none!important;
}

/* Tablet */

@media(max-width:1000px){
  .header{
    position:fixed;
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
    padding:16px 6vw 18px;
  }

  .nav{
    width:100%;
    display:flex;
    gap:22px;
    overflow-x:auto;
    padding-bottom:2px;
    font-size:11px;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .home-hero{
    grid-template-columns:1fr;
    padding-top:132px;
  }

  .home-hero-img{
    min-height:60vh;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .editorial-text-block,
  .home-work-intro,
  .home-portfolio-link,
  .signature-image-section,
  .strong-mosaic,
  .portfolio-intro-hero,
  .portfolio-note,
  .journal-library-head,
  .journal-card-grid,
  .section-head,
  .journal-grid,
  .page-intro,
  .about-hero-final,
  .about-mini-detail,
  .about-essay,
  .contact-wrap,
  .faq-grid,
  .article-hero,
  .article-body{
    grid-template-columns:1fr;
  }

  .editorial-side-img{
    max-width:220px;
  }

  .editorial-side-img.left,
  .editorial-side-img.right{
    transform:none;
  }

  .three-carousel{
    grid-template-columns:1fr;
  }

  .three-arrow{
    display:none;
  }

  .three-track{
    grid-template-columns:1fr;
  }

  .three-card,
  .three-card:nth-child(1),
  .three-card:nth-child(2),
  .three-card:nth-child(3){
    animation:none;
    transform:none;
  }

  .three-card img{
    height:auto;
  }

  .signature-small{
    justify-self:start;
  }

  .home-work-intro .work-image,
  .home-portfolio-link .portfolio-side-image{
    justify-self:start;
    max-width:540px;
  }

  .slider-head{
    grid-template-columns:1fr;
  }

  .editorial-slide,
  .editorial-slide.small,
  .editorial-slide.wide{
    width:72vw;
  }

  .strong-mosaic-right .row{
    grid-template-columns:1fr;
  }

  .strong-mosaic .small-offset{
    margin-top:0;
  }

  .real-shot.hero-wide,
  .real-shot.wide,
  .real-shot.medium,
  .real-shot.vertical,
  .real-shot.small,
  .real-shot.tiny-pause{
    grid-column:span 12;
    padding:0;
    margin-top:0;
    margin-bottom:0;
  }

  .real-shot.tiny-pause img{
    max-width:100%;
  }

  .contact-panel{
    border-left:0;
    border-top:1px solid var(--line);
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .article-body aside{
    position:relative;
    top:auto;
  }

  .article-internal-links{
    grid-template-columns:1fr;
  }

  .footer-cta,
  .footer-main{
    grid-template-columns:1fr;
  }

  .footer-bottom{
    grid-template-columns:1fr;
    text-align:center;
  }

  .footer-bottom div:last-child{
    text-align:center;
  }
}

/* Mobile */

@media(max-width:600px){
  .header{
    padding:14px 8vw 16px;
  }

  .logo .main{
    font-size:22px;
  }

  .nav{
    gap:18px;
    font-size:10px;
    letter-spacing:.10em;
  }

  .home-hero{
    padding-top:126px;
  }

  .home-hero-copy,
  .editorial-text-block,
  .three-moments,
  .signature-image-section,
  .home-work-intro,
  .home-portfolio-link,
  .strong-mosaic,
  .journal-preview,
  .page-hero,
  .page-intro,
  .portfolio-intro-hero,
  .portfolio-note,
  .portfolio-book.real,
  .journal-banner,
  .journal-library,
  .article-hero,
  .article-body,
  .article-related,
  .about-hero-final,
  .about-mini-detail,
  .about-copy,
  .contact-copy,
  .contact-panel,
  .faq,
  .cta,
  .home-single-portrait{
    padding-left:8vw;
    padding-right:8vw;
  }

  .home-hero-copy h1{
    font-size:36px;
  }

  .editorial-text-block{
    min-height:64vh;
  }

  .editorial-text-block .mini-mark{
    top:48px;
  }

  .editorial-text-block h2{
    font-size:clamp(42px,14vw,66px);
  }

  .editorial-side-img{
    max-width:170px;
  }

  .three-progress{
    gap:16px;
  }

  .three-line{
    width:74px;
  }

  .editorial-slider,
  .slider-head{
    padding-left:8vw;
    padding-right:8vw;
  }

  .editorial-slide,
  .editorial-slide.small,
  .editorial-slide.wide{
    width:82vw;
  }

  .journal-banner{
    margin-top:118px;
  }

  .journal-card-grid{
    gap:34px;
  }

  .contact-wrap{
    padding-top:126px;
  }

  .cookie-banner{
    left:12px;
    right:12px;
    bottom:12px;
    flex-direction:column;
    align-items:flex-start;
  }

  .cookie-actions{
    width:100%;
  }

  .cookie-actions button{
    flex:1;
  }

  .footer-final{
    padding-left:8vw;
    padding-right:8vw;
  }
}

/* Reduced motion */

@media(prefers-reduced-motion:reduce){
  *,
  *:before,
  *:after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }

  .home-hero-img,
  .home-hero-copy .kicker,
  .home-hero-copy h1,
  .home-hero-copy p,
  .home-hero-copy .actions,
  .editorial-text-block h2,
  .editorial-text-block p,
  .three-card{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
  }
}