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

:root {
  --ink: #1c1a17;
  --paper: #eee8dd;
  --paper-deep: #e1d8c8;
  --wine: #40201f;
  --olive: #5a5d47;
  --line: rgba(28, 26, 23, .2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body-font, "DM Sans"), sans-serif;
  font-weight: 300;
}
main { font-size: calc(16px * var(--body-scale, 1)); }
main h1, main h2, main blockquote, main .brand-main, main .story-meta h3, main .experience-card li { font-family: var(--display-font, "Cormorant Garamond"), serif; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

.site-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: 112px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 5vw;
  color: #f3eee5;
  border-bottom: 0;
}
.brand { display: inline-flex; flex-direction: column; width: fit-content; line-height: 1; }
.brand-main { font-family: "Cormorant Garamond", serif; font-size: 29px; letter-spacing: .18em; font-weight: 500; }
.brand-sub { margin-top: 6px; font-size: 7px; letter-spacing: .36em; }
.desktop-nav { display: flex; gap: 34px; font-size: 12px; letter-spacing: .08em; }
.desktop-nav a { opacity: .82; transition: opacity .25s; }
.desktop-nav a:hover { opacity: 1; }
.header-cta { justify-self: end; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 6px; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 24px; }
.language-switcher { display: flex; gap: 6px; align-items: center; font-size: 9px; letter-spacing: .14em; }
.language-switcher a { opacity: .45; transition: opacity .2s; }
.language-switcher a.active, .language-switcher a:hover { opacity: 1; }

.hero { height: min(960px, 100svh); min-height: 720px; position: relative; color: #f3eee5; overflow: hidden; background: #131313; }
.hero-image {
  position: absolute;
  inset: 0 0 0 57%;
  background: url('/assets/photos/docampo-photographer-cover.jpg') center top / cover no-repeat;
  filter: grayscale(1) contrast(1.06);
}
.hero-image::before { content: none; }
.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, #131313 0%, rgba(19,19,19,.98) 10%, rgba(19,19,19,.78) 22%, rgba(19,19,19,.28) 38%, transparent 52%);
}
.hero-shade {
  position: absolute;
  inset: 0 42% 0 0;
  background: #131313;
}
.hero-copy { position: absolute; z-index: 2; left: 8vw; top: 51%; transform: translateY(-42%); max-width: 830px; }
.eyebrow, .kicker { text-transform: uppercase; font-size: 10px; letter-spacing: .34em; font-weight: 400; }
.eyebrow { margin-bottom: 25px; }
.hero h1, h2, blockquote { font-family: "Cormorant Garamond", serif; font-weight: 400; }
.hero h1 { margin: 0; font-size: clamp(calc(64px * var(--heading-scale,1)), calc(7.2vw * var(--heading-scale,1)), calc(112px * var(--heading-scale,1))); line-height: .84; letter-spacing: -.045em; }
.hero h1 em { font-weight: 400; }
.hero-intro { max-width: 420px; margin: 40px 0 35px; line-height: 1.8; font-size: 14px; opacity: .87; }
.text-link { display: inline-flex; align-items: center; gap: 40px; text-transform: uppercase; font-size: 10px; letter-spacing: .18em; padding-bottom: 7px; border-bottom: 1px solid currentColor; }
.text-link--light { color: #f3eee5; }
.hero-note { position: absolute; z-index: 2; bottom: 38px; left: 5vw; right: 5vw; display: flex; justify-content: space-between; font-size: 8px; letter-spacing: .24em; text-transform: uppercase; opacity: .72; }

.section-pad { padding: 140px 8vw; }
.manifesto { display: grid; grid-template-columns: 1fr 3.2fr; gap: 5vw; background-color: var(--paper); background-image: radial-gradient(rgba(77,63,44,.07) .7px, transparent .7px); background-size: 5px 5px; }
.section-index { font-size: 9px; letter-spacing: .28em; padding-top: 10px; }
.manifesto-copy .kicker { color: #765f4d; }
.manifesto h2 { font-size: clamp(calc(48px * var(--heading-scale,1)), calc(5.2vw * var(--heading-scale,1)), calc(82px * var(--heading-scale,1))); line-height: .98; letter-spacing: -.035em; margin: 22px 0 65px; }
.manifesto h2 em, .contact h2 em { color: #775245; font-weight: 400; }
.manifesto-text { margin-left: 31%; display: grid; grid-template-columns: 1fr 1fr; gap: 5vw; font-size: 13px; line-height: 1.9; color: #4c473f; }

.portfolio { background: #1e1b18; color: #ede7dd; }
.portfolio-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 90px; }
.portfolio-head h2 { margin: 13px 0 0; font-family: "Cormorant Garamond",serif; font-weight: 400; font-size: clamp(calc(52px * var(--heading-scale,1)), calc(6vw * var(--heading-scale,1)), calc(88px * var(--heading-scale,1))); line-height: .9; }
.portfolio-head > p { max-width: 320px; margin: 0; line-height: 1.8; font-size: 12px; color: #aaa196; }
.story-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: start; }
.story { display: block; }
.story-image-wrap { position: relative; overflow: hidden; background: #2c2824; }
.story--wide .story-image-wrap,
.story--portrait .story-image-wrap { aspect-ratio: .76 / 1; }
.story:nth-child(even) { margin-top: 70px; }
.story-image { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: sepia(.3) saturate(.68) contrast(1.08); transition: transform .8s cubic-bezier(.2,.75,.2,1), filter .5s; }
.story:hover .story-image { transform: scale(1.025); filter: sepia(.12) saturate(.85); }
.story-number { position: absolute; top: 18px; left: 18px; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; font-size: 8px; }
.story-meta { display: flex; align-items: center; justify-content: space-between; padding: 20px 2px; border-bottom: 1px solid rgba(255,255,255,.18); }
.story-meta h3 { margin: 0 0 6px; font-family: "Cormorant Garamond",serif; font-weight: 400; font-size: 25px; }
.story-meta p { margin: 0; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: #948b80; }
.circle-arrow { border: 1px solid rgba(255,255,255,.3); width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; }
.portfolio-total { margin: 70px 0 0; text-align: right; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: #948b80; }

.experience { min-height: 850px; display: grid; grid-template-columns: 1.15fr .85fr; background: var(--paper-deep); }
.experience-image { min-height: 760px; background: url('/assets/photos/2022-11-28_ClfARrkLUIP_1.webp') center 28%/cover; filter: sepia(.12) saturate(.78) contrast(1.03); }
.experience-card { align-self: center; padding: 80px 9vw 80px 7vw; }
.experience-card h2 { margin: 20px 0 35px; font-family: "Cormorant Garamond",serif; font-weight: 400; font-size: clamp(48px,5vw,76px); line-height: .98; }
.experience-card > p:not(.kicker) { font-size: 13px; line-height: 1.9; color: #4f493f; }
.experience-card ol { list-style: none; padding: 0; margin: 50px 0; border-top: 1px solid var(--line); }
.experience-card li { display: flex; gap: 25px; padding: 19px 0; border-bottom: 1px solid var(--line); font-family: "Cormorant Garamond", serif; font-size: 21px; }
.experience-card li span { font-family: "DM Sans"; font-size: 8px; padding-top: 7px; }

.quote-section { text-align: center; padding: 145px 15vw; background: var(--wine); color: #eee5da; }
.quote-mark { font-family: "Cormorant Garamond",serif; font-size: 70px; opacity: .4; line-height: .5; }
.quote-section blockquote { max-width: 960px; margin: 25px auto 35px; font-size: clamp(42px,5vw,75px); line-height: 1.05; font-style: italic; }
.quote-section p { font-size: 8px; letter-spacing: .28em; text-transform: uppercase; }

.contact { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10vw; align-items: end; background-color: var(--paper); background-image: linear-gradient(90deg, transparent 49.95%, rgba(50,40,30,.055) 50%); }
.contact { position: relative; }
.anchor-target { position: absolute; top: -30px; }
.contact h2 { font-size: clamp(calc(62px * var(--heading-scale,1)),calc(7vw * var(--heading-scale,1)),calc(105px * var(--heading-scale,1))); letter-spacing: -.04em; line-height: .82; margin: 25px 0 0; }
.contact-actions > p { font-size: 13px; line-height: 1.9; margin-bottom: 35px; }
.button { display: flex; justify-content: space-between; align-items: center; background: var(--ink); color: #f4eee5; padding: 22px 24px; text-transform: uppercase; font-size: 9px; letter-spacing: .18em; transition: background .25s; }
.button:hover { background: var(--wine); }
.email-link { display: inline-block; margin-top: 25px; font-size: 11px; border-bottom: 1px solid var(--line); padding-bottom: 5px; }
.reservation-form { display: grid; gap: 18px; }
.reservation-form label { display: grid; gap: 8px; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.reservation-form input,.reservation-form select,.reservation-form textarea { width:100%; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:12px 2px; background:transparent; color:var(--ink); font:400 13px var(--body-font,"DM Sans"),sans-serif; }
.reservation-form textarea { border:1px solid var(--line); padding:14px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.reservation-form .button { width:100%; border:0; cursor:pointer; }
.form-status { margin:0; padding:12px; background:#dce6d6; color:#253222; }
.form-status--error { background:#ead7d4; color:#5a211d; }
.admin-notice--error { background:#ead7d4 !important; color:#5a211d !important; }

footer { background: #171512; color: #d9d1c6; padding: 75px 6vw 35px; display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 35px; align-items: end; }
footer > p { margin: 0; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: #7f786f; }
.brand--footer .brand-main { font-size: 38px; }
.footer-links { display: flex; gap: 24px; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.copyright { grid-column: 1/-1; padding-top: 55px; border-top: 1px solid rgba(255,255,255,.12); margin-top: 30px !important; }
.creator-signature { color: #d9d1c6; transition: color .2s ease; }
.creator-signature:hover { color: #fff; }
.creator-signature:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }

.back-to-top {
  position: fixed;
  z-index: 40;
  right: 28px;
  bottom: 28px;
  width: 58px;
  height: 58px;
  display: grid;
  place-content: center;
  gap: 2px;
  border: 1px solid rgba(238, 232, 221, .55);
  border-radius: 50%;
  background: rgba(28, 26, 23, .88);
  color: #eee8dd;
  font-size: 8px;
  line-height: 1;
  letter-spacing: .2em;
  text-align: center;
  text-indent: .2em;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
  backdrop-filter: blur(8px);
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
.back-to-top span {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  line-height: .8;
  letter-spacing: 0;
  text-indent: 0;
}
.back-to-top:hover {
  transform: translateY(-4px);
  background: var(--wine);
  border-color: rgba(238, 232, 221, .85);
}
.back-to-top:focus-visible {
  outline: 2px solid #eee8dd;
  outline-offset: 4px;
}
.back-to-top--smart {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .28s ease, transform .28s ease, visibility .28s;
}
.back-to-top--smart.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top--smart.is-visible:hover {
  transform: translateY(-4px);
}

/* Individual session stories */
.session-page { background: #f3efe7; }
.session-header { position: absolute; z-index: 10; inset: 0 0 auto; height: 105px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; color: #f5f0e8; border-bottom: 0; }
.session-close { display: flex; align-items: center; gap: 15px; font-size: 9px; letter-spacing: .22em; text-transform: uppercase; }
.session-close span { font-family: "Cormorant Garamond",serif; font-size: 25px; font-weight: 300; }
.session-hero { position: relative; min-height: 100svh; color: #f5f0e8; }
.session-hero--image { display: grid; grid-template-columns: 44% 56%; overflow: hidden; background: #1b1714; }
.session-hero-copy { position: relative; min-width: 0; background: #1b1714; display:flex; align-items:center; }
.session-hero-photo { min-width: 0; min-height: 100svh; overflow: hidden; background: #211c18; display:flex; align-items:flex-end; }
.session-hero-photo img { display:block; width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.session-title { position: relative; z-index: 2; width:100%; padding:115px 5vw 70px 7vw; }
.session-title p,.session-title span { font-size: 9px; letter-spacing: .25em; text-transform: uppercase; }
.session-title h1 { margin: 25px 0 14px; font-family: "Cormorant Garamond",serif; font-weight: 500; font-size: clamp(48px,5.4vw,82px); line-height: .9; letter-spacing: -.04em; }
.session-title h2 { max-width:470px; margin:0 0 55px; font-family:"Cormorant Garamond",serif; font-weight:400; font-size:clamp(34px,3.8vw,58px); line-height:.96; letter-spacing:-.03em; color:#d8cfc4; }
.session-title span { display: flex; gap: 18px; align-items: center; opacity: .78; }
.session-title b { font-family: serif; font-size: 18px; font-weight: 400; }
.session-intro { padding: 150px 10vw 170px; display: grid; grid-template-columns: 1fr 3.2fr; gap: 6vw; background-image: radial-gradient(rgba(77,63,44,.065) .7px,transparent .7px); background-size: 5px 5px; }
.session-index { margin: 9px 0; font-size: 9px; letter-spacing: .25em; text-transform: uppercase; }
.session-intro h2 { max-width: 980px; margin: 26px 0 0; font-family: "Cormorant Garamond",serif; font-size: clamp(42px,4.9vw,76px); font-weight: 400; line-height: 1.03; }
.editorial-gallery { overflow: hidden; padding-bottom: 150px; }
.editorial-gallery figure { margin: 0; overflow: hidden; background: #d6cec0; }
.editorial-gallery img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.23) saturate(.78) contrast(1.05); transition: transform 1.2s cubic-bezier(.2,.75,.2,1),filter .6s ease; }
.editorial-gallery figure:hover img { transform: scale(1.018); filter: sepia(.1) saturate(.9); }
.gallery-wide { width: 100%; height: min(79vw,960px); }
.gallery-pair { padding: 120px 8vw 150px 18vw; display: grid; grid-template-columns: .7fr 1fr; gap: 4vw; align-items: center; }
.gallery-small { aspect-ratio: .8/1; }
.gallery-tall { aspect-ratio: .7/1; }
.gallery-cinema { width: 92%; margin-left: auto !important; aspect-ratio: 1.75/1; }
.gallery-offset { padding: 160px 12vw; display: grid; grid-template-columns: 1fr .85fr; gap: 10vw; align-items: center; }
.gallery-portrait { aspect-ratio: .72/1; }
.gallery-offset blockquote { margin: 0; font-family: "Cormorant Garamond",serif; font-size: clamp(38px,4vw,64px); line-height: 1.1; font-style: italic; color: #493b32; }
.gallery-final { width: 78%; aspect-ratio: 1.45/1; }
.session-next { padding: 150px 10vw; text-align: center; background: #221d19; color: #eee7dc; }
.session-next > p { font-size: 9px; letter-spacing: .28em; text-transform: uppercase; }
.session-next h2 { margin: 28px auto 55px; font-family: "Cormorant Garamond",serif; font-size: clamp(58px,7vw,104px); line-height: .87; font-weight: 400; }
.session-next h2 em { color: #bda28d; font-weight: 400; }
.session-next .button { max-width: 360px; margin: 0 auto; background: #eee7dc; color: #221d19; }
.back-portfolio { display: block; width: fit-content; margin: 45px auto 0; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.3); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.reveal { animation: reveal-in .9s cubic-bezier(.2,.7,.2,1) both; }
@keyframes reveal-in { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); } }

/* Complete portfolios: images retain their full natural proportions. */
.complete-gallery {
  padding: 0 0 140px;
  columns: 3 360px;
  column-gap: 0;
  background: #171512;
}
.complete-gallery__item {
  position: relative;
  break-inside: avoid;
  margin: 0;
  overflow: hidden;
  background: #171512;
}
.complete-gallery__item,.complete-gallery__item .lightbox-trigger{font-size:0;line-height:0}
.complete-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  object-fit: initial;
  filter: none;
  transform: scale(var(--photo-zoom,1));
  transform-origin: center top;
  transition: transform .8s cubic-bezier(.2,.75,.2,1), filter .5s ease;
}
.complete-gallery__item:hover img { filter: brightness(.96); }
.complete-gallery.layout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));columns:auto}
.complete-gallery.layout-grid .complete-gallery__item{aspect-ratio:4/5}
.complete-gallery.layout-grid .complete-gallery__item img{height:100%;object-fit:cover}
.complete-gallery.layout-editorial{display:grid;grid-template-columns:repeat(12,1fr);gap:0;columns:auto}
.complete-gallery.layout-editorial .complete-gallery__item{grid-column:span 5}
.complete-gallery.layout-editorial .complete-gallery__item:nth-child(3n+1){grid-column:span 7}
.complete-gallery.layout-editorial .complete-gallery__item img{height:100%;object-fit:cover}
.complete-gallery__item figcaption {
  position: absolute;
  right: 11px;
  bottom: 10px;
  padding: 6px 8px;
  background: rgba(20,17,14,.74);
  color: #eee7dc;
  font-size: 7px;
  letter-spacing: .16em;
  backdrop-filter: blur(5px);
}

/* Immersive portfolio lightbox */
.lightbox-gallery figure { position: relative; }
.lightbox-trigger { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; color: inherit; cursor: zoom-in; overflow: hidden; }
.lightbox-trigger > img { width: 100%; height: 100%; }
.complete-gallery .lightbox-trigger > img { height: auto; }
.lightbox-hint { position: absolute; right: 18px; top: 18px; z-index: 2; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(20,17,14,.42); color: #f4eee5; font: 300 20px/1 "DM Sans",sans-serif; opacity: 0; transform: scale(.88); backdrop-filter: blur(8px); transition: opacity .3s ease,transform .3s ease,background .3s ease; pointer-events: none; }
.lightbox-trigger:hover .lightbox-hint,.lightbox-trigger:focus-visible .lightbox-hint { opacity: 1; transform: scale(1); }
.lightbox-trigger:focus-visible { outline: 2px solid #eee7dc; outline-offset: -4px; }
.lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; grid-template-rows: 76px minmax(0,1fr) 68px; background: rgba(13,11,10,.97); color: #eee8dd; animation: lightbox-in .28s ease both; touch-action: pan-y; }
.lightbox[hidden]{display:none!important}
.lightbox::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 45%,rgba(99,79,62,.15),transparent 50%); pointer-events: none; }
.lightbox-topbar { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; padding: 0 34px; border-bottom: 1px solid rgba(255,255,255,.1); font-size: 8px; letter-spacing: .25em; text-transform: uppercase; }
.lightbox-close { display: inline-flex; align-items: center; gap: 15px; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.lightbox-close b { font: 300 26px/1 "Cormorant Garamond",serif; }
.lightbox-stage { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; padding: 18px 100px; overflow: hidden; }
.lightbox-media { display: grid; place-items: center; max-width: calc(100vw - 220px); max-height: calc(100dvh - 190px); overflow: hidden; transition: width .58s cubic-bezier(.22,.8,.24,1),height .58s cubic-bezier(.22,.8,.24,1); }
.lightbox-stage img { display: block; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: contain !important; object-position: center !important; transform: none !important; box-shadow: 0 24px 80px rgba(0,0,0,.36); animation: lightbox-image-in .46s cubic-bezier(.2,.7,.2,1) both; }
.lightbox-nav { position: absolute; z-index: 3; top: 50%; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(25,21,18,.5); color: #eee8dd; font-size: 18px; cursor: pointer; backdrop-filter: blur(8px); transition: background .2s,border-color .2s,transform .2s; }
.lightbox-nav:hover { background: #40201f; border-color: rgba(255,255,255,.65); transform: scale(1.05); }
.lightbox-nav--prev { left: 26px; }
.lightbox-nav--next { right: 26px; }
.lightbox-caption { position: relative; z-index: 2; align-self: center; margin: 0; padding: 0 24px; text-align: center; color: #a99f94; font: italic 17px "Cormorant Garamond",serif; }
@keyframes lightbox-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes lightbox-image-in { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: scale(1); } }
.portfolio-switcher { display: flex; justify-content: center; padding: 75px 24px; background: #eee8dd; }
.portfolio-switcher a { display: flex; gap: 40px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); text-transform: uppercase; font-size: 9px; letter-spacing: .18em; }

@media (max-width: 900px) {
  .site-header { height: 88px; grid-template-columns: 1fr auto; padding: 0 24px; }
  .desktop-nav { display: none; }
  .brand-main { font-size: 23px; }
  .header-cta { font-size: 8px; }
  .header-actions { gap: 12px; }
  .language-switcher { font-size: 8px; }
  .hero { min-height: 680px; height: 92svh; }
  .hero-image { inset: 0; background-position: center top; }
  .hero-image::after { content: none; }
  .hero-shade { inset: 0; background: linear-gradient(90deg, rgba(15,10,8,.78), rgba(15,10,8,.22)), linear-gradient(0deg, rgba(10,8,7,.55), transparent); }
  .hero-copy { left: 24px; right: 24px; top: 51%; }
  .hero h1 { font-size: clamp(51px,14vw,73px); line-height: .89; }
  .hero-intro { max-width: 310px; font-size: 12px; }
  .section-pad { padding: 90px 24px; }
  .manifesto { grid-template-columns: 1fr; }
  .manifesto h2 { font-size: 48px; margin-bottom: 45px; }
  .manifesto-text { margin: 0; grid-template-columns: 1fr; gap: 12px; }
  .portfolio-head { display: block; margin-bottom: 55px; }
  .portfolio-head h2 { font-size: 55px; }
  .portfolio-head > p { margin-top: 25px; }
  .story-grid { grid-template-columns: 1fr; gap: 55px; }
  .story:nth-child(even) { margin-top: 0; }
  .story--wide .story-image-wrap { aspect-ratio: .9/1; }
  .story--portrait .story-image-wrap { aspect-ratio: .85/1; }
  /* Mobile covers fill the frame, including photos exported with slim white edges. */
  .story-image { transform: scale(1.04); }
  .story:hover .story-image { transform: scale(1.065); }
  .experience { grid-template-columns: 1fr; }
  .experience-image { min-height: 520px; }
  .experience-card { padding: 80px 24px; }
  .quote-section { padding: 100px 28px; }
  .quote-section blockquote { font-size: 44px; }
  .contact { grid-template-columns: 1fr; gap: 60px; padding-left: 38px; padding-right: 38px; overflow: hidden; background-image: none; }
  .contact h2 { max-width: 100%; font-size: clamp(48px, 14vw, 58px); line-height: .9; letter-spacing: -.035em; overflow-wrap: anywhere; }
  footer { grid-template-columns: 1fr; align-items: start; padding: 65px 24px 30px; }
  .footer-links { margin-top: 20px; }
  .copyright { margin-top: 20px !important; padding-top: 30px; }
  .back-to-top { right: 18px; bottom: 18px; width: 52px; height: 52px; }
  .session-header { height: 86px; padding: 0 22px; }
  .session-title { width:100%; padding:70px 24px 45px; }
  .session-title h1 { font-size:clamp(43px,13vw,60px); margin:18px 0 10px; }
  .session-title h2 { margin-bottom:30px; font-size:clamp(30px,9.5vw,43px); }
  .session-hero--image { grid-template-columns: 1fr; grid-template-rows: 46svh 54svh; }
  .session-hero-copy { grid-row: 2; }
  .session-hero-photo { grid-row: 1; min-height: 46svh; }
  .session-intro { padding: 90px 24px 100px; grid-template-columns: 1fr; gap: 32px; }
  .session-intro h2 { font-size: 42px; }
  .gallery-wide { height: 115vw; }
  .gallery-pair { padding: 70px 24px 90px; grid-template-columns: .75fr 1fr; gap: 14px; align-items: end; }
  .gallery-small { margin-bottom: 70px !important; }
  .gallery-cinema { width: 100%; aspect-ratio: .9/1; }
  .gallery-offset { padding: 90px 24px; grid-template-columns: 1fr; gap: 60px; }
  .gallery-offset blockquote { padding: 0 16px; }
  .gallery-final { width: 92%; aspect-ratio: .82/1; }
  .session-next { padding: 100px 24px; }
  .session-next h2 { font-size: 57px; }
  .complete-gallery { columns: 2 150px; column-gap: 0; padding: 0 0 80px; }
  .lightbox-hint { opacity: .82; transform: scale(.9); right: 12px; top: 12px; width: 34px; height: 34px; }
  .lightbox { grid-template-rows: 64px minmax(0,1fr) 58px; }
  .lightbox-topbar { padding: 0 18px; }
  .lightbox-stage { padding: 10px 12px; }
  .lightbox-media { max-width: calc(100vw - 24px); max-height: calc(100dvh - 142px); }
  .lightbox-nav { top: auto; bottom: 70px; width: 44px; height: 44px; background: rgba(25,21,18,.7); }
  .lightbox-nav--prev { left: 14px; }
  .lightbox-nav--next { right: 14px; }
  .lightbox-caption { padding: 0 68px; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .story-image { transition: none; }
  .lightbox,.lightbox-stage img { animation: none; }
  .lightbox-media { transition: none; }
}

/* Administrable portfolios */
.session-managed-hero{min-height:100svh;display:grid;grid-template-columns:.82fr 1.18fr;padding-top:105px;background:#201b17;color:#f5f0e8}.session-managed-copy{padding:12vh 7vw 8vh;display:flex;flex-direction:column;justify-content:center}.session-managed-copy>p,.session-managed-copy>span{font-size:9px;letter-spacing:.24em;text-transform:uppercase}.session-managed-copy h1{margin:28px 0 65px;font:400 clamp(62px,7vw,112px)/.86 "Cormorant Garamond",serif}.session-managed-cover{height:calc(100svh - 105px);overflow:hidden;background:#171512;display:flex;align-items:flex-end}.session-managed-cover img{display:block;width:100%;height:100%;object-fit:cover;transform-origin:center bottom}
.managed-gallery{background:#171512}.managed-gallery figure{margin:0;overflow:hidden;background:#171512}.managed-gallery img{display:block;width:100%;height:100%;object-fit:cover;transform-origin:center}.managed-gallery--masonry{columns:3;column-gap:0}.managed-gallery--masonry figure{break-inside:avoid;aspect-ratio:4/5}.managed-gallery--grid{display:grid;grid-template-columns:repeat(3,1fr)}.managed-gallery--grid figure{aspect-ratio:4/5}.managed-gallery--editorial{padding:0;display:grid;grid-template-columns:repeat(12,1fr);gap:0}.managed-gallery--editorial figure{grid-column:span 5;aspect-ratio:4/5}.managed-gallery--editorial figure:nth-child(3n+1){grid-column:span 7}.managed-gallery--editorial figure:nth-child(3n){grid-column:3/span 8}.managed-gallery--editorial .managed-photo--wide{grid-column:1/-1;aspect-ratio:16/9}.managed-gallery--editorial .managed-photo--small{grid-column:span 4}

/* Private portfolio studio */
.admin-shell{min-height:100svh;display:grid;grid-template-columns:270px 1fr;background:#f2eee7;color:#201d19}.admin-side{position:sticky;top:0;height:100svh;padding:34px 24px 25px;display:flex;flex-direction:column;background:#1d1a17;color:#eee8dd}.admin-logo{font:500 26px "Cormorant Garamond";letter-spacing:.13em}.admin-logo small{display:block;font:7px "DM Sans";letter-spacing:.35em}.admin-new{margin:45px 0 22px;padding:14px;border:1px solid #6e645a;background:transparent;color:inherit;text-align:left;cursor:pointer}.admin-side nav{display:grid;gap:5px;overflow:auto}.admin-side nav button{padding:13px 12px;border:0;background:transparent;color:#a9a096;text-align:left;cursor:pointer}.admin-side nav button.active{background:#332d27;color:#fff}.admin-side nav span,.admin-side nav small{display:block}.admin-side nav small{margin-top:5px;font-size:8px;letter-spacing:.12em;text-transform:uppercase}.admin-user{margin-top:auto;padding-top:20px;border-top:1px solid #39332e;font-size:10px;display:grid;gap:8px}.admin-user a{text-decoration:underline}.admin-work{padding:48px 5vw 100px;min-width:0}.admin-welcome{padding-top:20vh}.admin-welcome>p{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.admin-welcome h1{font:400 clamp(54px,6vw,90px)/.92 "Cormorant Garamond";margin:24px 0}.admin-welcome em{color:#7a5549}.admin-top{display:flex;justify-content:space-between;gap:30px;align-items:end;padding-bottom:28px;border-bottom:1px solid #cfc6b9}.admin-top p{font-size:9px;letter-spacing:.18em;text-transform:uppercase}.admin-top h1{font:400 50px "Cormorant Garamond";margin:8px 0}.admin-top>div:last-child{display:flex;gap:12px}.admin-top button,.admin-top a{padding:13px 17px;border:1px solid #2a2520;background:transparent;font-size:9px;text-transform:uppercase}.admin-top button{background:#211d19;color:#fff}.admin-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:35px 0 65px}.admin-fields label,.photo-tools label{font-size:8px;letter-spacing:.12em;text-transform:uppercase}.admin-fields input,.admin-fields textarea,.admin-fields select,.photo-tools input,.photo-tools select{width:100%;margin-top:8px;padding:12px;border:1px solid #cfc5b7;background:#faf7f1}.admin-fields textarea{min-height:95px}.admin-fields .span-2{grid-column:span 2}.admin-fields .publish{display:flex;align-items:center;gap:10px}.admin-fields .publish input{width:auto;margin:0}.admin-photo-head{display:flex;justify-content:space-between;align-items:end}.admin-photo-head h2{font:400 38px "Cormorant Garamond"}.upload-button{padding:15px 20px;background:#4a2725;color:#fff;font-size:9px;text-transform:uppercase;cursor:pointer}.upload-button input{display:none}.admin-notice{padding:10px;background:#dfe7d9}.admin-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.admin-photo-grid article{background:#e5ded3;border:1px solid #d0c6b9}.admin-thumb{position:relative;aspect-ratio:4/5;overflow:hidden;background:#24201c}.admin-thumb img{height:100%;object-fit:cover}.admin-thumb>span,.admin-thumb>b{position:absolute;top:10px;padding:6px;font-size:8px}.admin-thumb>span{left:10px;background:#201d19;color:#fff}.admin-thumb>b{right:10px;background:#eee7dc}.photo-tools{padding:13px;display:grid;gap:10px}.tool-row{display:flex;gap:5px}.tool-row button{padding:8px;border:1px solid #bbb0a2;background:#f7f2ea}.tool-row .danger{margin-left:auto;color:#8d2e28}
@media(max-width:900px){.session-managed-hero{grid-template-columns:1fr;padding-top:86px}.session-managed-copy{padding:70px 24px}.session-managed-hero>img{height:auto;object-fit:contain;object-position:top}.managed-gallery--masonry{columns:2}.managed-gallery--grid{grid-template-columns:repeat(2,1fr)}.managed-gallery--editorial{padding:24px;grid-template-columns:1fr}.managed-gallery--editorial figure,.managed-gallery--editorial figure:nth-child(n){grid-column:1}.admin-shell{grid-template-columns:1fr}.admin-side{position:relative;height:auto}.admin-work{padding:35px 18px}.admin-fields{grid-template-columns:1fr 1fr}.admin-photo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.managed-gallery--masonry{columns:1}.admin-fields,.admin-photo-grid{grid-template-columns:1fr}.admin-fields .span-2{grid-column:auto}.admin-top{display:block}.admin-top>div:last-child{margin-top:20px;flex-wrap:wrap}}

.admin-thumb img{transform-origin:center}
.crop-help{margin:0;padding:9px 10px;background:#d8d0c4;color:#50483f;font-size:8px;line-height:1.5}
@media(max-width:900px){.session-managed-cover{height:54svh}.session-managed-cover img{height:100%;object-fit:cover}}
.admin-settings-link{margin:0 0 18px;padding:13px 12px;border:1px solid #4d453e;background:transparent;color:#d7cec4;text-align:left;cursor:pointer}.admin-settings-link.active{background:#4a2725;color:#fff}.admin-settings h2{margin:52px 0 18px;font:400 36px var(--display-font,"Cormorant Garamond"),serif}.admin-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-content-grid label{font-size:8px;letter-spacing:.12em;text-transform:uppercase}.admin-content-grid textarea{width:100%;min-height:92px;margin-top:8px;padding:12px;border:1px solid #cfc5b7;background:#faf7f1;font:13px var(--body-font,"DM Sans"),sans-serif;text-transform:none;letter-spacing:0}
@media(max-width:700px){.form-row,.admin-content-grid{grid-template-columns:1fr}.contact{padding-left:32px;padding-right:32px}.contact h2{font-size:clamp(44px,13vw,55px)}}

/* Legible administration interface */
.admin-side nav button{font-size:14px;line-height:1.4}
.admin-side nav small{font-size:11px;line-height:1.35}
.admin-new,.admin-user{font-size:13px}
.admin-welcome>p,.admin-top p{font-size:13px}
.admin-top button,.admin-top a,.upload-button{font-size:12px}
.admin-fields label,.photo-tools label{font-size:12px;line-height:1.45;letter-spacing:.08em}
.admin-fields input,.admin-fields textarea,.admin-fields select,.photo-tools input,.photo-tools select{font-size:14px;line-height:1.45;padding:13px}
.admin-content-grid label{font-size:12px;line-height:1.45;letter-spacing:.08em}
.admin-content-grid textarea{font-size:14px;line-height:1.5;padding:13px}
.admin-photo-head p{font-size:13px}
.admin-thumb>span,.admin-thumb>b{font-size:11px}
.crop-help{padding:11px 12px;font-size:12px;line-height:1.5}
.tool-row button{padding:9px 11px;font-size:12px}
.admin-top .admin-delete-album{background:transparent;color:#8d2e28;border-color:#8d2e28}
.admin-top .admin-delete-album:hover{background:#8d2e28;color:#fff}
.admin-top button:disabled,.upload-button.disabled{cursor:wait;opacity:.62}

/* HostGator PHP administration */
.install-body,.admin-body{margin:0;background:#eee8dd;color:#1c1a17;font:400 16px/1.5 "DM Sans",sans-serif}
.install-body{min-height:100svh;display:grid;place-items:center;padding:28px}
.install-card{width:min(680px,100%);padding:45px;background:#faf7f1;border:1px solid #d4cabb;box-shadow:0 30px 80px rgba(35,28,22,.12)}
.install-card h1,.admin-work h1,.admin-card h2{font-family:"Cormorant Garamond",serif;font-weight:400}
.install-card h1{font-size:48px;margin:0 0 10px}.admin-form{display:grid;gap:17px}.admin-form label{display:grid;gap:7px;font-size:13px}
.admin-form input,.admin-form textarea,.admin-form select{width:100%;padding:13px;border:1px solid #c9bdad;background:#fff;font:inherit}
.admin-form button,.admin-upload button,.admin-public-link{border:0;padding:14px 18px;background:#241f1b;color:#fff;font:500 12px "DM Sans";letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.admin-error{padding:13px;background:#ead7d4;color:#6b211d}
.admin-body{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100svh}.admin-side nav a{padding:13px 0;border-bottom:1px solid #3d3731;color:#d8cfc5;font-size:13px}
.admin-work{padding:45px 5vw 100px}.admin-top{display:flex;justify-content:space-between;align-items:end}.admin-top h1{font-size:58px;margin:6px 0}.admin-public-link{height:max-content}
.admin-card{margin-top:35px;padding:32px;background:#f8f4ed;border:1px solid #d5cbbd}.admin-card h2{font-size:42px;margin:0 0 24px}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.admin-tabs a{padding:10px 13px;border:1px solid #c6b9a8}.admin-tabs a.active{background:#241f1b;color:#fff}
.admin-check{display:flex!important;align-items:center;gap:8px}.admin-check input{width:auto}.admin-upload{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:22px 0}.admin-upload label{display:grid;gap:8px}
.admin-photo{overflow:hidden}.admin-photo-preview{width:100%;aspect-ratio:4/5;overflow:hidden;background:#211d19}.admin-photo-preview img{width:100%;height:100%;object-fit:cover;object-position:center top;transform:translateY(var(--admin-trim-y,0)) scale(var(--admin-zoom,1));transform-origin:center top;transition:transform .18s ease}.admin-photo-form{padding:13px}.admin-photo-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 13px 15px}.admin-photo-actions form{display:flex;gap:4px}.admin-photo-actions button{padding:8px 10px;border:1px solid #b9ad9d;background:#fff;cursor:pointer}.admin-photo-actions .danger{color:#922d28;border-color:#922d28}
.admin-password{max-width:560px;margin-top:35px;padding-top:28px;border-top:1px solid #d5cbbd}.reservation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.reservation-list article{padding:20px;background:#fff;border:1px solid #d8cfc2}.reservation-list h3{margin:0 0 8px;font:500 25px "Cormorant Garamond"}.reservation-list p{font-size:13px}.reservation-list small{color:#746b61}
.portfolio-delete{margin:15px 0 30px}.portfolio-delete button{padding:10px 13px;border:1px solid #922d28;background:transparent;color:#922d28;cursor:pointer}
@media(max-width:900px){.admin-body{grid-template-columns:1fr}.admin-side{height:auto;position:relative}.admin-work{padding:28px 18px 70px}.admin-top h1{font-size:42px}.admin-card{padding:20px}.admin-upload{display:grid}.reservation-list{grid-template-columns:1fr}.install-card{padding:28px}.install-card h1{font-size:40px}}
@media(max-width:700px){.complete-gallery.layout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.complete-gallery.layout-editorial{grid-template-columns:1fr}.complete-gallery.layout-editorial .complete-gallery__item,.complete-gallery.layout-editorial .complete-gallery__item:nth-child(3n+1){grid-column:auto}}

/* Docampo Club */
.club-preview{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end;background:#c9b9a4;color:#211c18}.club-preview h2{margin:12px 0 0;font:400 clamp(62px,8vw,118px)/.83 var(--display-font,"Cormorant Garamond"),serif}.club-preview h2 em{color:#70453e}.club-preview>div:last-child{max-width:510px}.club-preview>div:last-child p{margin:0 0 35px;line-height:1.9}.membership-page{background:#eee8dd;color:#211d19}.membership-header-actions{display:flex;align-items:center;gap:30px}.membership-hero{min-height:100svh;padding-top:105px;display:grid;grid-template-columns:.84fr 1.16fr;background:#1b1714;color:#f3ede4}.membership-hero-copy{padding:12vh 6vw 8vh;display:flex;flex-direction:column;justify-content:center}.membership-hero-copy h1{margin:28px 0 40px;font:400 clamp(74px,9vw,145px)/.72 "Cormorant Garamond",serif}.membership-hero-copy h1 em{color:#b88c78}.membership-hero-copy>p:not(.kicker){max-width:430px;font:300 20px/1.6 "Cormorant Garamond",serif}.membership-hero-copy .text-link{margin-top:45px}.membership-hero-image{min-height:calc(100svh - 105px);background:linear-gradient(90deg,rgba(20,16,13,.25),transparent 35%),url('/assets/gallery/2021-11-13_CWOnSfPrb6M_1.jpg') center 18%/cover no-repeat}.membership-intro{display:grid;grid-template-columns:.3fr 1fr;gap:8vw;background:#f2ede5}.membership-intro>div{max-width:830px}.membership-intro h2,.membership-interest h2{margin:20px 0 35px;font:400 clamp(54px,7vw,102px)/.88 "Cormorant Garamond",serif}.membership-intro>div>p:last-child{max-width:650px;line-height:1.9}.membership-paths{display:grid;grid-template-columns:repeat(3,1fr);background:#211c18;color:#eee8dd}.membership-paths article{min-height:420px;padding:70px 4vw;border-right:1px solid rgba(255,255,255,.12)}.membership-paths article>span{display:block;margin-bottom:85px;color:#a99787;font-size:10px;letter-spacing:.2em}.membership-paths h3{margin:18px 0;font:400 42px "Cormorant Garamond",serif}.membership-paths article>p:last-child{max-width:320px;color:#bdb2a7;line-height:1.8}.membership-interest{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;background:#b9a48d}.membership-interest>div:first-child>p:last-child{max-width:470px;line-height:1.8}.membership-form{display:grid;gap:19px;padding:42px;background:#f5f0e8}.membership-form label{display:grid;gap:8px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.membership-form input,.membership-form select,.membership-form textarea{width:100%;padding:14px 5px;border:0;border-bottom:1px solid #bdb0a0;background:transparent;border-radius:0;font:400 15px "DM Sans",sans-serif}.membership-form textarea{border:1px solid #cfc4b5;padding:14px}.membership-form small{color:#766d64;line-height:1.5}.membership-hp{position:absolute!important;left:-9999px!important}.membership-admin-list article{border-left:4px solid #9b755d}.membership-admin-list article.status-contacted{border-left-color:#657b61}.membership-admin-list article.status-archived{opacity:.65;border-left-color:#999}.membership-status-form{display:flex;gap:8px;margin-top:15px}.membership-status-form select,.membership-status-form button{padding:9px;border:1px solid #b9ad9d;background:#fff}.membership-status-form button{background:#241f1b;color:#fff;cursor:pointer}
@media(max-width:900px){.club-preview,.membership-intro,.membership-interest{grid-template-columns:1fr}.club-preview{gap:45px}.membership-hero{grid-template-columns:1fr;grid-template-rows:auto 50svh}.membership-hero-copy{padding:95px 24px 70px}.membership-hero-copy h1{font-size:86px}.membership-hero-image{min-height:50svh}.membership-paths{grid-template-columns:1fr}.membership-paths article{min-height:auto;padding:55px 30px;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.membership-paths article>span{margin-bottom:45px}.membership-header-actions{gap:12px}.membership-form{padding:28px 20px}}
.membership-intro h2 em{color:#70453e}
.membership-interest--compact{padding-top:110px;padding-bottom:110px;align-items:center}.membership-interest--compact h2{font-size:clamp(54px,6.2vw,92px)}
@media(max-width:900px){.membership-interest--compact{padding-top:85px;padding-bottom:85px}}
.form-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.request-delete-form{margin-top:18px}.request-delete-form button{padding:8px 11px;border:1px solid #922d28;background:transparent;color:#922d28;font-size:11px;cursor:pointer}.request-delete-form button:hover{background:#922d28;color:#fff}
