
:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #f5f3ed; color: #12292f; font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; }

.gallery-shell {
  --scroll: 0;
  --wave: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 11% 18%, rgba(255, 213, 78, .3) 0 7%, transparent 7.2%),
    linear-gradient(115deg, #f8f6ef 0 58%, #e7f3f5 100%);
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 25px 38px;
  mix-blend-mode: multiply;
}
.brand { display: flex; align-items: baseline; gap: 16px; text-decoration: none; }
.brand span { font-weight: 800; font-size: 16px; letter-spacing: .32em; text-transform: uppercase; }
.brand small { font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: #5c777b; }
nav { display: flex; gap: 32px; }
nav a { position: relative; text-decoration: none; text-transform: uppercase; letter-spacing: .18em; font-size: 9px; padding: 8px 0; }
nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: #ff735e; transition: right .25s ease; }
nav a:hover::after, nav a.current::after { right: 0; }

.scroll-story { height: 420vh; position: relative; }
.sticky-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; }

.intro-copy {
  position: absolute;
  z-index: 20;
  top: 18%;
  left: 5vw;
  width: min(30vw, 420px);
  transform: translateY(calc(var(--scroll) * -24vh));
  opacity: calc(1 - var(--scroll) * 1.8);
  transition: opacity .1s linear;
}
.eyebrow { margin: 0 0 20px; color: #297784; font-size: 9px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(64px, 8vw, 128px); line-height: .72; letter-spacing: -.075em; text-transform: uppercase; }
h1 em { color: #fc6e58; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; text-transform: none; }
.instruction { margin: 34px 0 0; max-width: 250px; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.45; color: #536b70; }
.instruction span { color: #12292f; border-bottom: 2px solid #f7c845; }

.moving-memories { position: absolute; inset: 0; z-index: 5; pointer-events: none; overflow: hidden; }
.ambient-shot {
  position: absolute;
  display: block;
  width: clamp(76px, 9vw, 145px);
  height: clamp(92px, 13vh, 160px);
  overflow: hidden;
  opacity: .42;
  border: 4px solid rgba(255,255,255,.78);
  box-shadow: 0 14px 32px rgba(27, 61, 66, .1);
  will-change: transform;
}
.ambient-shot img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(.94); opacity: 1; transition: opacity .38s ease, filter .38s ease; }
.ambient-shot img.is-swapping { opacity: 0; filter: saturate(.45) blur(5px); }
.drift-1 { left: 26%; top: 9%; border-radius: 22px; animation: floatOne 19s ease-in-out infinite alternate; }
.drift-2 { left: 63%; top: 5%; height: clamp(70px, 10vh, 120px); border-radius: 22px; animation: floatTwo 24s ease-in-out -8s infinite alternate; }
.drift-3 { left: 9%; top: 58%; border-radius: 22px; animation: floatThree 22s ease-in-out -13s infinite alternate; }
.drift-4 { left: 48%; top: 45%; width: clamp(68px, 8vw, 125px); border-radius: 22px; animation: floatTwo 17s ease-in-out -3s infinite alternate-reverse; }
.drift-5 { right: 7%; top: 48%; border-radius: 22px; animation: floatOne 26s ease-in-out -15s infinite alternate-reverse; }
.drift-6 { left: 72%; bottom: 3%; width: clamp(90px, 12vw, 180px); height: clamp(68px, 9vh, 110px); border-radius: 22px; animation: floatThree 20s ease-in-out -6s infinite alternate; }
.drift-7 { left: 24%; bottom: 2%; height: clamp(70px, 10vh, 120px); border-radius: 22px; animation: floatTwo 21s ease-in-out -11s infinite alternate; }

.collection-wall { position: absolute; inset: 0; z-index: 10; perspective: 1400px; }
.collection-card {
  position: absolute;
  display: block;
  overflow: hidden;
  background: #d8e5e4;
  box-shadow: 0 18px 45px rgba(25, 53, 57, .13);
  text-decoration: none;
  transform-origin: center;
  will-change: transform;
  backface-visibility: hidden;
  transition: box-shadow .35s ease;
}
.collection-card::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(8, 28, 33, .68)); }
.collection-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.93) contrast(.96); transition: transform .7s cubic-bezier(.16,1,.3,1), filter .4s; }
.collection-card.people img { object-position: 72% center; }
.collection-card.architecture img { object-position: center 44%; }
.collection-card.food img { object-position: center 48%; }
.collection-card.events img { object-position: center 34%; }
.collection-card:hover { z-index: 40 !important; box-shadow: 0 30px 80px rgba(23, 50, 55, .25); }
.collection-card:hover img { transform: scale(1.055); filter: saturate(1.08) contrast(1); }
.card-index, .card-copy, .card-arrow { position: absolute; z-index: 2; color: white; }
.card-index { top: 16px; left: 17px; font-size: 9px; letter-spacing: .16em; }
.card-copy { left: 18px; bottom: 17px; display: flex; flex-direction: column; gap: 5px; }
.card-copy strong { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(19px, 2vw, 30px); font-weight: 400; line-height: .95; }
.card-copy small { font-size: 7px; letter-spacing: .16em; text-transform: uppercase; }
.card-arrow { right: 14px; top: 14px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.92); color: #17363c; transition: transform .35s ease; }
.collection-card:hover .card-arrow { transform: rotate(45deg); }

.food {
  z-index: 11; width: 19vw; height: 31vh; left: 41vw; top: 8vh;
  border-radius: 26px 8px 26px 8px;
  transform: translate(calc(var(--scroll) * -34vw), calc(var(--scroll) * 49vh)) rotate(calc(-6deg + var(--scroll) * 18deg)) scale(calc(1 + var(--wave) * .06));
}
.architecture {
  z-index: 12; width: 25vw; height: 31vh; right: 4vw; top: 13vh;
  border-radius: 8px 26px 8px 26px;
  transform: translate(calc(var(--scroll) * -13vw), calc(var(--scroll) * 43vh)) rotate(calc(4deg - var(--scroll) * 15deg));
}
.weddings {
  z-index: 15; width: 22vw; height: 39vh; left: 35vw; bottom: 5vh;
  border-radius: 26px;
  transform: translate(calc(var(--scroll) * 29vw), calc(var(--scroll) * -48vh)) rotate(calc(5deg - var(--scroll) * 16deg)) scale(calc(1 - var(--wave) * .04));
}
.travel {
  z-index: 14; width: 20vw; height: 34vh; left: 59vw; bottom: 3vh;
  border-radius: 26px 8px 26px 8px;
  transform: translate(calc(var(--scroll) * -47vw), calc(var(--scroll) * -43vh)) rotate(calc(-3deg + var(--scroll) * 14deg));
}
.events {
  z-index: 13; width: 20vw; height: 29vh; right: 2vw; bottom: 12vh;
  border-radius: 8px 26px 8px 26px;
  transform: translate(calc(var(--scroll) * -25vw), calc(var(--scroll) * -8vh)) rotate(calc(7deg - var(--scroll) * 19deg)) scale(calc(1 + var(--wave) * .05));
}
.people {
  z-index: 16; width: 17vw; height: 26vh; left: 7vw; bottom: 6vh;
  border-radius: 26px;
  transform: translate(calc(var(--scroll) * 42vw), calc(var(--scroll) * -55vh)) rotate(calc(-4deg + var(--scroll) * 15deg));
}

.food::before, .architecture::before, .weddings::before, .travel::before, .events::before, .people::before {
  content: '';
  position: absolute;
  z-index: 3;
  inset: 9px;
  border: 1px solid rgba(255,255,255,.58);
  pointer-events: none;
}
.food::before, .travel::before { border-radius: 18px 4px 18px 4px; }
.architecture::before, .events::before { border-radius: 4px 18px 4px 18px; }
.weddings::before { border-radius: 18px; }
.people::before { border-radius: 18px; }

.scribble { position: absolute; z-index: 2; border: 2px solid; border-radius: 50%; opacity: .6; pointer-events: none; }
.scribble-one { width: 25vw; height: 25vw; right: 16vw; top: 8vh; border-color: #6ab8c4; transform: translateX(calc(var(--scroll) * -42vw)) rotate(calc(var(--scroll) * 160deg)); }
.scribble-two { width: 13vw; height: 13vw; left: 16vw; bottom: 8vh; border-color: #f5bd32; border-style: dashed; transform: translate(calc(var(--scroll) * 66vw), calc(var(--wave) * -10vh)) rotate(calc(var(--scroll) * -230deg)); }
.spark { position: absolute; z-index: 18; color: #fc6e58; font-size: clamp(32px, 5vw, 72px); line-height: 1; pointer-events: none; }
.spark-one { left: 31vw; top: 13vh; transform: translate(calc(var(--scroll) * 51vw), calc(var(--scroll) * 63vh)) rotate(calc(var(--scroll) * 280deg)); }
.spark-two { right: 6vw; bottom: 3vh; color: #f1bb25; transform: translate(calc(var(--scroll) * -72vw), calc(var(--scroll) * -77vh)) rotate(calc(var(--scroll) * -250deg)) scale(.55); }
.ticker { position: absolute; z-index: 1; left: -4vw; top: 55%; white-space: nowrap; color: rgba(31, 105, 117, .08); font-size: clamp(60px, 11vw, 180px); font-weight: 900; letter-spacing: -.05em; transform: translateX(calc(var(--scroll) * -42vw)); }

.scroll-meter { position: absolute; z-index: 30; left: 38px; bottom: 27px; display: flex; align-items: center; gap: 11px; font-size: 8px; letter-spacing: .16em; }
.scroll-meter i { position: relative; display: block; width: 90px; height: 2px; background: #ccd8d7; }
.scroll-meter i::after { content: ''; position: absolute; inset: 0; background: #fc6e58; transform-origin: left; transform: scaleX(var(--scroll)); }

.closing { position: relative; min-height: 112vh; display: grid; place-items: center; overflow: hidden; padding: 120px 24px 220px; text-align: center; background: radial-gradient(circle at 17% 20%, rgba(247,200,69,.28), transparent 22%), radial-gradient(circle at 82% 74%, rgba(252,110,88,.2), transparent 19%), linear-gradient(135deg,#d9edf0,#f8f4e9 48%,#e6ddea); }
.closing:before { content: ''; position: absolute; width: min(70vw,960px); aspect-ratio: 1; border: 1px dashed rgba(23,54,60,.2); border-radius: 50%; animation: spin 48s linear infinite; }
.closing-label { position: absolute; top: 8vh; z-index: 3; font-size: 9px; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; color: #297784; }
.closing-copy { position: relative; z-index: 5; max-width: 1050px; }
.closing p { margin: 0; font-size: clamp(52px, 8vw, 126px); line-height: .84; letter-spacing: -.065em; font-weight: 700; }
.closing p em { display: block; color: #fc6e58; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
.closing small { display: block; max-width: 540px; margin: 32px auto 0; color: #526b70; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(15px,1.35vw,20px); line-height: 1.55; }
.closing a { display: inline-flex; align-items: center; margin-top: 34px; padding: 15px 21px; border: 1px solid #18363c; border-radius: 999px; text-decoration: none; text-transform: uppercase; letter-spacing: .16em; font-size: 9px; transition: background .3s, color .3s, transform .3s; }
.closing a span { margin-left: 25px; }
.closing a:hover { background: #18363c; color: white; transform: translateY(-4px); }
.closing-notes { position:absolute; z-index:6; left:50%; bottom:7vh; width:min(1120px,76vw); transform:translateX(-50%); display:grid; grid-template-columns:repeat(3,1fr); text-align:left; border-top:1px solid rgba(24,54,60,.25); border-bottom:1px solid rgba(24,54,60,.25); background:rgba(248,246,239,.42); backdrop-filter:blur(12px); }
.closing-notes article { position:relative; min-height:145px; padding:28px 30px 26px; }
.closing-notes article+article { border-left:1px solid rgba(24,54,60,.18); }
.closing-notes b { display:block; margin-bottom:16px; color:#fc6e58; font-size:9px; letter-spacing:.2em; }
.closing-notes strong { display:block; font-family:Georgia,'Times New Roman',serif; font-size:clamp(20px,1.7vw,28px); font-weight:400; line-height:1; }
.closing-notes span { display:block; max-width:280px; margin-top:12px; color:#526b70; font-size:12px; line-height:1.5; }
.closing-frame { position: absolute; z-index: 2; overflow: hidden; border: 4px solid rgba(255,255,255,.75); box-shadow: 0 18px 50px rgba(20,52,58,.16); }
.closing-frame img { width: 100%; height: 100%; object-fit: cover; }
.closing-frame-a { width: clamp(110px,16vw,260px); height: clamp(150px,26vh,310px); left: 3vw; top: 22%; border-radius: 28px 8px; transform: rotate(-8deg); }
.closing-frame-b { width: clamp(120px,18vw,290px); height: clamp(90px,19vh,220px); right: 2vw; top: 16%; border-radius: 8px 28px; transform: rotate(7deg); }
.closing-frame-c { width: clamp(110px,15vw,240px); height: clamp(110px,22vh,260px); right: 7vw; bottom: 5%; border-radius: 50%; transform: rotate(-4deg); }
.closing-marquee { position: absolute; z-index: 1; left: -3%; bottom: -3%; white-space: nowrap; color: rgba(23,54,60,.06); font-size: clamp(70px,13vw,210px); font-weight: 900; letter-spacing: -.06em; transform: rotate(-4deg); }

.contact-page {
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: radial-gradient(circle at 8% 90%,rgba(247,200,69,.38) 0 10%,transparent 10.2%),linear-gradient(rgba(41,119,132,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(41,119,132,.06) 1px,transparent 1px),linear-gradient(120deg,#f8f6ef 0 54%,#dff0f3 100%); background-size:auto,48px 48px,48px 48px,auto;
}
.contact-header { display: flex; justify-content: space-between; align-items: center; padding: 25px 38px; position: relative; z-index: 20; }
.contact-stage { min-height: 670px; display: grid; grid-template-columns: minmax(350px, .85fr) minmax(500px, 1.15fr); align-items: center; padding: 35px 5vw 45px; position: relative; }
.contact-message { position: relative; z-index: 10; max-width: 620px; }
.contact-kicker { color: #297784; margin: 0 0 26px; font-size: 9px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.contact-title { margin: 0; font-size: clamp(66px, 8.5vw, 132px); line-height: .75; letter-spacing: -.075em; text-transform: uppercase; }
.contact-title em { color: #fc6e58; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; text-transform: none; }
.contact-intro { max-width: 410px; margin: 38px 0 30px; color: #526b70; font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.65; }
.choose-channel { margin: 34px 0 0; color: #17363c; font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.choose-channel span { display: inline-block; margin-left: 14px; color: #fc6e58; animation: nudgeArrow 1.2s ease-in-out infinite alternate; }
.contact-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; }
.contact-tags span { padding:8px 12px; border:1px solid rgba(23,54,60,.18); border-radius:999px; background:rgba(255,255,255,.45); color:#526b70; font-size:7px; letter-spacing:.16em; text-transform:uppercase; }

.contact-collage { position: relative; height: min(72vh, 680px); min-height: 520px; }
.contact-links { position: absolute; z-index: 12; inset: 13% 6% auto 8%; display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
.contact-choice { position:relative; min-height: 132px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; padding: 20px 22px; border: 1px solid rgba(23,54,60,.13); border-radius: 28px; color: #17363c; text-decoration: none; box-shadow: 0 16px 38px rgba(20,52,58,.1); transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .35s ease; }
.contact-choice:nth-child(1) { width: 89%; align-self: flex-start; transform: rotate(-2.5deg); }
.contact-choice:nth-child(2) { width: 91%; align-self: flex-end; transform: rotate(2deg); }
.contact-choice:nth-child(3) { width: 87%; align-self: center; transform: rotate(-1deg); }
.contact-choice:before { position:absolute; left:15px; top:8px; color:rgba(23,54,60,.42); font-size:7px; letter-spacing:.16em; }
.contact-choice:nth-child(1):before { content:'01'; }.contact-choice:nth-child(2):before { content:'02'; }.contact-choice:nth-child(3):before { content:'03'; }
.whatsapp-choice { background: rgba(211, 244, 223, .94); }
.instagram-choice { background: rgba(245, 219, 236, .94); }
.email-choice { background: rgba(255, 237, 174, .95); }
.contact-choice:hover { transform: translateX(-12px) rotate(0) !important; box-shadow: 0 28px 55px rgba(20,52,58,.18); }
.social-icon { position: relative; width: 64px; height: 64px; display: grid; place-items: center; flex: 0 0 auto; }
.whatsapp-icon { border-radius: 50%; background: #25d366; color: white; }
.whatsapp-icon::after { content: ''; position: absolute; left: 4px; bottom: 1px; width: 18px; height: 18px; background: #25d366; clip-path: polygon(0 100%, 42% 0, 100% 38%); transform: rotate(-8deg); }
.whatsapp-icon i { position: relative; z-index: 2; font-size: 30px; font-style: normal; transform: rotate(-22deg); }
.instagram-icon { border-radius: 18px; background: linear-gradient(135deg, #7254d9, #df3d84 52%, #f5a43a); }
.instagram-icon::before { content: ''; position: absolute; inset: 13px; border: 4px solid white; border-radius: 13px; }
.instagram-icon::after { content: ''; position: absolute; width: 7px; height: 7px; top: 17px; right: 17px; background: white; border-radius: 50%; }
.instagram-icon i { width: 16px; height: 16px; border: 4px solid white; border-radius: 50%; }
.email-icon { border-radius: 20px; background: #fc6e58; }
.email-icon::before { content: ''; position: absolute; width: 35px; height: 25px; border: 3px solid white; border-radius: 4px; }
.email-icon::after { content: ''; position: absolute; top: 19px; width: 23px; height: 23px; border-right: 3px solid white; border-bottom: 3px solid white; transform: rotate(45deg); }
.choice-copy { display: flex; flex-direction: column; gap: 5px; }
.choice-copy small { color: #5a7377; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; }
.choice-copy strong { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(27px, 3vw, 43px); font-weight: 400; line-height: 1; }
.choice-arrow { display: grid; place-items: center; width: 39px; height: 39px; border: 1px solid currentColor; border-radius: 50%; transition: transform .35s ease, background .35s ease, color .35s ease; }
.contact-choice:hover .choice-arrow { transform: rotate(45deg); background: #17363c; color: white; }
.contact-photo { position: absolute; z-index: 3; display: block; overflow: hidden; opacity: .42; box-shadow: 0 24px 55px rgba(20, 52, 58, .14); }
.contact-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); opacity: 1; transition: opacity .38s ease, filter .38s ease; }
.contact-photo img.is-swapping { opacity: 0; filter: saturate(.45) blur(5px); }
.contact-photo-one { width: 25%; height: 25%; left: 0; bottom: 3%; border-radius: 24px; transform: rotate(-8deg); animation: contactFloatOne 8s ease-in-out infinite alternate; }
.contact-photo-two { width: 23%; height: 22%; right: 0; top: 0; border-radius: 8px 24px 8px 24px; transform: rotate(7deg); animation: contactFloatTwo 10s ease-in-out -4s infinite alternate; }
.contact-photo-three { width: 20%; height: 20%; right: 1%; bottom: 0; border-radius: 24px 8px 24px 8px; transform: rotate(-3deg); animation: contactFloatThree 9s ease-in-out -2s infinite alternate; }
.contact-orbit { position: absolute; z-index: 1; width: 67%; aspect-ratio: 1; left: 17%; top: 8%; border: 2px dashed rgba(41,119,132,.27); border-radius: 50%; animation: spin 36s linear infinite; }
.contact-spark { position: absolute; z-index: 7; left: 2%; top: 14%; color: #f3bd29; font-size: clamp(45px, 6vw, 86px); animation: pulseSpark 3.5s ease-in-out infinite alternate; }
.contact-note { position: absolute; z-index: 2; left: -6%; bottom: 7%; white-space: nowrap; color: rgba(41,119,132,.1); font-size: clamp(52px, 6vw, 96px); font-weight: 900; letter-spacing: -.05em; transform: rotate(-8deg); }
.contact-sticker { position:absolute; z-index:8; display:grid; place-items:center; width:92px; aspect-ratio:1; border:1px solid rgba(23,54,60,.28); color:#17363c; background:rgba(248,246,239,.86); border-radius:50%; text-align:center; font-size:7px; font-weight:700; line-height:1.45; letter-spacing:.15em; box-shadow:0 10px 25px rgba(20,52,58,.08); }
.sticker-one { right:2%; top:34%; transform:rotate(9deg); }.sticker-two { left:1%; bottom:24%; width:82px; border-radius:18px; transform:rotate(-7deg); background:rgba(255,237,174,.92); }
.contact-footer { display: flex; justify-content: space-between; align-items: center; padding: 22px 38px; color: #667e82; font-size: 8px; letter-spacing: .18em; text-transform: uppercase; }
.contact-footer a { text-decoration: none; color: #17363c; }

@keyframes contactFloatOne { to { transform: translate3d(1.5vw, -2vh, 0) rotate(-2deg); } }
@keyframes contactFloatTwo { to { transform: translate3d(-2vw, 2vh, 0) rotate(3deg); } }
@keyframes contactFloatThree { to { transform: translate3d(-1.5vw, -2vh, 0) rotate(2deg); } }
@keyframes pulseSpark { to { transform: rotate(18deg) scale(1.14); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes nudgeArrow { to { transform: translateX(8px); } }

@keyframes floatOne {
  0% { transform: translate3d(-2vw, 1vh, 0) rotate(-8deg); }
  45% { transform: translate3d(9vw, 7vh, 0) rotate(4deg); }
  100% { transform: translate3d(2vw, 18vh, 0) rotate(-2deg); }
}
@keyframes floatTwo {
  0% { transform: translate3d(1vw, -2vh, 0) rotate(6deg); }
  55% { transform: translate3d(-8vw, 10vh, 0) rotate(-5deg); }
  100% { transform: translate3d(5vw, 16vh, 0) rotate(3deg); }
}
@keyframes floatThree {
  0% { transform: translate3d(0, 3vh, 0) rotate(-3deg); }
  50% { transform: translate3d(12vw, -5vh, 0) rotate(7deg); }
  100% { transform: translate3d(20vw, 8vh, 0) rotate(-6deg); }
}

@media (max-width: 820px) {
  .site-header { padding: 20px; }
  .brand small, nav a:first-child { display: none; }
  nav { gap: 15px; }
  .scroll-story { height: 360vh; }
  .intro-copy { left: 20px; top: 14%; width: 70vw; }
  h1 { font-size: 20vw; }
  .instruction { margin-top: 24px; }
  .food { width: 38vw; height: 24vh; left: 8vw; top: 41vh; transform: translate(calc(var(--scroll) * 42vw), calc(var(--scroll) * 37vh)) rotate(calc(-5deg + var(--scroll) * 14deg)); }
  .architecture { width: 42vw; height: 22vh; right: 5vw; top: 38vh; transform: translate(calc(var(--scroll) * -47vw), calc(var(--scroll) * 30vh)) rotate(calc(5deg - var(--scroll) * 12deg)); }
  .weddings { width: 39vw; height: 28vh; left: 30vw; bottom: 7vh; transform: translate(calc(var(--scroll) * 20vw), calc(var(--scroll) * -51vh)) rotate(calc(3deg - var(--scroll) * 13deg)); }
  .travel { width: 36vw; height: 22vh; left: 4vw; bottom: 4vh; transform: translate(calc(var(--scroll) * 30vw), calc(var(--scroll) * -32vh)) rotate(calc(-3deg + var(--scroll) * 11deg)); }
  .events { width: 38vw; height: 21vh; right: 3vw; bottom: 17vh; transform: translate(calc(var(--scroll) * -46vw), calc(var(--scroll) * -47vh)) rotate(calc(6deg - var(--scroll) * 17deg)); }
  .people { width: 34vw; height: 19vh; left: 3vw; bottom: 19vh; transform: translate(calc(var(--scroll) * 54vw), calc(var(--scroll) * -55vh)) rotate(calc(-5deg + var(--scroll) * 15deg)); }
  .card-copy strong { font-size: 18px; }
  .card-copy small { display: none; }
  .card-arrow { width: 28px; height: 28px; }
  .scroll-meter { left: 20px; bottom: 18px; }
  .ticker { top: 62%; }
  .ambient-shot { opacity: .3; width: 18vw; height: 11vh; border-width: 2px; }
  .drift-2, .drift-4 { display: none; }
  .closing { min-height: 108vh; padding: 90px 22px 250px; }
  .closing-frame { opacity:.34; }
  .closing-frame-a { left:-7vw; top:18%; }.closing-frame-b { right:-8vw; top:20%; }.closing-frame-c { right:-7vw; bottom:3%; }
  .closing small { max-width:85%; }
  .closing-notes { bottom:34px; width:calc(100% - 36px); grid-template-columns:1fr; }
  .closing-notes article { min-height:0; padding:16px 18px; }
  .closing-notes article+article { border-left:0; border-top:1px solid rgba(24,54,60,.14); }
  .closing-notes b { display:inline; margin-right:10px; }
  .closing-notes strong { display:inline; font-size:18px; }
  .closing-notes span { display:none; }
  .contact-page { overflow: auto; }
  .contact-header { padding: 20px; }
  .contact-stage { display: flex; flex-direction: column; align-items: stretch; min-height: auto; padding: 95px 20px 45px; }
  .contact-title { font-size: 19vw; }
  .contact-intro { margin-top: 28px; }
  .contact-collage { min-height: 430px; height: 52vh; margin-top: 35px; }
  .contact-links { inset: 3% 0 auto; gap: 12px; }
  .contact-choice { min-height: 105px; padding: 15px; gap: 14px; border-radius: 22px; }
  .contact-choice:nth-child(1), .contact-choice:nth-child(2), .contact-choice:nth-child(3) { width: 94%; }
  .social-icon { width: 53px; height: 53px; }
  .choice-copy strong { font-size: 26px; }
  .choice-arrow { width: 32px; height: 32px; }
  .contact-photo-one { left: 0; width: 28%; }
  .contact-photo-two { right: 0; width: 27%; }
  .contact-photo-three { right: 4%; width: 25%; }
  .contact-footer { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .collection-card, .scribble, .spark, .ticker, .intro-copy { transform: none !important; }
  .ambient-shot { animation: none !important; }
  .contact-photo, .contact-orbit, .contact-spark { animation: none !important; }
}
