:root {
  --ink: #090909;
  --ink-soft: #0d0d0d;
  --ink-raised: #151515;
  --ivory: #f2efe8;
  --ivory-soft: #c9c4ba;
  --stone: #8e8980;
  --wine: #28171c;
  --paper: #e7e1d7;
  --hairline-dark: rgba(9, 9, 9, .18);
  --hairline-light: rgba(242, 239, 232, .22);
  --ease: cubic-bezier(.16,1,.3,1);
  --ease-cinema: cubic-bezier(.05,.9,.1,1);
  --max: 1600px;
  --pad: clamp(20px, 4vw, 68px);
  --header-h: 92px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: var(--ink);
  color: var(--ivory);
  font-family: 'Manrope', system-ui, sans-serif;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.transition-lock, body.intro-lock, body.image-open { overflow: hidden; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
::selection { background: rgba(201,196,186,.9); color: #090909; }

.film-grain {
  position: fixed; inset: 0; z-index: 12; pointer-events: none; opacity: .035;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.65) .5px, transparent .7px),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.4) .5px, transparent .7px);
  background-size: 4px 4px, 5px 5px;
  mix-blend-mode: soft-light;
}
.ambient-glow { position: fixed; pointer-events: none; z-index: -1; filter: blur(90px); opacity: .16; }
.ambient-glow--wine { width: 45vw; height: 45vw; right: -22vw; top: 22vh; background: rgba(82,33,46,.55); border-radius: 50%; }
.ambient-glow--ivory { width: 34vw; height: 34vw; left: -24vw; top: 68vh; background: rgba(242,239,232,.12); border-radius: 50%; }

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 80; height: var(--header-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--pad);
  color: var(--ivory);
  transition: color .45s var(--ease), background .45s var(--ease), border-color .45s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header.is-scrolled {
  background: rgba(9,9,9,.82); backdrop-filter: blur(16px); border-color: rgba(242,239,232,.09);
}
.site-header.light-context { color: var(--ink); background: rgba(242,239,232,.86); border-color: rgba(9,9,9,.08); }
.brand-mark { text-decoration: none; display: flex; flex-direction: column; align-items:flex-start; gap: 2px; position: relative; z-index: 2; }
.brand-mark__logo-frame { position:relative; display:block; width:96px; height:37px; overflow:hidden; }
.brand-mark__logo-frame img { position:absolute; width:112.7px; max-width:none; height:auto; left:-7.35px; top:-25.8px; filter:invert(1); transition:filter .45s var(--ease),opacity .3s ease; }
.site-header.light-context .brand-mark__logo-frame img { filter:none; }
.brand-mark:hover .brand-mark__logo-frame img { opacity:.72; }
.brand-mark__name { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; }
.brand-mark__sub { font-size: 8px; letter-spacing: .22em; text-transform: uppercase; color: currentColor; opacity: .55; }
.primary-nav { position: relative; display: flex; gap: clamp(17px, 2.5vw, 42px); align-items: center; padding-bottom: 9px; }
.nav-link { text-decoration: none; text-transform: uppercase; font-size: 10px; letter-spacing: .18em; opacity: .55; transition: opacity .3s ease, letter-spacing .3s ease; padding: 14px 0; }
.nav-link:hover, .nav-link:focus-visible, .nav-link.is-active { opacity: 1; }
.nav-link:hover { letter-spacing: .21em; }
.nav-link:focus-visible, .brand-mark:focus-visible, .sound-control:focus-visible, .cta-link:focus-visible { outline: 1px solid currentColor; outline-offset: 7px; }
.nav-hairline { position: absolute; bottom: 8px; left: 0; height: 1px; width: 20px; background: currentColor; transition: transform .62s var(--ease), width .62s var(--ease), opacity .25s ease; transform-origin: left center; opacity: .9; }

.page-root { position: relative; z-index: 1; min-height: 100vh; background: var(--ink); }
.page-root.is-leaving { pointer-events: none; }
.page-root.is-leaving .route-shell { transform: scale(.992); filter: brightness(.91); }
.route-shell { min-height: 100vh; overflow-x:clip; transition: transform .22s var(--ease), filter .22s ease; transform-origin: 50% 35%; }

.serif { font-family: 'Bodoni Moda', 'Times New Roman', serif; }
.kicker { text-transform: uppercase; letter-spacing: .2em; font-size: 9px; font-weight: 600; }
.chapter-index { font-size: 9px; letter-spacing: .2em; text-transform: uppercase; opacity: .48; }
.hairline { height: 1px; background: currentColor; opacity: .18; transform-origin: left center; }
.display-xl { font-family: 'Bodoni Moda', serif; font-size: clamp(60px, 9vw, 164px); line-height: .84; letter-spacing: -.055em; font-weight: 400; }
.display-lg { font-family: 'Bodoni Moda', serif; font-size: clamp(46px, 6.4vw, 112px); line-height: .9; letter-spacing: -.045em; font-weight: 400; }
.display-md { font-family: 'Bodoni Moda', serif; font-size: clamp(36px, 4.1vw, 74px); line-height: .96; letter-spacing: -.035em; font-weight: 400; }
.text-small { font-size: 12px; line-height: 1.8; color: inherit; opacity: .68; }
.text-body { max-width: 52ch; font-size: clamp(13px, 1.2vw, 16px); line-height: 1.85; color: inherit; opacity: .72; }
.italic { font-style: italic; font-weight: 400; }

.hero {
  min-height: 100svh; padding: calc(var(--header-h) + 24px) var(--pad) 44px;
  display: grid; grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); gap: clamp(24px, 6vw, 100px);
  align-items: center; max-width: var(--max); margin: 0 auto; position: relative;
}
.hero::before { content: '01'; position: absolute; left: var(--pad); bottom: 28px; font-size: 9px; letter-spacing: .2em; opacity: .35; }
.hero-copy { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding-top: 4vh; position: relative; z-index: 3; }
.hero-kicker { margin-bottom: 24px; opacity: .68; }
.hero-title { margin: 0; max-width: 760px; }
.hero-title .soft { color: var(--ivory-soft); }
.hero-meta { margin-top: 36px; display: flex; align-items: center; gap: 18px; }
.hero-meta .hairline { width: 84px; }
.hero-photo-wrap { position: relative; justify-self: end; width: min(61vw, 960px); max-width: 100%; }
.hero-photo { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #141414; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 42%; display: block; transform: scale(1); transition: transform 1.3s var(--ease), filter .8s ease; }
.hero-photo:hover img { transform: scale(1.018); }
.hero-frame-corners::before, .hero-frame-corners::after, .hero-frame-corners span::before, .hero-frame-corners span::after { content:''; position:absolute; width:22px; height:22px; border-color: rgba(242,239,232,.42); z-index: 2; pointer-events:none; }
.hero-frame-corners::before { left:-10px; top:-10px; border-left:1px solid; border-top:1px solid; }
.hero-frame-corners::after { right:-10px; top:-10px; border-right:1px solid; border-top:1px solid; }
.hero-frame-corners span::before { left:-10px; bottom:-10px; border-left:1px solid; border-bottom:1px solid; }
.hero-frame-corners span::after { right:-10px; bottom:-10px; border-right:1px solid; border-bottom:1px solid; }
.hero-photo-caption { position: absolute; right: -6px; bottom: -26px; display: flex; gap: 16px; align-items: center; font-size: 8px; letter-spacing: .18em; text-transform: uppercase; opacity: .52; }
.hero-photo-caption::before { content:''; width: 52px; height:1px; background: currentColor; opacity:.38; }
.scroll-cue { position: absolute; right: var(--pad); bottom: 26px; display:flex; align-items:center; gap:10px; font-size:8px; letter-spacing:.2em; text-transform:uppercase; opacity:.46; }
.scroll-cue i { width: 38px; height:1px; background: currentColor; display:block; transform-origin:left; animation: cue 2.4s ease-in-out infinite; }
@keyframes cue { 0%,100%{transform:scaleX(.35);opacity:.35} 50%{transform:scaleX(1);opacity:1} }

.section { position: relative; padding: clamp(92px, 11vw, 190px) var(--pad); }
.section-inner { max-width: var(--max); margin: 0 auto; position: relative; }
.section--ivory { background: var(--ivory); color: var(--ink); }
.section--ink { background: var(--ink); color: var(--ivory); }
.section--soft { background: #111; color: var(--ivory); }
.section--wine { background: var(--wine); color: var(--ivory); }
.section-label-row { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom: clamp(38px, 5vw, 74px); }
.section-label-row .hairline { flex:1; max-width: 170px; }

.editorial-split { display:grid; grid-template-columns: minmax(0,1.05fr) minmax(280px,.62fr); gap: clamp(48px, 8vw, 140px); align-items:start; }
.editorial-split.reverse { grid-template-columns: minmax(280px,.58fr) minmax(0,1.04fr); }
.editorial-split.reverse .editorial-photo { order:2; }
.editorial-split.reverse .editorial-copy { order:1; }
.editorial-photo { position:relative; }
.editorial-photo img { width:100%; height:auto; display:block; object-fit:cover; }
.editorial-photo--portrait { width:min(100%, 780px); justify-self:start; }
.editorial-photo--medium { width:min(100%, 640px); }
.editorial-photo--intimate { width:min(100%, 520px); }
.frame-hairline { outline: 1px solid currentColor; outline-color: rgba(242,239,232,.2); outline-offset: 7px; }
.section--ivory .frame-hairline { outline-color: rgba(9,9,9,.16); }
.frame-matte { padding: 10px; background: #e7e1d7; color: var(--ink); }
.frame-matte img { display:block; }
.frame-offset::after { content:''; position:absolute; inset: 9px -9px -9px 9px; border:1px solid rgba(201,196,186,.18); pointer-events:none; z-index:-1; }
.section--ivory .frame-offset::after { border-color: rgba(9,9,9,.14); }
.folio { margin-top: 14px; display:flex; align-items:center; justify-content:space-between; font-size:8px; text-transform:uppercase; letter-spacing:.18em; opacity:.48; }
.editorial-copy { padding-top: clamp(10px, 3vw, 50px); }
.editorial-copy .display-md { margin: 0 0 28px; }
.editorial-copy p { margin: 0; }
.editorial-copy .meta-stack { margin-top: 48px; display:grid; gap:10px; font-size:8px; text-transform:uppercase; letter-spacing:.18em; opacity:.45; }

.bw-stage { min-height: 92vh; display:grid; place-items:center; background:#050505; color:#f0eee8; overflow:hidden; }
.bw-stage .section-inner { width:100%; }
.bw-frame { width:min(80vw, 1240px); margin:0 auto; position:relative; padding: clamp(16px, 2.2vw, 34px); background:#090909; }
.bw-frame::before { content:''; position:absolute; inset: 8px; border:1px solid rgba(242,239,232,.16); pointer-events:none; }
.bw-frame img { width:100%; display:block; filter: grayscale(1); }
.bw-caption { display:flex; justify-content:space-between; align-items:flex-end; margin-top:18px; gap:20px; }
.bw-caption .display-md { margin:0; max-width: 12ch; }

.quote-band { padding: 72px var(--pad); background: var(--ivory); color:var(--ink); border-top:1px solid rgba(9,9,9,.08); border-bottom:1px solid rgba(9,9,9,.08); overflow:hidden; }
.quote-band__track { white-space:nowrap; font-family:'Bodoni Moda',serif; font-size:clamp(48px,7vw,128px); line-height:.85; letter-spacing:-.05em; opacity:.9; transform:translateX(-3vw); }
.quote-band__track em { font-weight:400; color:#7b746a; }

.finale { min-height: 88vh; display:flex; flex-direction:column; justify-content:space-between; padding: clamp(110px, 12vw, 190px) var(--pad) 34px; background:#070707; overflow:hidden; }
.finale-top { max-width:var(--max); margin:0 auto; width:100%; display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; }
.finale-title { margin:0; max-width: 12ch; }
.cta-link { text-decoration:none; text-transform:uppercase; letter-spacing:.18em; font-size:10px; display:inline-flex; gap:18px; align-items:center; border-bottom:1px solid rgba(242,239,232,.28); padding:0 0 10px; }
.cta-link i { width:34px; height:1px; background:currentColor; transition:width .35s var(--ease); }
.cta-link:hover i { width:56px; }
.finale-wordmark { margin-top:80px; font-family:'Bodoni Moda',serif; font-size:clamp(100px,20vw,380px); line-height:.68; letter-spacing:-.07em; white-space:nowrap; transform:translateX(-.04em); opacity:.95; }
.finale-foot { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:28px; font-size:8px; text-transform:uppercase; letter-spacing:.18em; opacity:.45; }

.official-logo { position:relative; display:block; width:100%; aspect-ratio:2.575/1; overflow:hidden; }
.official-logo img { position:absolute; width:117.4%; max-width:none; height:auto; left:-7.65%; top:-69.3%; filter:invert(1); }
.brand-footer { background:#050505; color:var(--ivory); border-top:1px solid rgba(213,190,130,.14); padding:clamp(58px,6vw,92px) var(--pad); display:grid; grid-template-columns:minmax(180px,.72fr) minmax(260px,1fr) minmax(210px,.62fr); gap:clamp(36px,7vw,120px); align-items:end; }
.brand-footer__identity { align-self:start; display:grid; gap:15px; color:rgba(242,239,232,.66); text-transform:uppercase; letter-spacing:.18em; font-size:7px; }
.brand-footer__logo { width:clamp(118px,11vw,168px); }
.brand-footer__about { max-width:500px; }
.brand-footer__about .chapter-index { color:var(--champagne); opacity:.7; }
.brand-footer__about p { margin:18px 0 0; font-family:'Bodoni Moda',serif; font-size:clamp(22px,2.2vw,36px); line-height:1.16; letter-spacing:-.025em; color:rgba(242,239,232,.82); }
.instagram-link { justify-self:end; display:grid; grid-template-columns:34px 1fr; align-items:center; column-gap:14px; color:inherit; text-decoration:none; text-transform:uppercase; letter-spacing:.17em; font-size:9px; padding:14px 0; border-bottom:1px solid rgba(213,190,130,.28); transition:border-color .3s ease,color .3s ease; }
.instagram-link small { grid-column:2; margin-top:4px; font-size:7px; letter-spacing:.11em; opacity:.48; text-transform:none; }
.instagram-link__glyph { grid-row:1/3; width:30px; height:30px; border:1px solid rgba(213,190,130,.56); border-radius:9px; position:relative; }
.instagram-link__glyph::before { content:''; position:absolute; width:8px; height:8px; border:1px solid var(--champagne); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.instagram-link__glyph i { position:absolute; width:3px; height:3px; border-radius:50%; background:var(--champagne); right:6px; top:6px; }
.instagram-link:hover { color:var(--champagne); border-color:var(--champagne); }

/* Album */
.page-hero { min-height: 74svh; padding: calc(var(--header-h) + 50px) var(--pad) 70px; display:flex; align-items:flex-end; position:relative; }
.page-hero .section-inner { width:100%; }
.page-hero-grid { display:grid; grid-template-columns: minmax(0,1fr) minmax(280px,.54fr); gap: clamp(40px,7vw,120px); align-items:end; }
.page-hero-title { margin:0; }
.page-hero-side { position:relative; padding-bottom:10px; }
.page-hero-side img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.page-hero-side .folio { margin-top:12px; }
.album-page { background: var(--ivory); color:var(--ink); }
.album-book { padding: clamp(90px,10vw,170px) var(--pad) clamp(110px,13vw,210px); }
.album-spread { max-width:var(--max); margin:0 auto clamp(120px,15vw,250px); position:relative; }
.album-spread:last-child { margin-bottom:0; }
.album-spread--a { display:grid; grid-template-columns:.72fr 1.28fr; gap: clamp(36px,7vw,120px); align-items:start; }
.album-spread--b { display:grid; grid-template-columns:1.2fr .58fr; gap: clamp(42px,8vw,140px); align-items:end; }
.album-spread--c { display:grid; grid-template-columns:.55fr .9fr .42fr; gap: clamp(24px,4vw,72px); align-items:center; }
.album-spread--d { display:grid; place-items:center; }
.album-card { position:relative; }
.album-card img { display:block; width:100%; height:auto; transition: transform .9s var(--ease), filter .5s ease; }
.album-card:hover img { transform:scale(1.015); }
.album-card--narrow { width:78%; justify-self:center; }
.album-card--small { width:76%; justify-self:end; }
.album-card--hero { width:min(90%, 1040px); }
.album-image-button { position:relative; display:block; width:100%; padding:0; border:0; background:transparent; color:inherit; overflow:hidden; text-align:left; }
.album-image-button__hint { position:absolute; right:14px; bottom:14px; padding:8px 10px; color:#f2efe8; background:rgba(9,9,9,.66); backdrop-filter:blur(8px); text-transform:uppercase; letter-spacing:.17em; font-size:7px; opacity:0; transform:translateY(5px); transition:opacity .28s ease,transform .35s var(--ease); }
.album-image-button:hover .album-image-button__hint,.album-image-button:focus-visible .album-image-button__hint { opacity:1; transform:translateY(0); }
.album-image-button:focus-visible { outline:1px solid currentColor; outline-offset:7px; }
.album-note { align-self:end; max-width:28ch; }
.album-note .display-md { margin:0 0 20px; }
.album-index { position:absolute; top:-28px; left:0; font-size:8px; letter-spacing:.18em; text-transform:uppercase; opacity:.38; }
.album-endpaper { background:#111; color:var(--ivory); min-height:68vh; display:grid; place-items:center; padding:100px var(--pad); text-align:center; }
.album-endpaper .display-lg { margin:0; max-width:11ch; }

.image-viewer { position:fixed; inset:0; z-index:1550; color:var(--ivory); opacity:0; transition:opacity .24s ease; }
.image-viewer[hidden] { display:none; }
.image-viewer.is-active { opacity:1; }
.image-viewer.is-closing { opacity:0; }
.image-viewer__backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(2,2,2,.975); }
.image-viewer__shell { position:absolute; inset:clamp(14px,3vw,44px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:14px; }
.image-viewer__top,.image-viewer__foot { display:flex; align-items:center; text-transform:uppercase; letter-spacing:.18em; font-size:7px; color:rgba(242,239,232,.58); }
.image-viewer__top { justify-content:space-between; gap:20px; transform:translateY(-8px); opacity:0; transition:opacity .35s ease .1s,transform .45s var(--ease) .1s; }
.image-viewer.is-open .image-viewer__top { opacity:1; transform:translateY(0); }
.image-viewer__logo { width:88px; margin-right:auto; }
.image-viewer__close { display:flex; align-items:center; gap:11px; color:inherit; background:transparent; border:0; padding:10px 0; text-transform:uppercase; letter-spacing:.18em; font-size:8px; }
.image-viewer__close i { width:20px; height:1px; background:currentColor; transform:rotate(-45deg); position:relative; }
.image-viewer__close i::after { content:''; position:absolute; inset:0; background:currentColor; transform:rotate(90deg); }
.image-viewer__stage { min-height:0; display:grid; place-items:center; overflow:hidden; clip-path:inset(8% 10%); transition:clip-path .64s var(--ease-cinema); }
.image-viewer.is-open .image-viewer__stage { clip-path:inset(0); }
.image-viewer__stage img { display:block; width:100%; height:100%; object-fit:contain; opacity:.3; transform:scale(1.025); transition:opacity .48s ease .08s,transform .7s var(--ease) .08s; }
.image-viewer.is-open .image-viewer__stage img { opacity:1; transform:scale(1); }
.image-viewer__foot { justify-content:space-between; gap:20px; opacity:.44; }

/* Story */
.story-page { background:var(--ink); color:var(--ivory); }
.story-lead { min-height: 86svh; display:grid; align-items:end; padding: calc(var(--header-h) + 60px) var(--pad) 90px; }
.story-lead-grid { max-width:var(--max); margin:0 auto; width:100%; display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(40px,7vw,120px); align-items:end; }
.story-lead-copy .display-xl { margin:0 0 28px; }
.story-lead-photo { width: min(100%, 820px); justify-self:end; position:relative; }
.story-lead-photo img { width:100%; display:block; }
.story-chapter { min-height:80vh; display:grid; align-items:center; }
.story-chapter .section-inner { width:100%; }
.story-chapter--ivory { background:var(--ivory); color:var(--ink); }
.story-chapter--wine { background:var(--wine); }
.story-chapter--quiet { background:#111; }
.story-chapter-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.5fr); gap:clamp(52px,9vw,160px); align-items:center; }
.story-chapter-grid.reverse { grid-template-columns:minmax(260px,.5fr) minmax(0,1fr); }
.story-chapter-grid.reverse .story-photo { order:2; }
.story-chapter-grid.reverse .story-copy { order:1; }
.story-photo { position:relative; }
.story-photo img { width:100%; display:block; }
.story-copy .display-md { margin:0 0 24px; }
.story-copy .chapter-index { display:block; margin-bottom:22px; }

/* Package */
.package-page { background:var(--ivory); color:var(--ink); min-height:100vh; }
.package-hero { min-height:64svh; padding: calc(var(--header-h) + 70px) var(--pad) 70px; display:flex; align-items:flex-end; }
.package-hero-grid { max-width:var(--max); width:100%; margin:0 auto; display:grid; grid-template-columns:1fr .4fr; gap:60px; align-items:end; }
.package-hero .display-xl { margin:0; }
.package-list { max-width:var(--max); margin:0 auto; padding:0 var(--pad) 150px; }
.package-row { position:relative; border-top:1px solid rgba(9,9,9,.16); min-height:190px; display:grid; grid-template-columns:90px 1fr auto; gap:32px; align-items:center; overflow:hidden; transition: background .45s var(--ease), color .45s var(--ease), padding .45s var(--ease); }
.package-row:last-child { border-bottom:1px solid rgba(9,9,9,.16); }
.package-row:hover { background:#111; color:var(--ivory); padding-left:20px; padding-right:20px; }
.package-row__num { font-family:'Bodoni Moda',serif; font-size:40px; opacity:.4; }
.package-row__title { font-family:'Bodoni Moda',serif; font-size:clamp(34px,4.8vw,74px); letter-spacing:-.04em; line-height:.94; }
.package-row__meta { font-size:8px; letter-spacing:.18em; text-transform:uppercase; opacity:.48; text-align:right; }
.package-row__photo { position:absolute; right:18%; top:50%; width:160px; aspect-ratio:4/5; transform:translateY(-50%) translateX(18px) scale(.96); opacity:0; pointer-events:none; transition: opacity .45s var(--ease), transform .55s var(--ease); overflow:hidden; }
.package-row__photo img { width:100%; height:100%; object-fit:cover; display:block; }
.package-row:hover .package-row__photo { opacity:1; transform:translateY(-50%) translateX(0) scale(1); }
.package-note { max-width:var(--max); margin:0 auto; padding:0 var(--pad) 120px; display:grid; grid-template-columns:.5fr 1fr; gap:60px; }

/* Reveal system: visible by default; JS opt-in only */
[data-reveal] { opacity:1; transform:none; filter:none; }
.js-ready [data-reveal] { opacity:0; transform:translateY(24px); filter:blur(8px); transition: opacity .95s var(--ease), transform .95s var(--ease), filter .95s var(--ease); }
.js-ready [data-reveal].is-visible { opacity:1; transform:translateY(0); filter:blur(0); }
.js-ready [data-reveal="left"] { transform:translateX(-28px); }
.js-ready [data-reveal="right"] { transform:translateX(28px); }
.js-ready [data-reveal="left"].is-visible, .js-ready [data-reveal="right"].is-visible { transform:translateX(0); }
.js-ready [data-reveal="scale"] { transform:scale(1.025); }
.js-ready [data-reveal="scale"].is-visible { transform:scale(1); }

/* Audio */
.sound-control { position:fixed; z-index:90; right:max(18px, env(safe-area-inset-right)); bottom:max(18px, calc(env(safe-area-inset-bottom) + 14px)); border:1px solid rgba(242,239,232,.18); background:rgba(9,9,9,.78); color:var(--ivory); min-width:76px; height:38px; border-radius:999px; display:flex; align-items:center; justify-content:center; gap:9px; cursor:pointer; backdrop-filter:blur(10px); transition: transform .3s var(--ease), border-color .3s ease, background .3s ease; }
.sound-control:hover { transform:translateY(-2px); border-color:rgba(242,239,232,.38); }
.sound-control__label { font-size:8px; letter-spacing:.17em; text-transform:uppercase; }
.sound-bars { display:flex; align-items:flex-end; gap:2px; height:12px; }
.sound-bars i { display:block; width:2px; height:5px; background:currentColor; transform-origin:center bottom; }
.sound-control.is-playing .sound-bars i:nth-child(1){ animation:sound 1s ease-in-out infinite; }
.sound-control.is-playing .sound-bars i:nth-child(2){ animation:sound .8s ease-in-out .1s infinite; }
.sound-control.is-playing .sound-bars i:nth-child(3){ animation:sound 1.2s ease-in-out .2s infinite; }
@keyframes sound { 0%,100%{height:4px} 50%{height:12px} }

/* Custom cursor */
.cursor { position:fixed; left:0; top:0; z-index:1800; pointer-events:none; opacity:0; transition:opacity .25s ease; }
.cursor.is-on { opacity:1; }
.cursor__ring { position:absolute; width:28px; height:28px; border:1px solid rgba(242,239,232,.72); border-radius:50%; transform:translate(-50%,-50%); transition:width .3s var(--ease), height .3s var(--ease), border-color .3s ease, background .3s ease; }
.cursor__label { position:absolute; left:20px; top:-8px; font-size:8px; letter-spacing:.18em; text-transform:uppercase; color:var(--ivory); white-space:nowrap; opacity:0; transform:translateY(4px); transition:opacity .25s ease, transform .25s ease; }
.cursor.has-label .cursor__ring { width:40px; height:40px; background:rgba(9,9,9,.14); }
.cursor.has-label .cursor__label { opacity:1; transform:translateY(0); }

/* Route transition */
.route-transition { position:fixed; inset:0; z-index:1200; pointer-events:none; visibility:hidden; overflow:hidden; }
.route-transition.is-active { visibility:visible; pointer-events:auto; }
.transition-panels { position:absolute; inset:0; display:flex; }
.transition-panel { height:100%; flex:none; position:relative; overflow:hidden; transform:translateX(110vw); transition:transform .46s var(--ease-cinema); will-change:transform; }
.route-transition.backward .transition-panel { transform:translateX(-110vw); }
.route-transition.is-covering .transition-panel { transform:translateX(0); }
.route-transition.forward.is-exiting .transition-panel { transform:translateX(-110vw); }
.route-transition.backward.is-exiting .transition-panel { transform:translateX(110vw); }
.transition-panel--photo::before { content:''; position:absolute; inset:0; background-image:var(--transition-photo); background-size:cover; background-position:center; filter:saturate(.86) contrast(1.02); }
.transition-word { position:absolute; inset:auto 3vw 6vh auto; z-index:2; font-family:'Bodoni Moda',serif; font-size:clamp(100px,20vw,360px); line-height:.72; letter-spacing:-.07em; opacity:0; color:rgba(242,239,232,.1); pointer-events:none; transition:opacity .18s ease; }
.route-transition.is-covering .transition-word { opacity:1; }
.focus-motif { position:absolute; width:84px; height:84px; left:50%; top:50%; transform:translate(-50%,-50%) scale(.94); opacity:0; z-index:4; transition:opacity .08s ease, transform .12s var(--ease); }
.focus-motif span { position:absolute; width:20px; height:20px; border-color:rgba(242,239,232,.72); }
.focus-motif span:nth-child(1){left:0;top:0;border-left:1px solid;border-top:1px solid}
.focus-motif span:nth-child(2){right:0;top:0;border-right:1px solid;border-top:1px solid}
.focus-motif span:nth-child(3){left:0;bottom:0;border-left:1px solid;border-bottom:1px solid}
.focus-motif span:nth-child(4){right:0;bottom:0;border-right:1px solid;border-bottom:1px solid}
.focus-motif b { position:absolute; width:3px; height:3px; border-radius:50%; background:var(--ivory); left:50%; top:50%; transform:translate(-50%,-50%); }
.route-transition.is-focused .focus-motif { opacity:1; transform:translate(-50%,-50%) scale(1); }
.flash-layer { position:absolute; inset:0; z-index:6; background:#fffdf7; opacity:0; pointer-events:none; }
.route-transition.is-flashing .flash-layer { animation:routeFlash .13s ease-out both; }
@keyframes routeFlash { 0%{opacity:0} 20%{opacity:.98} 100%{opacity:0} }

/* Intro */
.intro { position:fixed; inset:0; z-index:1600; background:#050505; color:var(--ivory); visibility:hidden; pointer-events:none; overflow:hidden; }
.intro.is-active { visibility:visible; pointer-events:auto; }
.intro__darkroom { position:absolute; inset:0; background:radial-gradient(circle at 50% 48%,rgba(53,26,29,.32),transparent 34%),linear-gradient(145deg,#020202,#090708 55%,#020202); }
.intro__label { position:absolute; left:50%; top:7vh; transform:translateX(-50%); z-index:4; display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; transition:opacity .7s ease; }
.intro.is-active .intro__label { opacity:.7; }
.intro__label span { font-size:9px; letter-spacing:.24em; }
.intro__label small { font-size:7px; letter-spacing:.22em; opacity:.56; }
.intro__logo-frame { position:relative; display:block; width:154px; height:60px; overflow:hidden; }
.intro__logo-frame img { position:absolute; width:180.8px; max-width:none; height:auto; left:-11.8px; top:-41.4px; filter:invert(1); }
.intro.is-paneling .intro__label { opacity:0; transition-duration:.28s; }
.intro__viewfinder { position:absolute; width:min(68vw,820px); aspect-ratio:4/3; left:50%; top:53%; transform:translate(-50%,-50%); overflow:hidden; box-shadow:0 38px 120px rgba(0,0,0,.62); }
.intro__viewfinder::after { content:''; position:absolute; inset:0; border:1px solid rgba(213,190,130,.22); background:linear-gradient(90deg,transparent 49.94%,rgba(242,239,232,.11) 50%,transparent 50.06%),linear-gradient(0deg,transparent 49.94%,rgba(242,239,232,.11) 50%,transparent 50.06%); z-index:1; pointer-events:none; }
.viewfinder__photo { position:absolute; inset:0; background-image:url('https://res.cloudinary.com/ykkkuzmy/image/upload/v1788120791/DSC09706-copy.jpg'); background-size:cover; background-position:58% 42%; filter:blur(11px) brightness(.55); transform:scale(1.04); transition:filter .75s var(--ease), transform .75s var(--ease); }
.intro.is-focusing .viewfinder__photo { filter:blur(0) brightness(.84); transform:scale(1); }
.vf-corner { position:absolute; width:36px; height:36px; border-color:rgba(242,239,232,.56); z-index:2; }
.vf-corner--tl{left:14px;top:14px;border-left:1px solid;border-top:1px solid}.vf-corner--tr{right:14px;top:14px;border-right:1px solid;border-top:1px solid}.vf-corner--bl{left:14px;bottom:14px;border-left:1px solid;border-bottom:1px solid}.vf-corner--br{right:14px;bottom:14px;border-right:1px solid;border-bottom:1px solid}
.vf-focus { position:absolute; width:88px; height:64px; border:1px solid rgba(242,239,232,.56); left:50%; top:50%; transform:translate(-50%,-50%) scale(1.12); opacity:.34; transition:transform .55s var(--ease), opacity .55s ease; z-index:3; }
.intro.is-focusing .vf-focus { transform:translate(-50%,-50%) scale(.78); opacity:.9; }
.vf-dot { position:absolute; left:50%; top:50%; width:3px; height:3px; border-radius:50%; background:var(--ivory); z-index:3; transform:translate(-50%,-50%); }
.intro__flash { position:absolute; inset:0; z-index:10; background:#fffdf7; opacity:0; }
.intro.is-flashing .intro__flash { animation:introFlash .14s ease-out both; }
@keyframes introFlash { 0%{opacity:0} 18%{opacity:1} 100%{opacity:0} }
.intro__panels { position:absolute; inset:0; z-index:12; display:flex; pointer-events:none; }
.intro-panel { height:100%; flex:none; transform:translateX(110vw); transition:transform .55s var(--ease-cinema); }
.intro.is-paneling .intro-panel { transform:translateX(0); }
.intro.is-revealing .intro-panel { transform:translateX(-110vw); }

/* Image loading fallback */
img.remote-image { background:linear-gradient(135deg,#1a1a1a,#0d0d0d); }
img.remote-image.image-error { opacity:.25; }
img.remote-image[data-viewable="true"] { cursor:pointer; }
img.remote-image[data-viewable="true"]:focus-visible { outline:1px solid currentColor; outline-offset:7px; }

@media (max-width: 980px) {
  :root { --header-h: 76px; }
  .site-header { padding: 0 20px; }
  .brand-mark__sub { display:none; }
  .primary-nav { gap: 15px; }
  .nav-link { font-size: 9px; letter-spacing:.12em; }
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:calc(var(--header-h) + 48px); gap:52px; }
  .hero-copy { min-height: 44vh; justify-content:flex-end; }
  .hero-photo-wrap { width:86vw; max-width:760px; justify-self:end; }
  .hero-photo { aspect-ratio:4/5; }
  .hero-title { max-width:10ch; }
  .scroll-cue { display:none; }
  .editorial-split, .editorial-split.reverse, .story-chapter-grid, .story-chapter-grid.reverse, .story-lead-grid, .page-hero-grid, .package-hero-grid { grid-template-columns:minmax(0,1fr); }
  .editorial-split.reverse .editorial-photo, .editorial-split.reverse .editorial-copy, .story-chapter-grid.reverse .story-photo, .story-chapter-grid.reverse .story-copy { order:initial; }
  .editorial-photo--portrait { width:86vw; max-width:700px; }
  .editorial-photo--medium { width:78vw; }
  .editorial-photo--intimate { width:70vw; }
  .bw-frame { width:90vw; }
  .finale-top { grid-template-columns:1fr; align-items:start; }
  .page-hero-side { width:54vw; margin-left:auto; }
  .album-spread--a, .album-spread--b, .album-spread--c { grid-template-columns:1fr; gap:46px; }
  .album-card--narrow { width:74vw; justify-self:start; }
  .album-card--small { width:66vw; justify-self:end; }
  .story-lead-photo { width:82vw; margin-left:auto; }
  .story-photo { width:84vw; }
  .story-chapter-grid.reverse .story-photo { margin-left:auto; }
  .package-row { grid-template-columns:56px 1fr auto; min-height:150px; }
  .package-row__photo { display:none; }
  .package-note { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  :root { --pad: 18px; --header-h: 68px; }
  .site-header { height:var(--header-h); padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); }
  .brand-mark__name { font-size:10px; letter-spacing:.16em; }
  .primary-nav { gap:0; margin-left:auto; }
  .nav-link { font-size:8px; letter-spacing:.08em; padding:15px 7px; }
  .nav-link:hover { letter-spacing:.08em; }
  .nav-hairline { bottom:7px; }
  .film-grain { opacity:.024; }
  .ambient-glow { display:none; }
  .display-xl { font-size:clamp(56px, 18vw, 96px); }
  .display-lg { font-size:clamp(46px, 14vw, 82px); }
  .display-md { font-size:clamp(36px, 11vw, 62px); }
  .hero { padding: calc(var(--header-h) + 24px) 18px 48px; gap:36px; }
  .hero-copy { min-height:43svh; padding-top:18px; }
  .hero-kicker { margin-bottom:18px; }
  .hero-title { font-size:clamp(60px,18vw,96px); max-width:8.7ch; }
  .hero-meta { margin-top:24px; }
  .hero-photo-wrap { width:88vw; justify-self:end; }
  .hero-photo { aspect-ratio: 4 / 5; }
  .hero-photo img { object-position:61% 44%; }
  .hero-frame-corners::before, .hero-frame-corners::after, .hero-frame-corners span::before, .hero-frame-corners span::after { width:15px; height:15px; }
  .hero-frame-corners::before{left:-6px;top:-6px}.hero-frame-corners::after{right:-6px;top:-6px}.hero-frame-corners span::before{left:-6px;bottom:-6px}.hero-frame-corners span::after{right:-6px;bottom:-6px}
  .hero-photo-caption { bottom:-22px; right:0; font-size:7px; }
  .section { padding:84px 18px; }
  .section-label-row { margin-bottom:38px; }
  .section-label-row .hairline { max-width:72px; }
  .editorial-photo--portrait { width:88vw; }
  .editorial-photo--medium { width:82vw; margin-left:auto; }
  .editorial-photo--intimate { width:76vw; }
  .frame-hairline { outline-offset:5px; }
  .frame-matte { padding:6px; }
  .frame-offset::after { inset:6px -6px -6px 6px; }
  .bw-stage { min-height:auto; padding:84px 0; }
  .bw-frame { width:94vw; padding:10px; }
  .bw-frame::before { inset:4px; }
  .bw-caption { padding:0 4px; }
  .quote-band { padding:52px 18px; }
  .quote-band__track { font-size:clamp(46px,16vw,84px); }
  .finale { min-height:82svh; padding:88px 18px 24px; }
  .finale-wordmark { font-size:37vw; margin-top:66px; }
  .finale-foot { flex-direction:column; align-items:flex-start; }
  .page-hero { min-height:68svh; padding: calc(var(--header-h) + 28px) 18px 54px; }
  .page-hero-side { width:64vw; }
  .album-book { padding:78px 18px 112px; }
  .album-spread { margin-bottom:112px; }
  .album-card--narrow { width:76vw; }
  .album-card--small { width:69vw; }
  .album-card--hero { width:92vw; }
  .album-note { max-width:24ch; }
  .story-lead { padding: calc(var(--header-h) + 34px) 18px 68px; }
  .story-lead-photo { width:88vw; }
  .story-chapter { min-height:auto; }
  .story-photo { width:86vw; }
  .package-hero { min-height:56svh; padding: calc(var(--header-h) + 34px) 18px 54px; }
  .package-list { padding:0 18px 100px; }
  .package-row { grid-template-columns:42px 1fr; gap:14px; min-height:128px; }
  .package-row__meta { grid-column:2; text-align:left; margin-top:-24px; padding-bottom:14px; }
  .package-row:hover { padding-left:8px; padding-right:8px; }
  .package-note { padding:0 18px 90px; }
  .sound-control { min-width:42px; width:42px; padding:0; border-radius:50%; }
  .sound-control__label { display:none; }
  .cursor { display:none !important; }
  .transition-panel:nth-child(n+5) { display:none; }
  .transition-word { font-size:28vw; right:2vw; bottom:8vh; }
  .focus-motif { width:66px; height:66px; }
  .intro__viewfinder { width:88vw; aspect-ratio:3/4; }
  .viewfinder__photo { background-position:63% 42%; }
}

@media (hover:none), (pointer:coarse) { .cursor { display:none !important; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .film-grain { display:none; }
  .route-transition .focus-motif, .route-transition .flash-layer { display:none; }
  .intro { display:none !important; }
}

/* 2026 cinematic continuation pass */
:root {
  --gold: #c6a664;
  --gold-deep: #80662d;
  --champagne: #d5be82;
  --oxblood: #351a1d;
  --plum: #2a2025;
  --taupe: #a49888;
  --sage: #7d8176;
}

html { scroll-padding-top: var(--header-h); }
body[data-route="story"] { background:#0d0c0d; }
body[data-route="package"] { background:#17120f; }
body.film-open { overflow:hidden; }

.site-header { z-index:300; }
.site-header:not(.light-context).is-scrolled { background:rgba(8,8,8,.88); }
body[data-route="package"] .site-header.is-scrolled { background:rgba(25,18,14,.9); }
.nav-hairline { background:var(--champagne); color:var(--champagne); }

.hero { min-height:min(100svh, 940px); }
.hero-photo { aspect-ratio:1 / 1; }
.hero-photo img { object-fit:contain; object-position:center; }
.section { padding:clamp(78px,8.5vw,138px) var(--pad); }
.editorial-photo img { object-fit:contain; }
.album-book { padding:clamp(76px,8vw,124px) var(--pad) clamp(90px,9vw,146px); }
.album-spread { margin-bottom:clamp(90px,10vw,164px); }
.page-hero { min-height:66svh; padding-bottom:54px; }
.page-hero-side img { height:auto; aspect-ratio:auto; object-fit:contain; }
.album-endpaper { min-height:58svh; }
.js-ready [data-reveal="scale"] { transform:scale(1.012); }
.js-ready [data-reveal="scale"].is-visible { transform:scale(1); }
[data-drift].is-visible { transform:translate3d(0,var(--drift-y,0),0); }

/* Horizontal signature ribbons */
.transition-panels { display:flex; flex-direction:column; }
.transition-panel {
  width:100vw !important;
  height:10.15dvh;
  flex:none;
  background:var(--ribbon-color);
  transform:translate3d(101vw,0,0);
  transition:transform var(--ribbon-duration) var(--ease-cinema) var(--ribbon-delay);
}
.route-transition.backward .transition-panel { transform:translate3d(-101vw,0,0); }
.route-transition.is-covering .transition-panel { transform:translate3d(0,0,0); }
.route-transition.forward.is-exiting .transition-panel { transform:translate3d(-101vw,0,0); transition-delay:calc(var(--ribbon-delay) * .35); }
.route-transition.backward.is-exiting .transition-panel { transform:translate3d(101vw,0,0); transition-delay:calc(var(--ribbon-delay) * .35); }
.route-transition::after { content:''; position:absolute; inset:0; z-index:1; opacity:0; background-image:var(--transition-photo); background-size:cover; background-position:center; mix-blend-mode:soft-light; filter:grayscale(.2); transition:opacity .12s ease; }
.route-transition.is-covering::after { opacity:.1; }
.transition-word { color:rgba(242,239,232,.12); z-index:3; }
.focus-motif, .flash-layer { z-index:5; }

.intro__panels { display:flex; flex-direction:column; }
.intro-panel { width:100vw !important; flex:none; transform:translate3d(101vw,0,0); transition:transform .46s var(--ease-cinema); }
.intro.is-paneling .intro-panel { transform:translate3d(0,0,0); }
.intro.is-revealing .intro-panel { transform:translate3d(-101vw,0,0); }

/* Aperture cursor */
@media (hover:hover) and (pointer:fine) {
  html, body, a, button, input { cursor:none !important; }
}
.cursor::before { content:''; position:absolute; width:3px; height:3px; border-radius:50%; background:#fffdf7; transform:translate(-50%,-50%); box-shadow:0 0 8px rgba(213,190,130,.45); }
.cursor::after { content:''; position:absolute; left:0; top:0; width:18px; height:18px; border-radius:50%; background:#fffdf7; opacity:0; transform:translate(-50%,-50%) scale(.4); filter:blur(5px); }
.cursor__ring { width:30px; height:30px; border-color:rgba(213,190,130,.78); background:repeating-conic-gradient(from 10deg,transparent 0 42deg,rgba(213,190,130,.16) 43deg 45deg); box-shadow:0 0 0 1px rgba(255,253,247,.05) inset; transition:width .22s var(--ease),height .22s var(--ease),transform .2s var(--ease),border-color .2s ease,background .2s ease; }
.cursor.has-label .cursor__ring { width:46px; height:46px; background:repeating-conic-gradient(from 2deg,rgba(8,8,8,.16) 0 40deg,rgba(213,190,130,.28) 41deg 45deg); }
.cursor.is-nav .cursor__ring { width:22px; height:22px; border-color:rgba(255,253,247,.9); }
.cursor.is-capturing .cursor__ring { animation:apertureCapture .2s var(--ease) both; }
.cursor.is-capturing::after { animation:cursorMiniFlash .18s ease-out both; }
@keyframes apertureCapture { 0%{transform:translate(-50%,-50%) scale(1)} 45%{transform:translate(-50%,-50%) scale(.48);background:rgba(213,190,130,.28)} 100%{transform:translate(-50%,-50%) scale(1)} }
@keyframes cursorMiniFlash { 0%,30%{opacity:0;transform:translate(-50%,-50%) scale(.35)} 45%{opacity:.5;transform:translate(-50%,-50%) scale(.78)} 100%{opacity:0;transform:translate(-50%,-50%) scale(1.16)} }

/* Story — cinema, not a photo gallery */
.story-page { position:relative; background:radial-gradient(ellipse at 76% 8%,rgba(111,63,48,.18),transparent 33%),radial-gradient(ellipse at 14% 42%,rgba(53,26,29,.27),transparent 37%),linear-gradient(155deg,#070707 0%,#0d0c0d 42%,#1b1114 72%,#0a0909 100%); }
.story-page::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 0 13%,rgba(213,190,130,.035) 13% 13.07%,transparent 13.07% 72%,rgba(213,190,130,.028) 72% 72.06%,transparent 72.06%),repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 7px); mix-blend-mode:screen; }
.story-page > * { position:relative; z-index:1; }
.story-lead { min-height:76svh; padding:calc(var(--header-h) + 46px) var(--pad) 68px; display:grid; align-items:center; overflow:hidden; }
.story-lead::after { content:'ARAM / MOTION UNIT'; position:absolute; left:var(--pad); bottom:22px; color:rgba(213,190,130,.28); font-size:7px; letter-spacing:.24em; writing-mode:vertical-rl; transform:rotate(180deg); }
.story-lead-grid { grid-template-columns:minmax(310px,.8fr) minmax(420px,1.2fr); align-items:center; }
.story-lead-copy .display-xl { margin:12px 0 24px; }
.story-enter { display:inline-flex; align-items:center; gap:16px; margin-top:26px; color:var(--champagne); text-decoration:none; text-transform:uppercase; letter-spacing:.18em; font-size:9px; }
.story-enter i { display:block; width:48px; height:1px; background:currentColor; animation:filmLine 2.4s ease-in-out infinite; transform-origin:left; }

.cinema-object { width:min(55vw,860px); aspect-ratio:1.24/1; justify-self:end; position:relative; isolation:isolate; overflow:visible; }
.cinema-object__halo { position:absolute; inset:4% -4% -5% 4%; border-radius:50%; background:radial-gradient(ellipse at 60% 43%,rgba(213,190,130,.14),rgba(53,26,29,.11) 34%,rgba(7,7,7,.03) 66%,transparent 74%); filter:blur(26px); transition:filter .28s ease,opacity .28s ease; }
.camera-canvas { position:absolute; inset:-7% -8% -12% -5%; width:113%; height:119%; display:block; opacity:0; filter:drop-shadow(0 42px 45px rgba(0,0,0,.52)); transition:opacity .7s ease,filter .28s ease; pointer-events:none; }
.cinema-object.is-webgl .camera-canvas { opacity:1; }
.camera-studio-line { position:absolute; left:11%; right:4%; bottom:12%; height:1px; background:linear-gradient(90deg,transparent,rgba(213,190,130,.18) 22%,rgba(242,239,232,.06) 76%,transparent); box-shadow:0 16px 32px rgba(0,0,0,.78); }
.camera-flash-bloom { position:absolute; width:34%; aspect-ratio:1; right:3%; top:26%; border-radius:50%; background:#fffdf7; opacity:0; filter:blur(26px); pointer-events:none; mix-blend-mode:screen; }
.cinema-object.is-preparing .camera-canvas { filter:drop-shadow(0 42px 45px rgba(0,0,0,.52)) brightness(1.05); }
.cinema-object.is-flashing .camera-flash-bloom { animation:threeCameraFlash .34s ease-out both; }
.cinema-object.is-flashing .cinema-object__halo { filter:blur(20px); opacity:.92; }
.cinema-object__caption { position:absolute; right:2%; bottom:3%; display:flex; flex-direction:column; gap:5px; text-align:right; text-transform:uppercase; letter-spacing:.2em; font-size:7px; color:rgba(213,190,130,.58); }
.cinema-object__caption b { font-weight:500; color:rgba(233,224,207,.7); }
.cinema-object__caption i { font-style:normal; opacity:.62; }

.camera-fallback { position:absolute; inset:12% 2% 15% 11%; opacity:1; transform:translateY(2%); transition:opacity .45s ease; filter:drop-shadow(0 38px 58px rgba(0,0,0,.62)); }
.cinema-object.is-webgl .camera-fallback { opacity:0; }
.camera-fallback__body { position:absolute; width:66%; height:42%; right:12%; top:21%; border-radius:18px 24px 24px 18px; background:linear-gradient(145deg,#292b2e 0%,#111315 38%,#070809 72%,#202225); box-shadow:inset 0 1px rgba(255,255,255,.08),inset 0 -2px rgba(0,0,0,.8); }
.camera-fallback__body::before { content:''; position:absolute; width:42%; height:25%; left:23%; top:-19%; border-radius:9px 9px 2px 2px; background:linear-gradient(145deg,#292b2e,#0b0c0d); }
.camera-fallback__lens { position:absolute; width:48%; aspect-ratio:1; right:-28%; top:50%; transform:translateY(-50%); border-radius:50%; border:14px solid #111315; background:radial-gradient(circle at 38% 32%,rgba(255,253,247,.72) 0 2%,rgba(213,190,130,.28) 3% 7%,#183044 12%,#071018 34%,#020304 56%,#15191c 58%,#050607 72%); box-shadow:0 0 0 7px #24272a,0 0 0 9px #090a0b,0 24px 42px rgba(0,0,0,.6); }
.camera-fallback__lens i { position:absolute; inset:18%; border-radius:50%; background:radial-gradient(circle at 38% 28%,rgba(255,253,247,.5),transparent 9%,rgba(14,37,56,.48) 35%,rgba(0,0,0,.86) 72%); }
.camera-fallback__lens b { position:absolute; inset:-9px; border-radius:50%; border:1px solid rgba(213,190,130,.2); }
.camera-fallback__screen { position:absolute; width:26%; height:49%; left:7%; top:24%; border:5px solid #090a0b; background:radial-gradient(circle at 50% 48%,rgba(213,190,130,.1),transparent 8%),linear-gradient(145deg,#0c171d,#121014); box-shadow:0 0 0 1px rgba(213,190,130,.22); }
.camera-fallback__plate { position:absolute; width:29%; left:39%; bottom:15%; opacity:.72; }
.camera-fallback__grip { position:absolute; width:18%; height:82%; left:-8%; top:9%; border-radius:20px 8px 8px 20px; background:linear-gradient(90deg,#070809,#1c1e20 48%,#08090a); }
.camera-fallback__handle { position:absolute; width:10%; height:35%; left:45%; bottom:-11%; border-radius:10px 10px 18px 18px; background:repeating-linear-gradient(0deg,#0b0c0d 0 8px,#242628 8px 10px); }
.camera-fallback__logo img { filter:invert(1) sepia(.18); }
@keyframes threeCameraFlash { 0%{opacity:0;transform:scale(.34)} 18%{opacity:.42;transform:scale(.92)} 100%{opacity:0;transform:scale(1.48)} }

.film-intro { max-width:var(--max); margin:0 auto; padding:clamp(84px,10vw,150px) var(--pad) clamp(58px,7vw,100px); display:grid; grid-template-columns:1fr .52fr; gap:clamp(48px,9vw,160px); align-items:end; border-top:1px solid rgba(213,190,130,.12); }
.film-intro .display-lg { margin:18px 0 0; }
.film-sequence { max-width:var(--max); margin:0 auto; padding:0 var(--pad) clamp(100px,12vw,180px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(54px,8vw,130px) clamp(34px,5vw,80px); }
.film-chapter:nth-child(even) { margin-top:clamp(90px,12vw,190px); }
.film-card { position:relative; display:block; width:100%; padding:0; border:0; background:#050505; color:#f2efe8; text-align:left; aspect-ratio:16/10; overflow:hidden; isolation:isolate; box-shadow:0 24px 70px rgba(0,0,0,.34); }
.film-poster { position:absolute; inset:0; overflow:hidden; }
.film-poster::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,5,5,.22),transparent 38%,rgba(5,5,5,.76)); }
.film-poster video { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1); filter:saturate(.78) contrast(1.04); transition:transform 1.1s var(--ease),filter .7s ease; }
.film-card:hover .film-poster video { transform:scale(1.012); filter:saturate(.94) contrast(1.02); }
.film-light { position:absolute; inset:-30%; z-index:2; background:linear-gradient(110deg,transparent 35%,rgba(255,253,247,.14) 48%,transparent 59%); transform:translateX(-80%); animation:movingLight 6s ease-in-out infinite; pointer-events:none; }
.film-focus { position:absolute; inset:18px; z-index:3; opacity:.7; transition:inset .45s var(--ease),opacity .3s ease; }
.film-focus i,.film-player__focus i { position:absolute; width:22px; height:22px; border-color:rgba(213,190,130,.72); }
.film-focus i:nth-child(1),.film-player__focus i:nth-child(1){left:0;top:0;border-left:1px solid;border-top:1px solid}.film-focus i:nth-child(2),.film-player__focus i:nth-child(2){right:0;top:0;border-right:1px solid;border-top:1px solid}.film-focus i:nth-child(3),.film-player__focus i:nth-child(3){left:0;bottom:0;border-left:1px solid;border-bottom:1px solid}.film-focus i:nth-child(4),.film-player__focus i:nth-child(4){right:0;bottom:0;border-right:1px solid;border-bottom:1px solid}
.film-card:hover .film-focus { inset:13px; opacity:1; }
.film-card__top { position:absolute; z-index:4; top:28px; left:31px; right:31px; display:flex; justify-content:space-between; gap:24px; font-size:7px; letter-spacing:.2em; text-transform:uppercase; }
.film-card__title { position:absolute; z-index:4; left:31px; bottom:48px; font-family:'Bodoni Moda',serif; font-size:clamp(36px,4.2vw,68px); letter-spacing:-.04em; }
.film-card__play { position:absolute; z-index:4; right:31px; bottom:54px; display:flex; align-items:center; gap:10px; font-size:8px; letter-spacing:.18em; }
.film-card__play b { width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:7px solid var(--champagne); }
.film-card__timeline { position:absolute; z-index:4; left:31px; right:31px; bottom:25px; height:1px; background:rgba(242,239,232,.25); overflow:hidden; }
.film-card__timeline i { display:block; width:38%; height:100%; background:var(--champagne); transform:translateX(-105%); animation:filmLine 3.5s ease-in-out infinite; }
.film-card.is-activating::after { content:''; position:absolute; inset:0; z-index:8; background:#fffdf7; animation:cardCapture .35s ease-out both; }
@keyframes movingLight { 0%,18%{transform:translateX(-80%)} 52%,100%{transform:translateX(85%)} }
@keyframes filmLine { 0%{transform:translateX(-105%)} 60%,100%{transform:translateX(280%)} }
@keyframes cardCapture { 0%{opacity:0} 25%{opacity:.72} 100%{opacity:0} }
.story-coda { background:linear-gradient(145deg,#351a1d,#211416); min-height:auto; }

/* Custom cinema player */
.film-player { position:fixed; inset:0; z-index:1500; color:#f2efe8; opacity:0; transition:opacity .18s ease; }
.film-player[hidden] { display:none; }
.film-player.is-active { opacity:1; }
.film-player.is-closing { opacity:0; }
.film-player__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.96); }
.film-player__shell { position:absolute; inset:clamp(14px,3vw,46px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:14px; }
.film-player.is-maximized .film-player__shell { inset:0; }
.film-player.is-maximized .film-player__top { position:absolute; z-index:12; top:14px; left:18px; right:18px; }
.film-player.is-maximized .film-player__stage { position:absolute; inset:0; }
.film-player.is-maximized .film-controls { position:absolute; z-index:12; left:18px; right:18px; bottom:12px; padding:8px 12px; background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.28),rgba(0,0,0,.72)); }
.film-player__top { display:flex; align-items:center; justify-content:space-between; font-size:8px; letter-spacing:.19em; text-transform:uppercase; opacity:0; transition:opacity .28s ease .34s; }
.film-player.is-open .film-player__top { opacity:.76; }
.film-player__label b { font-weight:500; color:var(--champagne); }
.film-player__close { display:flex; align-items:center; gap:11px; color:inherit; background:transparent; border:0; padding:10px 0; text-transform:uppercase; letter-spacing:.18em; font-size:8px; }
.film-player__close i { width:20px; height:1px; background:currentColor; transform:rotate(-45deg); position:relative; }
.film-player__close i::after { content:''; position:absolute; inset:0; background:currentColor; transform:rotate(90deg); }
.film-player__stage { position:relative; width:100%; height:100%; min-height:0; overflow:hidden; background:#000; clip-path:inset(19% 18%); transition:clip-path .34s var(--ease-cinema) .16s; }
.film-player.is-open .film-player__stage { clip-path:inset(0); }
.film-player__stage video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#000; opacity:0; transition:opacity .28s ease; }
.film-player.is-playing .film-player__stage video { opacity:1; }
.film-player__poster { position:absolute; inset:0; z-index:2; background-size:cover; filter:brightness(.88) saturate(.74); transition:filter .18s ease,opacity .32s ease .42s,transform .42s var(--ease); }
.film-player.is-reacting .film-player__poster { filter:brightness(.58) saturate(.7); }
.film-player.is-open .film-player__poster { transform:scale(1.008); }
.film-player.is-playing .film-player__poster { opacity:0; pointer-events:none; }
.film-player__focus { position:absolute; inset:12%; z-index:4; opacity:0; transform:scale(1.1); transition:opacity .16s ease,transform .22s var(--ease); pointer-events:none; }
.film-player.is-focusing .film-player__focus { opacity:1; transform:scale(.92); }
.film-player__scan { position:absolute; z-index:5; top:0; bottom:0; left:-10%; width:2px; opacity:0; background:linear-gradient(180deg,transparent,var(--champagne),transparent); box-shadow:0 0 18px rgba(213,190,130,.7); }
.film-player.is-scanning .film-player__scan { animation:playerScan .34s ease-out both; }
@keyframes playerScan { 0%{left:4%;opacity:0} 18%{opacity:1} 100%{left:96%;opacity:0} }
.film-controls { display:grid; grid-template-columns:auto auto minmax(120px,1fr) auto auto; align-items:center; gap:clamp(12px,2vw,28px); opacity:0; transition:opacity .28s ease .38s; }
.film-player.is-open .film-controls { opacity:1; }
.film-controls button { border:0; background:transparent; color:inherit; text-transform:uppercase; letter-spacing:.15em; font-size:8px; padding:10px 0; }
.film-time { font-size:8px; letter-spacing:.1em; opacity:.62; white-space:nowrap; }
.film-time b,.film-time i { font-style:normal;font-weight:400; }
.film-progress { width:100%; height:16px; appearance:none; background:transparent; }
.film-progress::-webkit-slider-runnable-track { height:1px; background:linear-gradient(90deg,var(--champagne) var(--progress,0%),rgba(242,239,232,.26) var(--progress,0%)); }
.film-progress::-webkit-slider-thumb { appearance:none; width:7px; height:7px; border-radius:50%; background:#fffdf7; margin-top:-3px; }
.film-player__error { position:absolute; z-index:8; inset:0; display:grid; place-content:center; gap:18px; background:#050505; text-align:center; text-transform:uppercase; letter-spacing:.18em; font-size:9px; }
.film-player__error[hidden] { display:none; }
.film-player__error button { color:var(--champagne); border:1px solid rgba(213,190,130,.4); background:transparent; padding:10px 16px; }

/* Package — espresso couture catalogue */
.package-page { background:linear-gradient(180deg,#1b1512 0%,#130f0d 58%,#0d0b0a 100%); color:var(--ivory); }
.package-hero { min-height:57svh; position:relative; overflow:hidden; padding-bottom:58px; }
.package-hero__wash { position:absolute; width:55vw; height:55vw; right:-17vw; top:-24vw; border-radius:50%; background:radial-gradient(circle,rgba(198,166,100,.15),rgba(53,26,29,.16) 42%,transparent 70%); filter:blur(30px); }
.package-hero .text-body { color:#e9e0cf; }
.package-list { padding-bottom:clamp(86px,9vw,140px); }
.package-row { display:block; min-height:0; border-top:1px solid rgba(213,190,130,.22); overflow:hidden; transition:none; }
.package-row:last-child { border-bottom:1px solid rgba(213,190,130,.22); }
.package-row:hover { background:transparent; color:inherit; padding:0; }
.package-row__summary { width:100%; min-height:176px; display:grid; grid-template-columns:86px minmax(0,1fr) auto 90px; align-items:center; gap:28px; padding:0; border:0; color:inherit; background:transparent; text-align:left; }
.package-row__num { color:var(--champagne); font-size:clamp(34px,4vw,58px); opacity:.52; }
.package-row__title { font-size:clamp(34px,4.8vw,72px); }
.package-row__price { font-family:'Bodoni Moda',serif; font-size:clamp(28px,3vw,46px); color:var(--champagne); }
.package-row__action { justify-self:end; text-transform:uppercase; letter-spacing:.18em; font-size:7px; color:var(--taupe); display:flex; align-items:center; gap:10px; }
.package-row__action i { display:block;width:18px;height:18px;border:1px solid rgba(213,190,130,.38);border-radius:50%;position:relative; }
.package-row__action i::before,.package-row__action i::after { content:'';position:absolute;left:5px;right:5px;top:8px;height:1px;background:var(--champagne);transition:transform .35s var(--ease); }
.package-row__action i::after { transform:rotate(90deg); }
.package-row.is-open .package-row__action i::after { transform:rotate(0); }
.package-row__summary:hover .package-row__title { color:var(--champagne); }
.package-sheet { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .58s var(--ease),opacity .32s ease; }
.package-row.is-open .package-sheet { grid-template-rows:1fr; opacity:1; }
.package-sheet__inner { min-height:0; overflow:hidden; display:grid; grid-template-columns:minmax(260px,.72fr) minmax(300px,1fr); gap:clamp(40px,8vw,130px); align-items:start; }
.package-sheet figure { width:min(100%,540px); margin:0 0 72px 86px; padding:8px; border:1px solid rgba(213,190,130,.25); }
.package-sheet figure img { width:100%; height:auto; display:block; object-fit:contain; }
.package-sheet__copy { padding:18px 0 76px; max-width:640px; }
.package-sheet__copy ul { list-style:none; margin:28px 0 44px; padding:0; columns:2; column-gap:42px; }
.package-sheet__copy li { break-inside:avoid; padding:13px 0; border-bottom:1px solid rgba(213,190,130,.15); color:#e9e0cf; font-size:clamp(13px,.9vw,15px); line-height:1.62; }
.package-sheet__folio { color:var(--champagne); text-transform:uppercase; letter-spacing:.18em; font-size:8px; }
.package-note { border-top:1px solid rgba(213,190,130,.12); padding-top:clamp(76px,8vw,124px); padding-bottom:clamp(92px,9vw,140px); }
.package-finale { background:#080706; }

@media (max-width:980px) {
  .hero-photo { aspect-ratio:1/1; }
  .story-lead { min-height:auto; padding-top:calc(var(--header-h) + 54px); }
  .story-lead-grid { grid-template-columns:1fr; gap:40px; }
  .cinema-object { width:min(94vw,780px); margin-left:auto; }
  .film-intro { grid-template-columns:1fr; gap:30px; }
  .film-sequence { gap:70px 28px; }
  .package-row__summary { grid-template-columns:64px 1fr auto; }
  .package-row__action { display:none; }
  .package-sheet__inner { grid-template-columns:.75fr 1fr; gap:50px; }
  .package-sheet figure { margin-left:64px; }
  .brand-footer { grid-template-columns:1fr 1fr; }
  .brand-footer__identity { grid-column:1; }
  .brand-footer__about { grid-column:2; }
  .instagram-link { grid-column:2; justify-self:start; }
}

@media (max-width:640px) {
  .site-header { align-items:center; }
  .brand-mark { max-width:82px; }
  .brand-mark__logo-frame { width:76px; height:30px; }
  .brand-mark__logo-frame img { width:89.2px; left:-5.8px; top:-20.4px; }
  .brand-mark__name { line-height:1.15; }
  .hero { min-height:auto; padding-top:calc(var(--header-h) + 34px); }
  .hero-copy { min-height:38svh; }
  .hero-copy,.editorial-copy,.story-copy,.album-note { min-width:0; max-width:100%; }
  .album-card--hero { width:min(92vw,100%); }
  .hero-photo { aspect-ratio:1/1; }
  .hero-photo img { object-position:center; }
  .section { padding:72px 18px; }
  .page-hero { min-height:auto; padding-top:calc(var(--header-h) + 46px); }
  .page-hero-grid { gap:34px; }
  .page-hero-side { width:58vw; }
  .album-book { padding-top:70px; }
  .album-spread { margin-bottom:92px; }
  .album-endpaper { min-height:60svh; padding:76px 18px; }
  .story-lead { padding:calc(var(--header-h) + 38px) 18px 56px; }
  .story-lead-copy .display-xl { margin-top:14px; }
  .cinema-object { width:108vw; margin-right:-13vw; aspect-ratio:1.08/1; }
  .camera-canvas { inset:-5% -4% -8% -3%; width:107%; height:113%; }
  .camera-fallback { inset:15% 4% 19% 9%; }
  .cinema-object__caption { right:13%; bottom:5%; font-size:6px; }
  .film-intro { padding:72px 18px 48px; }
  .film-sequence { grid-template-columns:1fr; gap:52px; padding:0 18px 90px; }
  .film-chapter:nth-child(even) { margin-top:0; }
  .film-card { aspect-ratio:4/3; }
  .film-card__top { top:18px;left:18px;right:18px; }
  .film-card__title { left:18px;bottom:42px;font-size:42px; }
  .film-card__play { right:18px;bottom:47px; }
  .film-card__timeline { left:18px;right:18px;bottom:20px; }
  .story-coda .story-photo { width:min(88vw,100%); }
  .film-player__shell { inset:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom)); }
  .film-player__stage { clip-path:inset(25% 4%); }
  .film-controls { grid-template-columns:auto 1fr auto; gap:10px; }
  .film-time { display:none; }
  .film-progress { grid-column:1/-1; grid-row:1; }
  .film-toggle { grid-column:1;grid-row:2; }
  .film-mute { grid-column:2;grid-row:2;justify-self:end; }
  .film-fullscreen { grid-column:3;grid-row:2; }
  .package-hero { min-height:auto; padding:calc(var(--header-h) + 48px) 18px 62px; }
  .package-hero-grid { gap:28px; }
  .package-list { padding:0 18px 86px; }
  .package-row__summary { min-height:132px; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; }
  .package-row__num { font-size:30px; }
  .package-row__title { font-size:clamp(27px,8.7vw,38px); line-height:1; }
  .package-row__price { font-size:25px; }
  .package-sheet__inner { grid-template-columns:1fr; gap:22px; }
  .package-sheet figure { width:72vw; margin:0 0 0 42px; }
  .package-sheet__copy { padding:0 0 54px 42px; }
  .package-sheet__copy ul { columns:1; margin-top:20px; }
  .package-note { padding:72px 18px 86px; }
  .brand-footer { grid-template-columns:1fr; gap:38px; padding:58px 18px; }
  .brand-footer__identity,.brand-footer__about,.instagram-link { grid-column:1; }
  .brand-footer__about p { font-size:27px; max-width:15ch; }
  .instagram-link { justify-self:start; }
  .image-viewer__shell { inset:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom)); }
  .image-viewer__top > span:not(.official-logo) { display:none; }
  .image-viewer__stage { clip-path:inset(12% 3%); }
  .image-viewer__foot span:last-child { display:none; }
  .transition-panel:nth-child(n+5) { display:block; }
  .transition-word { font-size:24vw; }
  .intro__viewfinder { aspect-ratio:1/1; }
}

@media (prefers-reduced-motion:reduce) {
  .cinema-object__rig,.camera-lens i,.film-light,.film-card__timeline i,.story-enter i { animation:none !important; }
  [data-drift] { transform:none !important; }
}
