@font-face {
  font-family:Cormorant;
  src:url('/fonts/cormorant.ttf') format('truetype');
  font-weight:400;
  font-display:swap}
@font-face {
  font-family:Cormorant;
  src:url('/fonts/cormorant-italic.ttf') format('truetype');
  font-style:italic;
  font-weight:400;
  font-display:swap}
@font-face {
  font-family:Pinyon;
  src:url('/fonts/pinyon-script.ttf') format('truetype');
  font-display:swap}
@font-face {
  font-family:Tenor;
  src:url('/fonts/tenor-sans.ttf') format('truetype');
  font-display:swap}

:root {
  --paper:#fbf9f5;
  --cream:#f3f5f5;
  --ink:#344d60;
  --muted:#596e7b;
  --line:#c3cfd6;
  --accent:#526f86;
  --dark:#344d60;
  --blue:#e7eef3;
  --serif:Cormorant,Georgia,serif;
  --sans:Tenor,Arial,sans-serif;
  --script:Pinyon,cursive}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:14px/1.8 var(--sans)}
h1,h2,h3,p,figure {
  margin:0}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.07;
  letter-spacing:-.025em}
h1 {
  font-size:clamp(55px,6vw,90px)}
h2 {
  font-size:clamp(43px,4.5vw,67px)}
h3 {
  font-size:32px}
h1 em,h2 em {
  font-family:var(--script);
  font-weight:400;
  letter-spacing:0;
  line-height:1.15}
a {
  color:inherit;
  text-decoration:none}
button,input,select,textarea {
  font:inherit;
  color:inherit}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent}
button {
  cursor:pointer}
img {
  display:block;
  max-width:100%;
  height:auto}
button:disabled {
  opacity:.5;
  cursor:wait}
[hidden] {
  display:none!important}
:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px}
::selection {
  background:#d0dfeb}
.section-shell {
  width:min(1200px,86%);
  margin-inline:auto}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.19em;
  font-size:10px;
  line-height:1.8;
  margin-bottom:22px}
.small-copy {
  font-size:11px;
  color:var(--muted)}
.skip-link {
  position:fixed;
  top:-90px;
  left:15px;
  background:var(--paper);
  padding:12px;
  z-index:100}
.skip-link:focus {
  top:10px}
.site-header {
  width:90%;
  max-width:1440px;
  margin:auto;
  min-height:126px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.wordmark {
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:1}
.wordmark>span:first-child {
  font-family:var(--script);
  font-size:43px;
  white-space:nowrap}
.wordmark-sub {
  font-size:9px;
  letter-spacing:.25em;
  margin-top:10px}
.site-header nav {
  display:flex;
  align-items:center;
  gap:38px;
  font-size:11px}
.site-header nav a {
  padding:10px 0;
  border-bottom:1px solid transparent}
.site-header nav a:hover,.site-header nav a[aria-current] {
  border-color:var(--ink)}
.nav-inquire {
  display:flex;
  gap:20px}
.menu-toggle {
  display:none;
  background:none;
  border:0}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:35px;
  padding:17px 27px;
  border:1px solid var(--ink);
  font-size:11px;
  letter-spacing:.04em;
  min-height:54px;
  background:transparent}
.button span {
  font-size:23px;
  line-height:1}
.button-dark {
  background:var(--ink);
  color:var(--paper)}
.button-light {
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper)}
.button:hover {
  background:var(--accent);
  border-color:var(--accent);
  color:white}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  font-size:11px;
  border-bottom:1px solid currentColor;
  padding:9px 0}
.text-link span {
  font-size:23px}
.editorial-hero {
  background:var(--blue);
  padding:65px 7% 70px}
.hero-copy {
  text-align:center;
  max-width:850px;
  margin:auto}
.hero-copy h1 {
  font-size:clamp(60px,6.8vw,100px)}
.hero-copy>p:not(.eyebrow) {
  max-width:470px;
  margin:24px auto 15px;
  font-size:13px}
.hero-collage {
  position:relative;
  width:min(1010px,100%);
  height:720px;
  margin:55px auto 0}
.collage-photo {
  position:absolute;
  overflow:hidden}
.collage-photo a,.collage-photo img {
  width:100%;
  height:100%;
  display:block}
.collage-photo img {
  object-fit:cover;
  transition:transform .6s}
.collage-photo a:hover img {
  transform:scale(1.025)}
.collage-photo-1 {
  width:45%;
  height:49%;
  left:0;
  top:0;
  z-index:2}
.collage-photo-2 {
  width:43%;
  height:62%;
  right:0;
  top:10%}
.collage-photo-3 {
  width:40%;
  height:45%;
  left:12%;
  bottom:0;
  z-index:3;
  border:8px solid var(--blue)}
.collage-photo-4 {
  width:37%;
  height:32%;
  right:3%;
  bottom:0;
  z-index:4;
  border-top:8px solid var(--blue);
  border-left:8px solid var(--blue)}
.collage-note {
  position:absolute;
  left:3%;
  top:55%;
  font:26px/1.25 var(--serif)}
.collage-note em {
  font-family:var(--script);
  font-size:34px}
.intro {
  text-align:center;
  padding:100px 0}
.intro>p:last-child {
  max-width:560px;
  margin:28px auto 0;
  font-size:13px;
  line-height:2}
.experience {
  padding:85px 0;
  background:#eef2f4}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:50px;
  margin-bottom:45px}
.section-heading>p {
  max-width:300px;
  font-size:12px}
.experience-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:36px}
.experience-card img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover}
.experience-card>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:22px;
  border-top:1px solid var(--line);
  margin-top:22px;
  gap:15px}
.experience-card h3 {
  font-size:32px}
.experience-card p {
  font-size:11px;
  max-width:290px;
  margin-top:12px}
.about-editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11%;
  align-items:center;
  padding-block:110px}
.about-portrait img {
  width:100%;
  height:580px;
  object-fit:cover}
.about-copy>p:not(.eyebrow) {
  margin-top:24px;
  font-size:13px;
  max-width:390px}
.about-copy .text-link {
  margin-top:25px}
.closing-cta {
  text-align:center;
  background:var(--accent);
  color:var(--paper);
  padding:65px 20px 75px}
.botanical {
  width:44px;
  height:57px;
  stroke:currentColor;
  stroke-width:1;
  margin-bottom:20px}
.closing-cta h2 {
  margin-bottom:30px}
.site-footer {
  padding:65px 7% 25px;
  text-align:center}
.site-footer .wordmark {
  display:inline-flex}
.site-footer>p {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.14em;
  margin:25px 0}
.footer-links {
  display:flex;
  gap:30px;
  justify-content:center;
  font-size:11px}
.admin-link {
  opacity:.6}
.footer-bottom {
  border-top:1px solid var(--line);
  margin-top:40px;
  padding-top:20px;
  font-size:9px;
  letter-spacing:.05em}
.page-intro {
  text-align:center;
  padding:65px 0 70px}
.page-intro>p:last-child {
  max-width:450px;
  margin:25px auto 0;
  font-size:13px}
.collection-heading {
  display:flex;
  justify-content:flex-end;
  border-top:1px solid var(--line);
  padding:20px 0;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.1em}
.portfolio {
  padding-bottom:85px}
.portfolio-grid {
  columns:3;
  column-gap:20px}
.photo-card {
  break-inside:avoid;
  margin:0 0 20px}
.photo-card a {
  display:block;
  position:relative;
  overflow:hidden}
.photo-card img {
  width:100%}
.photo-expand {
  position:absolute;
  right:12px;
  bottom:12px;
  background:var(--paper);
  width:32px;
  height:32px;
  text-align:center;
  opacity:0}
.photo-card a:hover .photo-expand,.photo-card a:focus-visible .photo-expand {
  opacity:1}
.lightbox {
  position:fixed;
  inset:0;
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  border:0;
  margin:0;
  padding:24px;
  background:#1c2c37;
  color:white}
.lightbox::backdrop {
  background:#1c2c37}
.lightbox-close {
  display:block;
  margin-left:auto;
  border:0;
  background:none;
  color:white;
  padding:10px;
  font-size:12px}
.lightbox-close span {
  font-size:25px;
  margin-left:15px}
.lightbox-body {
  display:grid;
  grid-template-columns:50px minmax(0,1fr) 50px;
  align-items:center;
  height:calc(100% - 65px);
  gap:15px}
.lightbox-body figure {
  min-width:0;
  text-align:center}
.lightbox-image {
  max-height:calc(100dvh - 155px);
  width:auto;
  max-width:100%;
  margin:auto;
  object-fit:contain}
.lightbox-prev,.lightbox-next {
  border:0;
  background:none;
  color:white;
  font-size:28px;
  padding:10px}
.lightbox-counter {
  font-size:11px;
  margin-top:15px}
.inquiry-layout {
  display:grid;
  grid-template-columns:.8fr 1fr;
  gap:12%;
  padding-block:65px 90px}
.inquiry-intro>p:not(.eyebrow) {
  font-size:13px;
  margin-top:25px;
  max-width:370px}
.inquiry-image {
  margin-top:40px}
.inquiry-image img {
  width:100%;
  height:430px;
  object-fit:cover}
.inquiry-intro .small-copy {
  font-size:10px!important}
.form-panel {
  border-top:1px solid var(--ink);
  padding-top:30px}
.form-title {
  font-size:47px;
  margin-bottom:35px}
.form-intro {
  display:flex;
  justify-content:space-between;
  gap:15px;
  font-size:12px;
  margin-bottom:25px}
.form-intro span {
  font-size:9px;
  color:var(--muted)}
.field {
  margin-bottom:25px;
  min-width:0}
.field label {
  display:block;
  font-size:10px;
  letter-spacing:.04em;
  margin-bottom:8px}
.field input,.field select,.field textarea {
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  min-height:45px;
  padding:9px 0;
  font-size:13px}
.field textarea {
  resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus {
  outline:none;
  border-color:var(--ink);
  box-shadow:0 1px var(--ink)}
.field input::placeholder,.field textarea::placeholder {
  color:#75838d;
  font-size:11px}
.optional {
  font-size:8px;
  margin-left:8px;
  color:var(--muted)}
.field-error {
  display:block;
  color:#9b3f3f;
  font-size:11px}
.field-error:empty {
  display:none}
.field [aria-invalid=true] {
  border-color:#9b3f3f}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px}
.honey-field {
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden}
.consent {
  display:flex;
  align-items:start;
  gap:12px;
  font-size:10px;
  line-height:1.8;
  margin:25px 0}
.consent input {
  flex-shrink:0;
  margin-top:5px;
  accent-color:var(--ink)}
.consent a {
  text-decoration:underline}
.form-panel .button {
  margin-top:10px}
#form-status {
  font-size:12px;
  margin-top:20px}
.form-success {
  padding:45px 0}
.form-success p {
  margin:25px 0}
.next-steps {
  border-top:1px solid var(--line);
  padding:45px 0 85px}
.steps-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:55px;
  margin-top:30px}
.steps-grid>div>span {
  font-size:10px;
  letter-spacing:.1em}
.steps-grid h3 {
  font-size:30px;
  margin:20px 0 15px}
.steps-grid p {
  font-size:12px;
  max-width:300px}
.legal {
  max-width:800px;
  padding-block:65px 100px}
.legal h1 {
  margin-bottom:25px}
.legal h2 {
  font-size:34px;
  margin:35px 0 15px}
.legal p {
  margin-bottom:15px;
  font-size:13px}
.legal a {
  text-decoration:underline}
.not-found {
  min-height:55vh}
.not-found .button {
  margin-top:35px}

.studio-shell {
  width:min(1250px,90%);
  margin:55px auto 90px}
.login-panel {
  max-width:460px;
  margin:auto;
  border:1px solid var(--line);
  padding:40px}
.login-panel h1 {
  font-size:60px}
.login-panel form {
  margin-top:30px}
.login-panel .button {
  width:100%}
.login-panel>.text-link {
  margin-top:20px}
.plain-button {
  background:none;
  border:0;
  text-decoration:underline;
  text-underline-offset:4px;
  font-size:11px;
  padding:12px 5px}
.studio-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.studio-heading h1 {
  font-size:55px}
.studio-heading p:not(.eyebrow) {
  font-size:12px;
  margin-top:15px}
.studio-actions {
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap}
.studio-tabs {
  display:flex;
  gap:30px;
  border-bottom:1px solid var(--line);
  margin:30px 0}
.studio-tabs button {
  background:none;
  border:0;
  border-bottom:2px solid transparent;
  padding:15px 0;
  font-size:12px}
.studio-tabs button[aria-pressed=true] {
  border-color:var(--ink)}
.studio-help {
  font-size:12px;
  margin-bottom:25px}
.placement-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:25px}
.placement-card,.gallery-edit-card {
  border:1px solid var(--line);
  padding:18px;
  min-width:0}
.placement-card h2 {
  font-size:26px;
  margin:10px 0 20px}
.placement-card img {
  width:100%;
  height:200px;
  object-fit:cover}
.placement-card .upload-label {
  display:flex;
  justify-content:center;
  align-items:center;
  margin:15px 0;
  min-height:44px;
  border:1px solid var(--line);
  font-size:11px}
.upload-label {
  position:relative;
  overflow:hidden;
  cursor:pointer}
.upload-label input {
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer}
.upload-label:focus-within {
  outline:2px solid var(--accent);
  outline-offset:4px}
.placement-card .field,.gallery-edit-card .field {
  margin-bottom:12px}
.placement-card .field input,.gallery-edit-card .field input,.placement-card .field select {
  font-size:12px}
.gallery-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:20px}
.gallery-toolbar p {
  font:30px var(--serif)}
.admin-gallery {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px}
.gallery-edit-card {
  padding:12px}
.gallery-edit-card img {
  width:100%;
  height:170px;
  object-fit:cover;
  margin-bottom:15px}
.gallery-edit-actions {
  display:flex;
  justify-content:space-between;
  gap:8px}
.gallery-edit-actions button {
  background:none;
  border:1px solid var(--line);
  padding:8px;
  min-width:36px;
  font-size:12px}
.gallery-edit-actions .remove {
  border:0;
  color:#9b3f3f}
#studio-status,#login-status {
  font-size:12px;
  white-space:pre-line;
  margin-top:20px}
#studio-status:not(:empty) {
  padding:14px;
  background:var(--blue);
  border-left:3px solid var(--ink)}
#studio-status[data-error],#login-status[data-error] {
  color:#9b3f3f}
.remove-dialog {
  background:var(--paper);
  color:var(--ink);
  max-width:460px;
  border:1px solid var(--line);
  padding:32px}
.remove-dialog::backdrop {
  background:#1c2c3799}
.remove-dialog h2 {
  font-size:35px}
.remove-dialog p {
  font-size:13px;
  margin:20px 0}
.remove-dialog>div {
  display:flex;
  gap:20px}
.upload-progress {
  font-size:11px}

@media(min-width:1600px) {
  .hero-collage {
  height:790px}
}
@media(max-width:900px) {
  .site-header nav {
  gap:22px}
.experience-grid {
  gap:22px}
.experience-card h3 {
  font-size:27px}
.hero-collage {
  height:600px}
.about-editorial {
  gap:7%}
.about-portrait img {
  height:480px}
.inquiry-layout {
  gap:7%}
.placement-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-gallery {
  grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px) {
  .site-header {
  min-height:100px;
  width:88%;
  position:relative}
.wordmark>span:first-child {
  font-size:34px}
.wordmark-sub {
  font-size:8px}
.menu-toggle {
  display:flex;
  align-items:center;
  gap:13px;
  font-size:10px;
  padding:12px 0}
.menu-icon {
  font-size:20px}
.site-header nav {
  display:none;
  position:absolute;
  top:100%;
  left:-7%;
  width:114%;
  background:var(--paper);
  z-index:20;
  padding:25px 8%;
  border-block:1px solid var(--line)}
.site-header nav.is-open {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:12px}
.section-shell {
  width:86%}
.editorial-hero {
  padding:44px 6% 40px}
.hero-copy .eyebrow {
  font-size:8px;
  letter-spacing:.14em}
.hero-copy h1 {
  font-size:57px;
  line-height:1.02}
.hero-copy h1 em {
  display:block;
  font-size:66px}
.hero-copy>p:not(.eyebrow) {
  font-size:11px;
  max-width:300px;
  margin-top:20px}
.hero-collage {
  height:490px;
  margin-top:35px}
.collage-photo-1 {
  width:61%;
  height:34%;
  top:0;
  left:0}
.collage-photo-2 {
  width:55%;
  height:49%;
  right:0;
  top:16%}
.collage-photo-3 {
  width:61%;
  height:35%;
  left:7%;
  bottom:21%;
  border-width:5px}
.collage-photo-4 {
  width:61%;
  height:30%;
  right:0;
  bottom:0;
  border-width:5px}
.collage-note {
  left:0;
  top:83%;
  font-size:17px}
.collage-note em {
  font-size:24px}
.intro {
  padding:65px 0}
.intro .eyebrow {
  font-size:8px}
.intro h2 {
  font-size:40px}
.intro>p:last-child {
  font-size:12px}
.experience {
  padding:60px 0}
.section-heading {
  display:block;
  margin-bottom:30px}
.section-heading h2 {
  font-size:44px}
.section-heading>p {
  margin-top:20px;
  font-size:12px}
.experience-grid {
  grid-template-columns:1fr;
  gap:40px}
.experience-card img {
  aspect-ratio:5/4}
.experience-card>div {
  margin-top:18px;
  padding-top:18px}
.experience-card h3 {
  font-size:34px}
.experience-card p {
  max-width:none;
  font-size:12px}
.about-editorial {
  grid-template-columns:1fr;
  gap:40px;
  padding-block:65px}
.about-portrait img {
  height:auto;
  aspect-ratio:4/5}
.about-copy h2 {
  font-size:53px}
.closing-cta {
  padding:50px 20px 60px}
.closing-cta h2 {
  font-size:44px}
.site-footer {
  padding-top:45px}
.page-intro {
  padding:40px 0 45px}
.page-intro h1 {
  font-size:52px}
.page-intro>p:last-child {
  font-size:12px}
.portfolio-grid {
  columns:2;
  column-gap:12px}
.photo-card {
  margin-bottom:12px}
.portfolio {
  padding-bottom:50px}
.lightbox {
  padding:15px 5px}
.lightbox-body {
  grid-template-columns:28px minmax(0,1fr) 28px;
  gap:2px}
.lightbox-prev,.lightbox-next {
  font-size:22px;
  padding:0}
.inquiry-layout {
  grid-template-columns:1fr;
  gap:45px;
  padding-block:40px 60px}
.inquiry-intro h1 {
  font-size:66px}
.inquiry-intro>p:not(.eyebrow) {
  max-width:none;
  font-size:12px}
.inquiry-image {
  margin-top:30px}
.inquiry-image img {
  height:300px}
.form-title {
  font-size:45px;
  max-width:330px}
.form-row {
  gap:18px}
.next-steps {
  padding:35px 0 60px}
.steps-grid {
  grid-template-columns:1fr;
  gap:30px}
.steps-grid>div {
  border-bottom:1px solid var(--line);
  padding-bottom:25px}
.steps-grid h3 {
  margin-top:10px}
.steps-grid p {
  max-width:none}
.legal {
  padding-top:35px}
.legal h1 {
  font-size:54px}
.login-panel {
  padding:28px}
.studio-heading {
  display:block}
.studio-heading h1 {
  font-size:45px}
.studio-actions {
  margin-top:25px;
  gap:15px}
.placement-grid {
  grid-template-columns:1fr}
.admin-gallery {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px}
.gallery-toolbar {
  align-items:start;
  flex-direction:column}
.gallery-edit-card img {
  height:145px}
.gallery-edit-actions {
  flex-wrap:wrap}
.gallery-edit-actions button {
  min-width:30px}
.footer-links {
  gap:22px}
}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
* {
  transition:none!important}
}
@media(min-width:651px) {
  .collage-note {top:auto;bottom:-42px;left:0;font-size:18px}
  .collage-note br {display:none}
  .collage-note em {font-size:24px}
}
/* Pricing and gallery collections */
.collection-heading {justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap}
.gallery-filters {display:flex;gap:26px;flex-wrap:wrap}
.gallery-filters button {background:none;border:0;border-bottom:1px solid transparent;padding:10px 0;font-size:11px;color:var(--muted)}
.gallery-filters button[aria-pressed=true] {border-color:var(--ink);color:var(--ink)}
.pricing-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;padding-bottom:80px}
.pricing-card img {width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:28px}
.pricing-card h2 {font-size:38px}
.session-price {font:35px var(--serif);margin:15px 0 23px}
.pricing-card ul {padding:22px 0 0;margin:0 0 22px;list-style:none;border-top:1px solid var(--line);min-height:155px;font-size:12px;line-height:2}
.location-pricing {border-block:1px solid var(--line);padding-block:55px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.location-pricing h2 {font-size:52px}
.location-pricing dl {margin:0}
.location-pricing dl>div {display:flex;justify-content:space-between;gap:25px;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px}
.location-pricing dl>div:last-child {border:0}
.location-pricing dd {margin:0}
.wedding-inquiry {text-align:center;padding-block:75px}
.wedding-inquiry p {font-size:13px;margin:25px auto 12px;max-width:400px}
@media(max-width:650px) {
 .gallery-filters {gap:16px;width:100%}
 .gallery-filters button {font-size:10px}
 .collection-heading>span {font-size:9px}
 .pricing-grid {grid-template-columns:1fr;gap:50px;padding-bottom:55px}
 .pricing-card ul {min-height:0}
 .location-pricing {grid-template-columns:1fr;gap:25px;padding-block:40px}
 .location-pricing h2 {font-size:45px}
 .wedding-inquiry {padding-block:55px}
}
.gallery-covers {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.gallery-cover img {width:100%;aspect-ratio:3/4;object-fit:cover}
.gallery-cover>div {display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:25px}
.gallery-cover h2 {font-size:34px}
.gallery-cover>div>span {font-size:24px;transition:transform .2s}
.gallery-cover:hover>div>span {transform:translate(3px,-3px)}
.cover-invitation {display:block;font-size:10px;margin-top:13px;letter-spacing:.05em}
#gallery-collection>.text-link {margin-bottom:30px}
#collection-title {font-size:44px}
@media(max-width:650px) {
 .gallery-covers {grid-template-columns:1fr;gap:45px}
 .gallery-cover img {aspect-ratio:4/5}
 .gallery-cover h2 {font-size:36px}
}
/* Alternating homepage sections and editable review ribbon. */
.editorial-hero {background:var(--paper)}
.collage-photo-3,.collage-photo-4 {border-color:var(--paper)}
.hero-gallery-link {text-align:center;margin-top:75px}
.reviews-section {background:var(--blue);padding:65px 0;overflow:hidden;text-align:center}
.reviews-section h2 {font-size:55px}
.reviews-window {overflow:hidden;margin-top:25px}
.reviews-track {display:flex;width:max-content;animation:review-scroll 65s linear infinite}
.review-card {width:390px;flex:none;padding:20px 40px;border-right:1px solid var(--line)}
.review-stars {font-size:17px;letter-spacing:.2em}
.review-card blockquote {font:26px/1.4 var(--serif);margin:20px 0}
.review-card figcaption {font-size:10px;letter-spacing:.05em}
.sample-review {display:block;font-size:9px;opacity:.8;margin-top:9px}
.reviews-track.is-paused,.reviews-window:hover .reviews-track {animation-play-state:paused}
.experience {background:var(--paper)}
.about-editorial {background:var(--blue);width:100%;padding-inline:max(7%,calc((100% - 1200px)/2))}
body:has(.editorial-hero) .closing-cta {background:var(--paper);color:var(--ink)}
body:has(.editorial-hero) .closing-cta .button {border-color:var(--ink)}
.review-editor {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.review-edit-card {border:1px solid var(--line);padding:24px;min-width:0}
.review-edit-card h2 {font-size:30px;margin-bottom:25px}
@keyframes review-scroll {to {transform:translateX(-50%)}}
@media(max-width:650px) {
 .hero-gallery-link {margin-top:35px}
 .review-card {width:320px;padding-inline:28px}
 .reviews-section h2 {font-size:43px}
 .review-editor {grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce) {
 .reviews-track {animation:none;width:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .review-card {width:auto}
 .review-card[aria-hidden=true],#pause-reviews {display:none}
}
@media(prefers-reduced-motion:reduce) and (max-width:650px) {.reviews-track {grid-template-columns:1fr}}
