/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.italic{font-style:italic}}:root{--ink:#090909;--ivory:#f1eee7;--red:#e0352b;--line:#f1eee752;--line-dark:#09090933;--sans:"Helvetica Neue", "Arial Nova", Helvetica, Arial, sans-serif;--serif:"Iowan Old Style", "Baskerville", "Times New Roman", serif}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth}body{background:var(--ink);color:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}body,button,input,select,textarea{font-family:var(--sans)}::selection{background:var(--red);color:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,summary,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--red);outline-offset:5px}.site-header{color:#fff;mix-blend-mode:difference;pointer-events:none;z-index:50;grid-template-columns:1fr auto 1fr;align-items:center;height:78px;padding:0 3vw;display:grid;position:fixed;top:0;left:0;right:0}.site-header a,.site-header details{pointer-events:auto}.wordmark{font-family:var(--serif);letter-spacing:-.04em;justify-self:start;font-size:1.65rem;font-style:italic}.desktop-nav{letter-spacing:.15em;text-transform:uppercase;gap:34px;font-size:.64rem;font-weight:700;display:flex}.desktop-nav a,.header-booking,.booking-direct a,.site-footer a{position:relative}.desktop-nav a:after,.header-booking:after,.booking-direct a:after,.site-footer div a:after{content:"";transform-origin:100%;background:currentColor;width:100%;height:1px;transition:transform .22s;position:absolute;bottom:-5px;left:0;transform:scaleX(0)}.desktop-nav a:hover:after,.header-booking:hover:after,.booking-direct a:hover:after,.site-footer div a:hover:after{transform-origin:0;transform:scaleX(1)}.header-booking{letter-spacing:.13em;text-transform:uppercase;justify-self:end;font-size:.62rem;font-weight:700}.header-booking span{margin-left:8px}.mobile-menu{display:none}.cover,.image-chapter,.profile{min-height:100svh;position:relative;overflow:hidden}.full-bleed{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover .full-bleed{filter:saturate(.54)contrast(1.08);object-position:center 31%}.cover-shade{background:linear-gradient(90deg,#0000002e,#0000 52%,#0000002e),linear-gradient(#00000061,#0000 27% 62%,#000000bf);position:absolute;inset:0}.cover-meta,.chapter-meta{letter-spacing:.15em;text-transform:uppercase;z-index:2;justify-content:space-between;font-size:.59rem;font-weight:700;display:flex;position:absolute}.cover-meta--top{top:104px;left:3vw;right:3vw}.cover h1,.image-chapter h2{font-family:var(--serif);letter-spacing:-.085em;pointer-events:none;z-index:2;margin:0;font-weight:400;line-height:.72;position:absolute;inset:0}.cover h1{font-size:clamp(8rem,18vw,19rem)}.cover h1 span{position:absolute}.cover h1 span:first-child{top:20%;left:1.8vw}.cover h1 span:last-child{font-style:italic;bottom:12%;right:2.7vw}.cover-bottom{z-index:3;justify-content:space-between;align-items:end;display:flex;position:absolute;bottom:28px;left:3vw;right:3vw}.cover-bottom p{font-family:var(--serif);margin:0;font-size:clamp(1.35rem,2vw,2.2rem);line-height:1}.cover-bottom a{letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #ffffffb3;align-items:center;gap:70px;padding-bottom:10px;font-size:.61rem;font-weight:700;display:flex}.cover-rail{letter-spacing:.18em;text-transform:uppercase;transform-origin:0 0;z-index:3;margin:0;font-size:.56rem;font-weight:700;position:absolute;top:50%;left:18px;transform:rotate(-90deg)translate(-50%)}.interlude{background:var(--ivory);color:var(--ink);grid-template-columns:15% 1fr;gap:5vw;min-height:92svh;padding:10vw 3vw 8vw;display:grid}.interlude>p,.profile-heading>p,.worldwide-heading>p,.booking-heading>p:first-child{letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.59rem;font-weight:700}.interlude h2{font-family:var(--serif);letter-spacing:-.075em;grid-column:2;max-width:11ch;margin:0;font-size:clamp(4.5rem,9.4vw,10rem);font-weight:400;line-height:.79}.interlude h2 span,.interlude h2 em{display:block}.interlude h2 span{margin-left:8%}.interlude h2 em{color:var(--red);margin-left:18%;font-weight:400}.interlude>div{grid-column:2;justify-content:flex-end;align-self:end;gap:3rem;display:flex}.interlude>div p{color:#5a5751;max-width:31rem;margin:0;font-size:.83rem;line-height:1.75}.interlude>div a{border-bottom:1px solid var(--ink);letter-spacing:.13em;text-transform:uppercase;align-self:end;padding-bottom:8px;font-size:.61rem;font-weight:700}.image-chapter{color:#fff;scroll-margin-top:0}.image-chapter .full-bleed{filter:saturate(.75)contrast(1.05);transition:filter .7s,transform 1.2s cubic-bezier(.2,.7,.2,1);transform:scale(1.005)}.image-chapter:hover .full-bleed{filter:saturate()contrast(1.02);transform:scale(1.025)}.image-chapter--beauty .full-bleed{object-position:50% 39%}.image-chapter--wild .full-bleed{object-position:50% 32%}.image-chapter--swim .full-bleed{object-position:50% 26%}.image-chapter--golden .full-bleed{object-position:50% 24%}.chapter-shade{background:linear-gradient(90deg,#00000042,#0000 45%,#00000014),linear-gradient(#0000006b,#0000 31% 66%,#0009);position:absolute;inset:0}.image-chapter--golden .chapter-shade{background:linear-gradient(90deg,#00000054,#0000 52%),linear-gradient(#00000059,#0000 32% 65%,#000000ad)}.chapter-meta{top:96px;left:3vw;right:3vw}.image-chapter h2{text-shadow:0 2px 30px #0000001f;font-size:clamp(8rem,19vw,20rem)}.image-chapter h2 span{position:absolute}.image-chapter h2 span:first-child{top:18%;left:1.8vw}.image-chapter h2 span:last-child{font-style:italic;bottom:8%;right:2.4vw}.image-chapter--wild h2 span:first-child,.image-chapter--golden h2 span:first-child{color:#0000;-webkit-text-stroke:2px #ffffffe6}.chapter-note{font-family:var(--serif);z-index:3;max-width:17rem;margin:0;font-size:clamp(1.1rem,1.7vw,1.8rem);line-height:1.08;position:absolute;bottom:31px;left:3vw}.chapter-arrow{z-index:3;font-size:2.2rem;position:absolute;bottom:25px;right:3vw}.profile{min-height:120svh}.profile .full-bleed{filter:grayscale()contrast(1.1);object-position:48% 40%}.profile-shade{background:linear-gradient(90deg,#00000038,#000c 58%,#000000f0),linear-gradient(#0000001f,#0000008c);position:absolute;inset:0}.profile-ghost{color:#0000;font-family:var(--serif);letter-spacing:-.08em;-webkit-text-stroke:1px #ffffff4d;z-index:2;margin:0;font-size:clamp(8rem,19vw,20rem);font-style:italic;line-height:.7;position:absolute;bottom:-.06em;left:-.02em}.profile-content{z-index:3;flex-direction:column;width:54%;min-height:120svh;margin-left:auto;padding:13vh 4vw 6vh;display:flex;position:relative}.profile-heading h2{font-family:var(--serif);letter-spacing:-.075em;margin:8vh 0 2.3vh;font-size:clamp(5.4rem,9.5vw,10rem);font-style:italic;font-weight:400;line-height:.82}.profile-heading>span{color:#aaa7a0;letter-spacing:.13em;text-transform:uppercase;font-size:.59rem;font-weight:700}.spec-grid{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:9vh 0 0;display:grid}.spec-grid div{border-bottom:1px solid var(--line);min-width:0;padding:20px 7px 22px 0}.spec-grid dt{color:#96928b;letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px;font-size:.55rem;font-weight:700}.spec-grid dd{font-family:var(--serif);margin:0;font-size:clamp(1.35rem,2vw,2rem)}.profile-actions{justify-content:space-between;align-items:end;gap:3rem;margin-top:auto;padding-bottom:9vw;display:flex}.profile-actions p{color:#aaa7a0;font-family:var(--serif);max-width:19rem;margin:0;font-size:clamp(1.1rem,1.7vw,1.7rem);line-height:1.18}.button{cursor:pointer;letter-spacing:.13em;text-transform:uppercase;border:0;justify-content:space-between;align-items:center;gap:42px;min-height:56px;padding:0 20px;font-size:.62rem;font-weight:700;transition:background .2s,color .2s,transform .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--light{background:var(--ivory);color:var(--ink);min-width:220px}.button--light:hover{background:#fff}.worldwide{background:var(--red);color:#fff;grid-template-columns:1fr 1fr;gap:8vw;min-height:100svh;padding:9vw 3vw 7vw;display:grid}.worldwide-heading{flex-direction:column;display:flex}.worldwide-heading h2{font-family:var(--serif);letter-spacing:-.08em;margin:8vh 0 0;font-size:clamp(5.2rem,10vw,10rem);font-weight:400;line-height:.75}.worldwide-heading h2 em{margin-left:8%;font-weight:400;display:block}.worldwide-heading>span{letter-spacing:.14em;text-transform:uppercase;margin-top:auto;font-size:.59rem;font-weight:700}.city-list{border-top:1px solid #ffffff73;margin:0;padding:0;list-style:none}.city-list li{border-bottom:1px solid #ffffff73;grid-template-columns:50px 1fr auto;align-items:center;min-height:13vh;transition:background .22s,padding .22s;display:grid}.city-list li:hover{color:var(--red);background:#fff;padding:0 16px}.city-list li span{letter-spacing:.13em;text-transform:uppercase;font-size:.55rem;font-weight:700}.city-list strong{font-family:var(--serif);letter-spacing:-.05em;font-size:clamp(2rem,3.8vw,4rem);font-style:italic;font-weight:400}.booking{background:var(--ink);grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:8vw;min-height:100svh;padding:9vw 3vw 8vw;scroll-margin-top:0;display:grid}.booking-heading h2{font-family:var(--serif);letter-spacing:-.08em;margin:8vh 0 5vh;font-size:clamp(5.2rem,9.5vw,10rem);font-weight:400;line-height:.72}.booking-heading h2 em{color:var(--red);margin-left:8%;font-weight:400;display:block}.booking-heading>p:not(:first-child){color:#a19e97;max-width:29rem;margin:0;font-size:.8rem;line-height:1.75}.booking-direct{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:8vh;padding-top:18px;display:flex}.booking-direct span{color:#7a7770;letter-spacing:.13em;text-transform:uppercase;font-size:.55rem;font-weight:700}.booking-direct a{font-family:var(--serif);width:fit-content;font-size:clamp(1.2rem,2vw,1.9rem);font-style:italic}.booking-form{border:1px solid var(--line);background:#131313;align-self:center;padding:clamp(28px,4vw,58px)}.booking-form label{border-bottom:1px solid var(--line);padding-bottom:12px;display:block}.booking-form>label,.booking-form .field-row{margin-bottom:27px}.field-row{grid-template-columns:1fr 1fr;gap:28px;display:grid}.booking-form label>span{color:#7a7770;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px;font-size:.55rem;font-weight:700;display:block}.booking-form input,.booking-form select,.booking-form textarea{color:var(--ivory);font-family:var(--serif);resize:vertical;background:0 0;border:0;border-radius:0;outline:0;width:100%;padding:3px 0;font-size:1.2rem}.booking-form select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#777 50%),linear-gradient(135deg,#777 50%,#0000 50%);background-position:calc(100% - 9px),calc(100% - 4px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}.booking-form select option{background:#151515}.booking-form input::placeholder,.booking-form textarea::placeholder{color:#5e5b56}.button--red{background:var(--red);color:#fff;min-width:225px;margin-top:8px}.button--red:hover{background:#f04338}.form-note{color:#6d6a65;margin:17px 0 0;font-size:.63rem;line-height:1.5}.site-footer{background:var(--ivory);color:var(--ink);grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:3vw;padding:6vw 3vw 3vw;display:grid}.footer-mark{font-family:var(--serif);letter-spacing:-.085em;font-size:clamp(5rem,11vw,11rem);font-style:italic;line-height:.58}.site-footer p,.site-footer>div{letter-spacing:.13em;text-transform:uppercase;font-size:.58rem;font-weight:700}.site-footer p{margin:0}.site-footer>div{flex-direction:column;gap:12px;display:flex}@media (width<=980px){.site-header{grid-template-columns:1fr auto;padding:0 22px}.desktop-nav,.header-booking{display:none}.mobile-menu{mix-blend-mode:normal;justify-self:end;display:block;position:relative}.mobile-menu summary{cursor:pointer;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;font-weight:700;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{background:var(--ink);border:1px solid #ffffff40;flex-direction:column;min-width:230px;padding:14px 22px;display:flex;position:absolute;top:30px;right:0}.mobile-menu nav a{font-family:var(--serif);border-bottom:1px solid #fff3;padding:14px 0;font-size:1.5rem}.profile-content{width:64%}.spec-grid{grid-template-columns:repeat(2,1fr)}.worldwide{grid-template-columns:.9fr 1.1fr;gap:5vw}.booking{grid-template-columns:1fr 1fr;gap:5vw}}@media (width<=720px){.cover-meta--top,.chapter-meta{top:94px;left:20px;right:20px}.cover-meta--top span:last-child,.chapter-meta span:last-child{display:none}.cover .full-bleed{object-position:55% 28%}.cover h1,.image-chapter h2{font-size:clamp(6.5rem,36vw,10rem);line-height:.7}.cover h1 span:first-child,.image-chapter h2 span:first-child{top:22%;left:16px}.cover h1 span:last-child,.image-chapter h2 span:last-child{bottom:13%;right:18px}.cover-bottom{bottom:24px;left:20px;right:20px}.cover-bottom p{font-size:1.35rem}.cover-bottom a{gap:22px}.cover-rail{display:none}.interlude{min-height:100svh;padding:100px 20px 70px;display:block}.interlude h2{margin-top:70px;font-size:4.1rem}.interlude h2 span,.interlude h2 em{margin-left:0}.interlude>div{margin-top:70px;display:block}.interlude>div a{margin-top:28px;display:inline-block}.image-chapter--beauty .full-bleed{object-position:51% 50%}.image-chapter--wild .full-bleed{object-position:50% 35%}.image-chapter--swim .full-bleed{object-position:50% 31%}.image-chapter--golden .full-bleed{object-position:50% 29%}.image-chapter--wild h2 span:first-child,.image-chapter--golden h2 span:first-child{-webkit-text-stroke-width:1px}.chapter-note{max-width:13rem;font-size:1.05rem;bottom:28px;left:20px}.chapter-arrow{bottom:24px;right:20px}.profile{min-height:132svh}.profile .full-bleed{object-position:46% center}.profile-shade{background:linear-gradient(#0000001a,#000000ad 36%,#000000f7 73%)}.profile-content{width:100%;min-height:132svh;padding:55vh 20px 45px}.profile-heading h2{margin:36px 0 18px;font-size:5rem}.spec-grid{margin-top:50px}.profile-actions{flex-direction:column;align-items:stretch;margin-top:50px;padding-bottom:0}.button--light{width:100%}.profile-ghost{font-size:7rem}.worldwide{min-height:100svh;padding:90px 20px 70px;display:block}.worldwide-heading h2{margin:60px 0;font-size:5.2rem}.worldwide-heading h2 em{margin-left:0}.worldwide-heading>span{margin:0 0 45px}.city-list li{grid-template-columns:38px 1fr;min-height:82px}.city-list li span:last-child{display:none}.city-list strong{font-size:2.6rem}.booking{padding:90px 20px 80px;display:block}.booking-heading h2{margin:60px 0 36px;font-size:5rem}.booking-heading h2 em{margin-left:0}.booking-direct{margin:55px 0}.booking-form{padding:28px 20px}.field-row{display:block}.field-row label+label{margin-top:27px}.button--red{width:100%}.site-footer{grid-template-columns:1fr 1fr;align-items:start;gap:44px;padding:70px 20px 36px}.footer-mark{grid-column:1/-1;font-size:5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}



:root {
  color-scheme: dark;
}

html.is-loading,
html.is-loading body {
  overflow: hidden;
}

.portfolio-experience {
  isolation: isolate;
  overflow-x: hidden;
}

.loading-screen {
  display: none;
}

.js .loading-screen {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  background: #090909;
  color: #f1eee7;
  pointer-events: auto;
  animation: loader-failsafe 0.55s 2.25s both;
}

.js .loading-screen[hidden] {
  display: none;
}

.js.is-ready .loading-screen {
  pointer-events: none;
}

.loading-screen.is-complete {
  animation: loader-exit 0.54s cubic-bezier(0.7, 0, 0.2, 1) both;
}

.loading-screen__portrait,
.loading-screen__art {
  position: relative;
  overflow: hidden;
}

.loading-screen__portrait img,
.loading-screen__art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.62) contrast(1.12);
  animation: loader-image 2.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.loading-screen__portrait img {
  object-position: 53% 30%;
}

.loading-screen__art img {
  object-position: 51% 48%;
  animation-direction: reverse;
}

.loading-screen__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(9 9 9 / 28%), transparent 36% 64%, rgb(9 9 9 / 44%)),
    linear-gradient(180deg, rgb(9 9 9 / 24%), transparent 45%, rgb(9 9 9 / 70%));
}

.loading-screen__meta {
  position: absolute;
  z-index: 3;
  top: 30px;
  right: 3vw;
  left: 3vw;
  display: flex;
  justify-content: space-between;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.loading-screen__title {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: min(94vw, 1120px);
  font-family: var(--serif);
  font-size: clamp(5rem, 13vw, 13rem);
  font-weight: 400;
  letter-spacing: -0.085em;
  line-height: 0.68;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.loading-screen__title span,
.loading-screen__title em {
  display: block;
}

.loading-screen__title em {
  margin-left: 31%;
  color: transparent;
  font-weight: 400;
  -webkit-text-stroke: 1px rgb(241 238 231 / 85%);
}

.loading-screen__quote {
  position: absolute;
  z-index: 4;
  top: 69%;
  left: 50%;
  display: flex;
  align-items: baseline;
  gap: 0.7em;
  width: min(88vw, 860px);
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(0.92rem, 1.6vw, 1.45rem);
  letter-spacing: 0.01em;
  transform: translateX(-50%);
  animation: loader-quote-in 0.9s 0.38s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.loading-screen__quote strong {
  color: var(--red);
  font-family: var(--sans);
  font-size: 0.68em;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.loading-screen__quote span {
  font-style: italic;
}

.loading-screen__shards {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
}

.loading-screen__shards i {
  position: absolute;
  top: -15%;
  width: 1px;
  height: 130%;
  background: rgb(255 255 255 / 35%);
  transform: rotate(9deg);
  transform-origin: center;
}

.loading-screen__shards i:nth-child(1) {
  left: 26%;
}

.loading-screen__shards i:nth-child(2) {
  left: 50%;
  transform: rotate(-5deg);
}

.loading-screen__shards i:nth-child(3) {
  left: 74%;
  transform: rotate(13deg);
}

.loading-screen__progress {
  position: absolute;
  z-index: 4;
  right: 3vw;
  bottom: 28px;
  left: 3vw;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: end;
  gap: 24px;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.loading-screen__progress > div {
  height: 1px;
  overflow: hidden;
  background: rgb(255 255 255 / 28%);
}

.loading-screen__progress > div > i {
  display: block;
  width: 100%;
  height: 100%;
  background: #f1eee7;
  transform: scaleX(var(--loader-progress, 0));
  transform-origin: left;
  will-change: transform;
}

.loading-screen__progress strong {
  display: flex;
  align-items: baseline;
  min-width: 9rem;
  font-family: var(--serif);
  font-size: clamp(2.8rem, 6vw, 6rem);
  font-weight: 400;
  letter-spacing: -0.07em;
  line-height: 0.72;
}

.loading-screen__progress strong em {
  margin-left: 0.22em;
  color: rgb(241 238 231 / 40%);
  font-size: 0.36em;
  font-weight: 400;
  letter-spacing: -0.03em;
}

.loading-screen__progress strong > span {
  min-width: 1.42em;
}

.experience-grain {
  position: fixed;
  z-index: 55;
  inset: -45%;
  width: 190%;
  height: 190%;
  opacity: 0.035;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  animation: grain-shift 0.22s steps(2) infinite;
}

.pointer-aura {
  position: fixed;
  z-index: 54;
  top: 0;
  left: 0;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  opacity: 0.22;
  background: radial-gradient(circle, rgb(224 53 43 / 40%), transparent 68%);
  mix-blend-mode: screen;
  pointer-events: none;
  will-change: transform;
}

.soundtrack-control {
  position: fixed;
  z-index: 70;
  right: 28px;
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgb(255 255 255 / 36%);
  border-radius: 999px;
  background: rgb(9 9 9 / 62%);
  color: #fff;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(14px);
  transition:
    background 0.2s,
    border-color 0.2s,
    transform 0.2s;
}

.soundtrack-control:hover {
  border-color: #fff;
  background: rgb(9 9 9 / 82%);
  transform: translateY(-2px);
}

.soundtrack-control:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}

.sound-bars {
  display: flex;
  align-items: center;
  gap: 2px;
  height: 14px;
}

.sound-bars i {
  display: block;
  width: 2px;
  height: 5px;
  background: currentColor;
  transform-origin: center;
}

.soundtrack-control[data-playing="true"] .sound-bars i {
  animation: sound-bar 0.9s ease-in-out infinite alternate;
}

.soundtrack-control[data-playing="true"] .sound-bars i:nth-child(2) {
  animation-delay: -0.45s;
}

.soundtrack-control[data-playing="true"] .sound-bars i:nth-child(3) {
  animation-delay: -0.2s;
}

.soundtrack-control[data-playing="true"] .sound-bars i:nth-child(4) {
  animation-delay: -0.65s;
}

.scroll-progress {
  position: fixed;
  z-index: 68;
  top: 90px;
  right: 14px;
  bottom: 84px;
  width: 1px;
  overflow: hidden;
  background: rgb(255 255 255 / 18%);
  pointer-events: none;
}

.scroll-progress > span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--red);
  transform: scaleY(var(--scroll-progress, 0));
  transform-origin: top;
  will-change: transform;
}

.site-header {
  transition:
    background 0.25s,
    backdrop-filter 0.25s;
}

.site-header.is-scrolled {
  background: rgb(9 9 9 / 10%);
  backdrop-filter: blur(8px);
}

.art-intro {
  min-height: 96svh;
  padding: 10vw 3vw 8vw;
  background: var(--ivory);
  color: var(--ink);
}

.art-intro > p {
  margin: 0 0 10vh;
  font-size: 0.59rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.art-intro h2 {
  max-width: 9ch;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(5.2rem, 13vw, 13rem);
  font-weight: 400;
  letter-spacing: -0.085em;
  line-height: 0.66;
}

.art-intro h2 span,
.art-intro h2 em {
  display: block;
}

.art-intro h2 span {
  margin-left: 16%;
}

.art-intro h2 em {
  margin-left: 32%;
  color: var(--red);
  font-weight: 400;
}

.art-intro > div {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 5vw;
  margin-top: 9vh;
}

.art-intro > div p {
  max-width: 36rem;
  margin: 0;
  color: #5a5751;
  font-size: 0.83rem;
  line-height: 1.75;
}

.art-intro__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 22px;
}

.art-intro__actions a {
  padding-bottom: 7px;
  border-bottom: 1px solid var(--ink);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.art-chapter {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #111;
  color: #fff;
}

.art-chapter .full-bleed {
  object-position: center;
  filter: saturate(0.86) contrast(1.05);
  transform: scale(1.005);
  transition:
    transform 1.25s cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 0.7s;
}

.art-chapter:hover .full-bleed {
  filter: saturate(1) contrast(1.02);
  transform: scale(1.03);
}

.art-chapter--pencil-stencil .full-bleed,
.art-chapter--physical-stencil .full-bleed {
  object-position: center 40%;
}

.art-chapter--biomorphic .full-bleed {
  object-position: center 44%;
}

.art-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(0 0 0 / 56%), transparent 48%, rgb(0 0 0 / 14%)),
    linear-gradient(180deg, rgb(0 0 0 / 56%), transparent 32% 65%, rgb(0 0 0 / 76%));
}

.art-meta {
  position: absolute;
  z-index: 2;
  top: 94px;
  right: 3vw;
  left: 3vw;
  display: flex;
  justify-content: space-between;
  font-size: 0.59rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.art-title {
  position: absolute;
  z-index: 2;
  inset: 0;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(8rem, 18vw, 19rem);
  font-weight: 400;
  letter-spacing: -0.085em;
  line-height: 0.7;
  text-shadow: 0 2px 34px rgb(0 0 0 / 24%);
  pointer-events: none;
}

.art-title span,
.art-title em {
  position: absolute;
}

.art-title span {
  top: 19%;
  left: 1.8vw;
}

.art-title em {
  right: 2.5vw;
  bottom: 9%;
  color: transparent;
  font-weight: 400;
  -webkit-text-stroke: 1.5px rgb(255 255 255 / 92%);
}

.art-note {
  position: absolute;
  z-index: 3;
  bottom: 31px;
  left: 3vw;
  max-width: 18rem;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.1rem, 1.7vw, 1.8rem);
  line-height: 1.08;
}

.art-mark {
  position: absolute;
  z-index: 3;
  right: 3vw;
  bottom: 30px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.kinetic-reel {
  position: relative;
  overflow: hidden;
  min-height: 48svh;
  padding: 8vh 0 4vh;
  background: var(--red);
  color: #fff;
}

.kinetic-reel__track {
  display: flex;
  align-items: baseline;
  gap: 2vw;
  width: max-content;
  font-family: var(--serif);
  font-size: clamp(5rem, 13vw, 13rem);
  letter-spacing: -0.075em;
  line-height: 0.78;
  animation: kinetic-track 26s linear infinite;
}

.kinetic-reel__track em {
  color: transparent;
  font-weight: 400;
  -webkit-text-stroke: 1px rgb(255 255 255 / 78%);
}

.kinetic-reel__track i {
  font-family: var(--sans);
  font-size: 0.24em;
  font-style: normal;
}

.kinetic-reel > p {
  position: absolute;
  right: 3vw;
  bottom: 26px;
  left: 3vw;
  margin: 0;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.js .reveal {
  opacity: 0;
  transform: translateY(42px);
  transition:
    opacity 0.8s ease,
    transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.js .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes loader-image {
  from {
    transform: scale(1.08);
  }
  to {
    transform: scale(1.01);
  }
}

@keyframes loader-quote-in {
  from {
    opacity: 0;
    letter-spacing: 0.08em;
    transform: translate3d(-50%, 20px, 0);
  }
  to {
    opacity: 1;
    letter-spacing: 0.01em;
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes loader-exit {
  0% {
    opacity: 1;
    visibility: visible;
    clip-path: inset(0);
  }
  100% {
    opacity: 0;
    visibility: hidden;
    clip-path: inset(0 0 100% 0);
    pointer-events: none;
  }
}

@keyframes loader-failsafe {
  from {
    opacity: 1;
    visibility: visible;
  }
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@keyframes grain-shift {
  0% {
    transform: translate3d(-2%, -2%, 0);
  }
  25% {
    transform: translate3d(2%, -1%, 0);
  }
  50% {
    transform: translate3d(-1%, 2%, 0);
  }
  75% {
    transform: translate3d(1%, 1%, 0);
  }
  100% {
    transform: translate3d(0, -2%, 0);
  }
}

@keyframes sound-bar {
  from {
    transform: scaleY(0.65);
  }
  to {
    transform: scaleY(2.5);
  }
}

@keyframes kinetic-track {
  to {
    transform: translateX(-50%);
  }
}

.image-chapter--portrait {
  --chapter-image: none;
  background: #0b0b0b;
}

.image-chapter--portrait::before {
  position: absolute;
  z-index: 0;
  inset: -5%;
  content: "";
  background: var(--chapter-image) center / cover no-repeat;
  filter: blur(28px) brightness(0.5) saturate(0.8);
  transform: scale(1.08);
}

.image-chapter--portrait .full-bleed {
  z-index: 1;
  object-fit: contain;
  object-position: center;
}

.image-chapter--portrait .chapter-shade {
  z-index: 1;
}

.image-chapter--pink {
  --chapter-image: url("./images/lana-bajc-pink-authority.jpg");
  background: #c32868;
}

.image-chapter--noir {
  --chapter-image: url("./images/lana-bajc-midnight-form.jpg");
  background: #080b0d;
}

.image-chapter--blue {
  --chapter-image: url("./images/lana-bajc-blue-silence.jpg");
  background: #c9d0d8;
}

@media (max-width: 720px) {
  .site-header {
    color: #fff;
    text-shadow: 0 1px 16px rgb(0 0 0 / 54%);
    mix-blend-mode: normal;
    background: linear-gradient(180deg, rgb(0 0 0 / 30%), transparent);
  }

  .js .loading-screen {
    grid-template-columns: 1fr;
  }

  .loading-screen__art {
    display: none;
  }

  .loading-screen__title {
    width: calc(100% - 40px);
    font-size: clamp(4rem, 22vw, 7rem);
  }

  .loading-screen__title em {
    margin-top: 0.12em;
    margin-left: 9%;
  }

  .loading-screen__quote {
    top: 70%;
    flex-direction: column;
    gap: 0.35em;
    width: calc(100% - 40px);
    font-size: 1.05rem;
  }

  .loading-screen__progress {
    right: 20px;
    bottom: 22px;
    left: 20px;
    grid-template-columns: 1fr auto;
  }

  .loading-screen__progress > span {
    display: none;
  }

  .loading-screen__progress strong {
    min-width: 6.8rem;
  }

  .soundtrack-control {
    top: 82px;
    right: 18px;
    bottom: auto;
  }

  .scroll-progress {
    display: none;
  }

  .pointer-aura {
    display: none;
  }

  .image-chapter--portrait .full-bleed {
    object-fit: cover;
  }

  .art-intro {
    min-height: 100svh;
    padding: 100px 20px 70px;
  }

  .art-intro > p {
    margin-bottom: 66px;
  }

  .art-intro h2 {
    font-size: 5rem;
  }

  .art-intro h2 span,
  .art-intro h2 em {
    margin-left: 0;
  }

  .art-intro > div {
    display: block;
    margin-top: 72px;
  }

  .art-intro__actions {
    justify-content: flex-start;
    margin-top: 30px;
  }

  .art-meta {
    top: 94px;
    right: 20px;
    left: 20px;
  }

  .art-meta span:last-child {
    display: none;
  }

  .art-title {
    font-size: clamp(6.2rem, 32vw, 9rem);
  }

  .art-title span {
    top: 23%;
    left: 16px;
  }

  .art-title em {
    right: 18px;
    bottom: 16%;
    -webkit-text-stroke-width: 1px;
  }

  .art-note {
    bottom: 28px;
    left: 20px;
    max-width: 14rem;
    font-size: 1.05rem;
  }

  .art-mark {
    right: 20px;
    bottom: 28px;
  }

  .kinetic-reel {
    min-height: 36svh;
    padding-top: 9vh;
  }

  .kinetic-reel__track {
    font-size: 6rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-screen,
  .loading-screen *,
  .experience-grain,
  .kinetic-reel__track,
  .sound-bars i {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .pointer-aura {
    display: none;
  }

  .js .reveal {
    opacity: 1;
    transform: none;
  }
}

/* 2026 editorial chapters and cinematic motion */

.image-chapter--future-bloom .full-bleed {
  object-position: 50% 43%;
}

.image-chapter--soft-archive .full-bleed {
  object-position: 50% 22%;
}

.image-chapter--noir-room .full-bleed {
  object-position: 50% 43%;
}

.image-chapter--ivory-form .full-bleed {
  object-position: 54% 42%;
}

.image-chapter--blue-hour .full-bleed {
  object-position: 42% 42%;
}

.image-chapter--floral-icon .full-bleed {
  object-position: 50% 42%;
}

.image-chapter--cobalt-motion .full-bleed {
  object-position: 50% 14%;
}

.image-chapter--dark-garden .full-bleed {
  object-position: 50% 15%;
}

.image-chapter--chrome-signal .full-bleed {
  object-position: 50% 13%;
}

.image-chapter--black-frame .full-bleed {
  object-position: 50% 13%;
}

.image-chapter--sand-sculpture .full-bleed {
  object-position: 52% 16%;
}

.image-chapter--electric-motion .full-bleed {
  object-position: 50% 15%;
}

.image-chapter--neon-future .full-bleed {
  object-position: 50% 12%;
}

.image-chapter--new-editorial .full-bleed {
  object-position: var(--chapter-position-desktop, 50% 24%);
}

.image-chapter--new-editorial .chapter-shade {
  background:
    linear-gradient(90deg, rgb(0 0 0 / 52%), transparent 52%, rgb(0 0 0 / 18%)),
    linear-gradient(180deg, rgb(0 0 0 / 40%), transparent 34% 62%, rgb(0 0 0 / 78%));
}

.image-chapter--new-editorial h2 {
  font-size: clamp(5.2rem, 12.5vw, 14rem);
}

.image-chapter--new-editorial h2 span:first-child {
  color: transparent;
  -webkit-text-stroke: 1.35px rgb(255 255 255 / 92%);
}

.image-chapter--new-editorial h2 span:last-child {
  color: var(--chapter-accent, #fff);
}

.image-chapter--future-bloom .chapter-shade {
  background:
    linear-gradient(90deg, rgb(5 7 18 / 58%), transparent 52%, rgb(31 7 50 / 28%)),
    linear-gradient(180deg, rgb(0 0 0 / 44%), transparent 34% 64%, rgb(0 0 0 / 74%));
}

.image-chapter--soft-archive .chapter-shade {
  background:
    linear-gradient(90deg, rgb(47 21 14 / 44%), transparent 48%, rgb(35 15 10 / 18%)),
    linear-gradient(180deg, rgb(24 10 7 / 42%), transparent 35% 64%, rgb(32 14 9 / 76%));
}

.image-chapter--noir-room .chapter-shade,
.image-chapter--blue-hour .chapter-shade {
  background:
    linear-gradient(90deg, rgb(0 0 0 / 54%), transparent 54%, rgb(0 0 0 / 24%)),
    linear-gradient(180deg, rgb(0 0 0 / 44%), transparent 32% 64%, rgb(0 0 0 / 82%));
}

.image-chapter--ivory-form .chapter-shade {
  background:
    linear-gradient(90deg, rgb(0 0 0 / 30%), transparent 55%, rgb(0 0 0 / 8%)),
    linear-gradient(180deg, rgb(0 0 0 / 34%), transparent 34% 62%, rgb(0 0 0 / 68%));
}

.image-chapter--floral-icon .chapter-shade {
  background:
    linear-gradient(90deg, rgb(28 28 13 / 48%), transparent 52%, rgb(50 38 23 / 18%)),
    linear-gradient(180deg, rgb(15 15 8 / 36%), transparent 34% 64%, rgb(19 16 9 / 74%));
}

.image-chapter--cobalt-motion .chapter-shade {
  background:
    linear-gradient(90deg, rgb(2 10 35 / 56%), transparent 52%, rgb(61 31 3 / 20%)),
    linear-gradient(180deg, rgb(0 0 0 / 40%), transparent 34% 64%, rgb(0 0 0 / 76%));
}

.image-chapter--dark-garden .chapter-shade {
  background:
    linear-gradient(90deg, rgb(0 0 0 / 54%), transparent 54%, rgb(22 25 19 / 24%)),
    linear-gradient(180deg, rgb(0 0 0 / 42%), transparent 34% 61%, rgb(0 0 0 / 80%));
}

.image-chapter--black-frame .chapter-shade {
  background:
    linear-gradient(90deg, rgb(0 0 0 / 62%), transparent 56%, rgb(0 0 0 / 28%)),
    linear-gradient(180deg, rgb(0 0 0 / 46%), transparent 32% 64%, rgb(0 0 0 / 76%));
}

.image-chapter--chrome-signal .chapter-shade {
  background:
    linear-gradient(90deg, rgb(6 13 22 / 50%), transparent 50%, rgb(18 25 34 / 16%)),
    linear-gradient(180deg, rgb(0 0 0 / 34%), transparent 33% 63%, rgb(1 6 12 / 72%));
}

.image-chapter--sand-sculpture .chapter-shade {
  background:
    linear-gradient(90deg, rgb(53 31 17 / 49%), transparent 54%, rgb(55 33 19 / 14%)),
    linear-gradient(180deg, rgb(29 15 7 / 35%), transparent 34% 64%, rgb(35 19 9 / 72%));
}

.image-chapter--electric-motion .chapter-shade {
  background:
    linear-gradient(90deg, rgb(5 12 35 / 54%), transparent 50%, rgb(14 27 63 / 18%)),
    linear-gradient(180deg, rgb(0 0 0 / 38%), transparent 34% 64%, rgb(1 4 14 / 76%));
}

.image-chapter--neon-future .chapter-shade {
  background:
    linear-gradient(90deg, rgb(8 2 23 / 56%), transparent 50%, rgb(5 20 40 / 20%)),
    linear-gradient(180deg, rgb(0 0 0 / 40%), transparent 33% 63%, rgb(2 3 14 / 78%));
}

.image-chapter--cinematic h2 {
  font-size: clamp(7rem, 15.5vw, 17rem);
}

.image-chapter--future-bloom h2 span:last-child {
  color: #d9a7ff;
}

.image-chapter--soft-archive h2 span:first-child,
.image-chapter--ivory-form h2 span:first-child,
.image-chapter--blue-hour h2 span:first-child,
.image-chapter--floral-icon h2 span:first-child,
.image-chapter--dark-garden h2 span:first-child,
.image-chapter--black-frame h2 span:first-child,
.image-chapter--sand-sculpture h2 span:first-child {
  color: transparent;
  -webkit-text-stroke: 1.5px rgb(255 255 255 / 90%);
}

.image-chapter--cobalt-motion h2 span:last-child {
  color: #5d85ff;
}

.image-chapter--chrome-signal h2 span:last-child,
.image-chapter--neon-future h2 span:last-child {
  color: #dcebf5;
}

.image-chapter--electric-motion h2 span:last-child {
  color: #497cff;
}

.image-chapter--cinematic::before {
  position: absolute;
  z-index: 4;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  background: linear-gradient(90deg, var(--red), #fff 42%, transparent 78%);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}

.image-chapter--cinematic.is-inview::before {
  animation: chapter-rule-in 1.1s 0.16s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.image-chapter::after,
.art-chapter::after {
  position: absolute;
  z-index: 2;
  inset: -28% -45%;
  content: "";
  opacity: 0;
  background: linear-gradient(
    106deg,
    transparent 39%,
    rgb(255 255 255 / 4%) 45%,
    rgb(255 255 255 / 36%) 50%,
    rgb(224 53 43 / 13%) 53%,
    transparent 61%
  );
  mix-blend-mode: screen;
  transform: translate3d(-56%, 0, 0) skewX(-8deg);
  pointer-events: none;
}

.image-chapter.is-inview::after,
.art-chapter.is-inview::after {
  animation: chapter-light-pass 1.65s 0.28s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.js.motion-ready .image-chapter--cinematic .full-bleed {
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  transition:
    opacity 0.85s ease,
    transform 1.55s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.75s ease,
    clip-path 1.15s cubic-bezier(0.76, 0, 0.24, 1);
}

.js.motion-ready .image-chapter--cinematic.is-inview .full-bleed {
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
}

.image-chapter h2,
.art-title {
  transform: translate3d(0, var(--title-drift, 0), 0);
  will-change: transform;
}

.chapter-arrow {
  transition:
    transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 0.6s 0.22s ease;
}

.is-inview .chapter-arrow {
  animation: arrow-float 2.4s 1.15s ease-in-out infinite;
}

@keyframes chapter-rule-in {
  to {
    transform: scaleX(1);
  }
}

@keyframes chapter-light-pass {
  0% {
    opacity: 0;
    transform: translate3d(-56%, 0, 0) skewX(-8deg);
  }
  16% {
    opacity: 0.7;
  }
  72% {
    opacity: 0.48;
  }
  100% {
    opacity: 0;
    transform: translate3d(58%, 0, 0) skewX(-8deg);
  }
}

@keyframes arrow-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(7px, 7px, 0);
  }
}

@media (max-width: 720px) {
  .image-chapter--cinematic h2 {
    font-size: clamp(4.2rem, 18vw, 6.4rem);
  }

  .image-chapter--new-editorial h2 {
    font-size: clamp(3.1rem, 15vw, 5.2rem);
  }

  .image-chapter--new-editorial .full-bleed {
    object-position: var(--chapter-position-mobile, 50% 50%);
  }

  .image-chapter--future-bloom .full-bleed {
    object-position: 33% 46%;
  }

  .image-chapter--soft-archive .full-bleed {
    object-position: 50% 45%;
  }

  .image-chapter--noir-room .full-bleed {
    object-position: 47% 48%;
  }

  .image-chapter--ivory-form .full-bleed {
    object-position: 54% 45%;
  }

  .image-chapter--blue-hour .full-bleed {
    object-position: 28% 46%;
  }

  .image-chapter--floral-icon .full-bleed {
    object-position: 50% 44%;
  }

  .image-chapter--cobalt-motion .full-bleed {
    object-position: 50% 45%;
  }

  .image-chapter--dark-garden .full-bleed,
  .image-chapter--sand-sculpture .full-bleed {
    object-position: 50% 44%;
  }

  .image-chapter--black-frame .full-bleed {
    object-position: 50% 46%;
  }

  .image-chapter--chrome-signal .full-bleed {
    object-position: 50% 43%;
  }

  .image-chapter--electric-motion .full-bleed {
    object-position: 50% 46%;
  }

  .image-chapter--neon-future .full-bleed {
    object-position: 50% 45%;
  }

  .image-chapter--soft-archive h2 span:last-child {
    right: 12px;
  }
}

@supports (-webkit-touch-callout: none) {
  .image-chapter::after,
  .art-chapter::after {
    mix-blend-mode: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .image-chapter--cinematic::before,
  .image-chapter::after,
  .art-chapter::after,
  .is-inview .chapter-arrow {
    animation: none !important;
  }

  .image-chapter--cinematic::before {
    transform: scaleX(1);
  }

  .image-chapter::after,
  .art-chapter::after {
    display: none;
  }

  .js.motion-ready .image-chapter--cinematic .full-bleed {
    -webkit-clip-path: none;
    clip-path: none;
  }

  .image-chapter h2,
  .art-title {
    transform: none !important;
  }
}

/* Professional interaction and Safari repair layer */

body {
  min-width: 320px;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 12px;
  left: 12px;
  padding: 11px 15px;
  background: var(--ivory);
  color: var(--ink);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transform: translateY(-160%);
  transition: transform 0.2s;
}

.skip-link:focus {
  transform: translateY(0);
}

.audio-engine {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.site-header {
  padding-top: env(safe-area-inset-top);
  height: calc(78px + env(safe-area-inset-top));
}

.site-header.is-scrolled {
  background: rgb(9 9 9 / 58%);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  backdrop-filter: blur(14px) saturate(1.15);
}

.desktop-nav a[aria-current="page"]::after {
  transform-origin: left;
  transform: scaleX(1);
}

.soundtrack-control {
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  backdrop-filter: blur(16px) saturate(1.2);
  touch-action: manipulation;
  right: auto;
  bottom: 24px;
  left: 50%;
  justify-content: center;
  width: 44px;
  padding: 0;
  transform: translateX(-50%);
}

.soundtrack-control:hover {
  transform: translate(-50%, -2px);
}

.soundtrack-control > span:last-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.soundtrack-control[data-playing="true"] {
  border-color: rgb(224 53 43 / 90%);
  background: rgb(9 9 9 / 84%);
}

.cover-bottom p,
.chapter-note,
.art-note,
.profile-actions p,
.booking-heading > p {
  text-wrap: balance;
}

.cover-bottom a {
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid rgb(255 255 255 / 44%);
  border-radius: 999px;
  background: rgb(9 9 9 / 58%);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.cover .full-bleed {
  transform: scale(1.035);
  animation: cover-breathe 12s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.is-ready .cover h1 span:first-child {
  animation: title-left-in 0.95s 0.05s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.is-ready .cover h1 span:last-child {
  animation: title-right-in 1s 0.12s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.is-ready .cover-meta,
.is-ready .cover-bottom,
.is-ready .cover-rail {
  animation: detail-rise-in 0.8s 0.28s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.image-chapter,
.art-chapter {
  --parallax-y: 0px;
  isolation: isolate;
}

.js.motion-ready .image-chapter .full-bleed,
.js.motion-ready .art-chapter .full-bleed {
  opacity: 0.62;
  transform: translate3d(0, calc(var(--parallax-y) + 18px), 0) scale(1.075);
  transition:
    opacity 0.85s ease,
    transform 1.55s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.75s ease;
}

.js.motion-ready .image-chapter.is-inview .full-bleed,
.js.motion-ready .art-chapter.is-inview .full-bleed {
  opacity: 1;
  transform: translate3d(0, var(--parallax-y), 0) scale(1.035);
}

.js.motion-ready .image-chapter--cinematic .full-bleed {
  transition:
    opacity 0.85s ease,
    transform 1.55s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.75s ease,
    -webkit-clip-path 1.15s cubic-bezier(0.76, 0, 0.24, 1),
    clip-path 1.15s cubic-bezier(0.76, 0, 0.24, 1);
}

.js.motion-ready .image-chapter--portrait .full-bleed {
  transform: translate3d(0, calc(var(--parallax-y) + 18px), 0) scale(1.025);
}

.js.motion-ready .image-chapter--portrait.is-inview .full-bleed {
  transform: translate3d(0, var(--parallax-y), 0) scale(1.005);
}

.js.motion-ready .image-chapter h2 span,
.js.motion-ready .art-chapter .art-title span,
.js.motion-ready .art-chapter .art-title em {
  opacity: 0;
  transition:
    opacity 0.7s ease,
    transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.js.motion-ready .image-chapter h2 span:first-child,
.js.motion-ready .art-chapter .art-title span {
  transform: translate3d(-7vw, 0, 0);
}

.js.motion-ready .image-chapter h2 span:last-child,
.js.motion-ready .art-chapter .art-title em {
  transform: translate3d(7vw, 0, 0);
}

.js.motion-ready .image-chapter.is-inview h2 span,
.js.motion-ready .art-chapter.is-inview .art-title span,
.js.motion-ready .art-chapter.is-inview .art-title em {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.js.motion-ready .chapter-meta,
.js.motion-ready .chapter-note,
.js.motion-ready .chapter-arrow,
.js.motion-ready .art-meta,
.js.motion-ready .art-note,
.js.motion-ready .art-mark {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 0.6s 0.22s ease,
    transform 0.8s 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.js.motion-ready .is-inview .chapter-meta,
.js.motion-ready .is-inview .chapter-note,
.js.motion-ready .is-inview .chapter-arrow,
.js.motion-ready .is-inview .art-meta,
.js.motion-ready .is-inview .art-note,
.js.motion-ready .is-inview .art-mark {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.js.motion-ready .interlude > *,
.js.motion-ready .art-intro > *,
.js.motion-ready .profile-content,
.js.motion-ready .worldwide-heading,
.js.motion-ready .city-list,
.js.motion-ready .booking-heading,
.js.motion-ready .booking-form {
  opacity: 0;
  transform: translate3d(0, 38px, 0);
  transition:
    opacity 0.75s ease,
    transform 0.95s cubic-bezier(0.16, 1, 0.3, 1);
}

.js.motion-ready .interlude.is-inview > *,
.js.motion-ready .art-intro.is-inview > *,
.js.motion-ready .profile.is-inview .profile-content,
.js.motion-ready .worldwide.is-inview .worldwide-heading,
.js.motion-ready .worldwide.is-inview .city-list,
.js.motion-ready .booking.is-inview .booking-heading,
.js.motion-ready .booking.is-inview .booking-form {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.js.motion-ready .interlude.is-inview > :nth-child(2),
.js.motion-ready .art-intro.is-inview > :nth-child(2),
.js.motion-ready .worldwide.is-inview .city-list,
.js.motion-ready .booking.is-inview .booking-form {
  transition-delay: 0.1s;
}

.js.motion-ready .interlude.is-inview > :nth-child(3),
.js.motion-ready .art-intro.is-inview > :nth-child(3) {
  transition-delay: 0.2s;
}

.art-intro__actions a,
.cover-bottom a,
.button {
  touch-action: manipulation;
}

.art-intro__actions a {
  position: relative;
  white-space: nowrap;
}

.art-intro__actions a::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  content: "";
  background: var(--red);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.25s;
}

.art-intro__actions a:hover::after,
.art-intro__actions a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

@keyframes cover-breathe {
  from {
    opacity: 0.65;
    transform: scale(1.075);
  }
  to {
    opacity: 1;
    transform: scale(1.035);
  }
}

@keyframes title-left-in {
  from {
    opacity: 0;
    transform: translate3d(-8vw, 0, 0);
  }
}

@keyframes title-right-in {
  from {
    opacity: 0;
    transform: translate3d(8vw, 0, 0);
  }
}

@keyframes detail-rise-in {
  from {
    opacity: 0;
    transform: translate3d(0, 20px, 0);
  }
}

@media (hover: hover) and (pointer: fine) {
  .image-chapter.is-inview:hover .full-bleed,
  .art-chapter.is-inview:hover .full-bleed {
    filter: saturate(1) contrast(1.02);
    transform: translate3d(0, var(--parallax-y), 0) scale(1.055);
  }

  .image-chapter--portrait.is-inview:hover .full-bleed {
    transform: translate3d(0, var(--parallax-y), 0) scale(1.018);
  }
}

@media (hover: none) {
  .image-chapter:hover .full-bleed,
  .art-chapter:hover .full-bleed {
    filter: saturate(0.9) contrast(1.03);
  }
}

@media (max-width: 980px) {
  .mobile-menu {
    z-index: 2;
  }

  .mobile-menu summary {
    position: relative;
    z-index: 2;
    min-width: 54px;
    min-height: 44px;
    align-content: center;
    text-align: right;
  }

  .mobile-menu[open] nav {
    position: fixed;
    z-index: 1;
    inset: 0;
    display: flex;
    justify-content: center;
    width: 100vw;
    min-width: 0;
    padding: calc(96px + env(safe-area-inset-top)) 24px
      calc(30px + env(safe-area-inset-bottom));
    border: 0;
    background:
      linear-gradient(rgb(9 9 9 / 91%), rgb(9 9 9 / 97%)),
      url("./images/lana-bajc-editorial-closeup.jpg") 54% 29% / cover;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
  }

  .mobile-menu[open] nav a {
    width: 100%;
    font-size: clamp(1.8rem, 8vw, 3.2rem);
  }

  .mobile-menu nav a[aria-current="page"] {
    color: var(--red);
  }
}

@media (max-width: 720px) {
  .site-header {
    height: calc(72px + env(safe-area-inset-top));
  }

  .soundtrack-control {
    top: auto;
    right: auto;
    bottom: calc(90px + env(safe-area-inset-bottom));
    left: 16px;
    gap: 9px;
    width: auto;
    min-width: 132px;
    min-height: 44px;
    padding: 0 15px;
    transform: none;
  }

  .soundtrack-control > span.sound-label:last-child {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
    white-space: nowrap;
  }

  .soundtrack-control:hover {
    transform: translateY(-2px);
  }

  .loading-screen__meta {
    top: calc(22px + env(safe-area-inset-top));
    right: 20px;
    left: 20px;
  }

  .loading-screen__meta span:last-child {
    display: none;
  }

  .loading-screen__progress {
    bottom: calc(20px + env(safe-area-inset-bottom));
  }

  .experience-grain {
    display: none;
  }

  .cover,
  .image-chapter,
  .art-chapter {
    min-height: 100vh;
    min-height: 100svh;
  }

  .cover h1,
  .image-chapter h2 {
    font-size: clamp(5.7rem, 31vw, 8.6rem);
  }

  .art-title {
    font-size: clamp(4.25rem, 21vw, 6.5rem);
  }

  .art-title span,
  .art-title em {
    max-width: calc(100vw - 36px);
  }

  .art-title em {
    overflow-wrap: anywhere;
  }

  .art-intro h2 {
    font-size: clamp(4rem, 19vw, 5.4rem);
  }

  .art-intro__actions {
    gap: 18px;
  }

  .art-intro__actions a {
    font-size: 0.54rem;
  }

  .js.motion-ready .image-chapter .full-bleed,
  .js.motion-ready .art-chapter .full-bleed {
    transform: translate3d(0, calc(var(--parallax-y) + 36px), 0) scale(1.075);
  }

  .js.motion-ready .image-chapter.is-inview .full-bleed,
  .js.motion-ready .art-chapter.is-inview .full-bleed {
    transform: translate3d(0, var(--parallax-y), 0) scale(1.025);
  }

  .js.motion-ready .image-chapter--portrait .full-bleed {
    transform: translate3d(0, calc(var(--parallax-y) + 24px), 0) scale(1.035);
  }

  .js.motion-ready .image-chapter--portrait.is-inview .full-bleed {
    transform: translate3d(0, var(--parallax-y), 0) scale(1.015);
  }

  .js.motion-ready .image-chapter h2 span:first-child,
  .js.motion-ready .art-chapter .art-title span {
    transform: translate3d(-14vw, 0, 0);
  }

  .js.motion-ready .image-chapter h2 span:last-child,
  .js.motion-ready .art-chapter .art-title em {
    transform: translate3d(14vw, 0, 0);
  }

  .js.motion-ready .image-chapter.is-inview h2 span,
  .js.motion-ready .art-chapter.is-inview .art-title span,
  .js.motion-ready .art-chapter.is-inview .art-title em {
    transform: translate3d(0, 0, 0);
  }

  .profile-heading h2,
  .worldwide-heading h2,
  .booking-heading h2 {
    font-size: clamp(4rem, 19vw, 5.2rem);
  }

  .booking-direct a {
    overflow-wrap: anywhere;
  }
}

@supports (-webkit-touch-callout: none) {
  html,
  body {
    width: 100%;
    overflow-x: hidden;
  }

  .portfolio-experience {
    overflow: hidden;
  }

  .site-header {
    transform: translateZ(0);
  }

  .soundtrack-control {
    transform: translate3d(-50%, 0, 0);
  }

  @media (max-width: 720px) {
    .soundtrack-control {
      transform: translateZ(0);
    }
  }

  .image-chapter .full-bleed,
  .art-chapter .full-bleed {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
}

/* Lightweight, reliable motion for Safari and all iPhone WebKit browsers. */
.is-ios-webkit .image-chapter::after,
.is-ios-webkit .art-chapter::after {
  display: none;
}

.js.is-ios-webkit.motion-ready .image-chapter--cinematic .full-bleed {
  -webkit-clip-path: none;
  clip-path: none;
}

.js.is-ios-webkit.motion-ready .image-chapter .full-bleed,
.js.is-ios-webkit.motion-ready .art-chapter .full-bleed {
  transition:
    opacity 0.72s ease,
    transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
}

.is-ios-webkit .image-chapter h2,
.is-ios-webkit .art-title {
  will-change: auto;
}

/* Keep long iPhone sessions below WebKit's decoded-image/GPU memory ceiling. */
.is-ios-webkit .image-chapter,
.is-ios-webkit .art-chapter {
  content-visibility: auto;
  contain-intrinsic-size: auto 100svh;
}

.is-ios-webkit .image-chapter:not(.is-inview) .full-bleed,
.is-ios-webkit .art-chapter:not(.is-inview) .full-bleed {
  transform: none !important;
  transition: none !important;
  will-change: auto !important;
}

.is-ios-webkit .site-header.is-scrolled,
.is-ios-webkit .soundtrack-control {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .cover .full-bleed,
  .is-ready .cover h1 span,
  .is-ready .cover-meta,
  .is-ready .cover-bottom,
  .is-ready .cover-rail {
    animation: none !important;
  }

  .js.motion-ready .image-chapter .full-bleed,
  .js.motion-ready .art-chapter .full-bleed,
  .js.motion-ready .image-chapter h2 span,
  .js.motion-ready .art-chapter .art-title span,
  .js.motion-ready .art-chapter .art-title em,
  .js.motion-ready .chapter-meta,
  .js.motion-ready .chapter-note,
  .js.motion-ready .chapter-arrow,
  .js.motion-ready .art-meta,
  .js.motion-ready .art-note,
  .js.motion-ready .art-mark,
  .js.motion-ready .interlude > *,
  .js.motion-ready .art-intro > *,
  .js.motion-ready .profile-content,
  .js.motion-ready .worldwide-heading,
  .js.motion-ready .city-list,
  .js.motion-ready .booking-heading,
  .js.motion-ready .booking-form {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Ten-frame editorial motion cycle ---------------------------------------
   Assigned by site.js in portfolio order and repeated after photo ten.
   Each image settles after its first entrance so the photography remains
   the focus. Effects use compositor-friendly transforms where possible. */

.image-chapter[data-motion] {
  --motion-duration: 1.2s;
  --motion-enter-x: 0%;
  --motion-enter-y: 3%;
  --motion-enter-scale: 1.08;
  --motion-rest-scale: 1.025;
  --motion-enter-rotate: 0deg;
  --motion-enter-filter: saturate(0.82) contrast(1.04);
  --motion-origin: 50% 50%;
}

.image-chapter[data-motion="01"] {
  --motion-duration: 1.35s;
  --motion-enter-y: 4%;
  --motion-enter-scale: 1.11;
  --motion-origin: 50% 38%;
}

.image-chapter[data-motion="02"] {
  --motion-duration: 1.15s;
  --motion-enter-x: -4%;
  --motion-enter-y: 0%;
  --motion-enter-scale: 1.11;
  --motion-origin: 36% 50%;
}

.image-chapter[data-motion="03"] {
  --motion-duration: 1.25s;
  --motion-enter-y: 4%;
  --motion-enter-scale: 1.1;
  --motion-origin: 50% 68%;
}

.image-chapter[data-motion="04"] {
  --motion-duration: 1.1s;
  --motion-enter-x: -3%;
  --motion-enter-y: 0%;
  --motion-enter-scale: 1.08;
}

.image-chapter[data-motion="05"] {
  --motion-duration: 1.22s;
  --motion-enter-y: 0%;
  --motion-enter-scale: 1.12;
  --motion-origin: 50% 38%;
}

.image-chapter[data-motion="06"] {
  --motion-duration: 1.05s;
  --motion-enter-y: 2%;
  --motion-enter-scale: 1.065;
  --motion-enter-filter: blur(7px) saturate(0.68) brightness(0.82);
}

.image-chapter[data-motion="07"] {
  --motion-duration: 1.3s;
  --motion-enter-y: 1%;
  --motion-enter-scale: 1.08;
  --motion-origin: 25% 50%;
}

.image-chapter[data-motion="08"] {
  --motion-duration: 1.05s;
  --motion-enter-y: 0%;
  --motion-enter-scale: 1.1;
}

.image-chapter[data-motion="09"] {
  --motion-duration: 1.28s;
  --motion-enter-y: 2%;
  --motion-enter-scale: 1.09;
  --motion-rest-scale: 1.035;
}

.image-chapter[data-motion="10"] {
  --motion-duration: 1.18s;
  --motion-enter-y: 2%;
  --motion-enter-scale: 1.1;
}

.js.motion-ready .image-chapter[data-motion] .full-bleed {
  opacity: 0;
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
  filter: var(--motion-enter-filter);
  transform:
    translate3d(
      var(--motion-enter-x),
      calc(var(--parallax-y, 0px) + var(--motion-enter-y)),
      0
    )
    scale(var(--motion-enter-scale))
    rotate(var(--motion-enter-rotate));
  transform-origin: var(--motion-origin);
  transition:
    opacity 0.72s ease,
    transform var(--motion-duration) cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.78s ease,
    -webkit-clip-path var(--motion-duration) cubic-bezier(0.76, 0, 0.24, 1),
    clip-path var(--motion-duration) cubic-bezier(0.76, 0, 0.24, 1);
  will-change: auto;
}

.js.motion-ready .image-chapter[data-motion].has-entered .full-bleed {
  opacity: 1;
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
  filter: saturate(0.9) contrast(1.03);
  transform:
    translate3d(0, var(--parallax-y, 0px), 0)
    scale(var(--motion-rest-scale))
    rotate(0deg);
}

/* 04 curtain wipe, 05 aperture iris, 08 center shutter. */
.js.motion-ready .image-chapter[data-motion="04"] .full-bleed {
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
}

.js.motion-ready .image-chapter[data-motion="05"] .full-bleed {
  -webkit-clip-path: circle(14% at 50% 38%);
  clip-path: circle(14% at 50% 38%);
}

.js.motion-ready .image-chapter[data-motion="05"].has-entered .full-bleed {
  -webkit-clip-path: circle(150% at 50% 38%);
  clip-path: circle(150% at 50% 38%);
}

.js.motion-ready .image-chapter[data-motion="08"] .full-bleed {
  -webkit-clip-path: inset(47% 0 47% 0);
  clip-path: inset(47% 0 47% 0);
}

/* 07 turns into view like a gallery print. */
.js.motion-ready .image-chapter[data-motion="07"] .full-bleed {
  transform:
    perspective(1200px)
    translate3d(-3%, calc(var(--parallax-y, 0px) + 1%), 0)
    rotateY(-4deg)
    scale(1.08);
}

.js.motion-ready .image-chapter[data-motion="07"].has-entered .full-bleed {
  transform:
    perspective(1200px)
    translate3d(0, var(--parallax-y, 0px), 0)
    rotateY(0deg)
    scale(var(--motion-rest-scale));
}

/* Each photographic movement receives a matching title direction. */
.js.motion-ready .image-chapter[data-motion] h2 span {
  opacity: 0;
  filter: none;
  transition:
    opacity 0.66s 0.08s ease,
    transform 0.98s 0.08s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.72s 0.08s ease;
}

.js.motion-ready .image-chapter[data-motion="01"] h2 span {
  transform: translate3d(0, 54px, 0);
}

.js.motion-ready .image-chapter[data-motion="02"] h2 span:first-child,
.js.motion-ready .image-chapter[data-motion="09"] h2 span:first-child {
  transform: translate3d(-7vw, 0, 0);
}

.js.motion-ready .image-chapter[data-motion="02"] h2 span:last-child,
.js.motion-ready .image-chapter[data-motion="09"] h2 span:last-child {
  transform: translate3d(7vw, 0, 0);
}

.js.motion-ready .image-chapter[data-motion="03"] h2 span:first-child,
.js.motion-ready .image-chapter[data-motion="08"] h2 span:first-child {
  transform: translate3d(0, -52px, 0);
}

.js.motion-ready .image-chapter[data-motion="03"] h2 span:last-child,
.js.motion-ready .image-chapter[data-motion="08"] h2 span:last-child {
  transform: translate3d(0, 52px, 0);
}

.js.motion-ready .image-chapter[data-motion="04"] h2 span:first-child {
  transform: skewX(-9deg) translate3d(-4vw, 0, 0);
}

.js.motion-ready .image-chapter[data-motion="04"] h2 span:last-child {
  transform: skewX(9deg) translate3d(4vw, 0, 0);
}

.js.motion-ready .image-chapter[data-motion="05"] h2 span {
  transform: scale(0.78);
}

.js.motion-ready .image-chapter[data-motion="06"] h2 span {
  filter: blur(5px);
  transform: translate3d(0, 24px, 0) scale(1.025);
}

.js.motion-ready .image-chapter[data-motion="07"] h2 span:first-child {
  transform: perspective(900px) translate3d(-5vw, 0, 0) rotateY(-12deg);
}

.js.motion-ready .image-chapter[data-motion="07"] h2 span:last-child {
  transform: perspective(900px) translate3d(5vw, 0, 0) rotateY(12deg);
}

.js.motion-ready .image-chapter[data-motion="10"] h2 span {
  transform: translate3d(0, 34px, 0) scale(0.92);
}

.js.motion-ready .image-chapter[data-motion].has-entered h2 span {
  opacity: 1;
  filter: none;
  transform: translate3d(0, 0, 0);
}

/* 10 adds a single prismatic exposure sweep. */
.image-chapter[data-motion]::after {
  display: none;
}

.image-chapter[data-motion="10"]::after {
  display: block;
  inset: -24% -48%;
  opacity: 0;
  background: linear-gradient(
    104deg,
    transparent 35%,
    rgb(70 128 255 / 8%) 43%,
    rgb(255 255 255 / 42%) 49%,
    rgb(255 73 153 / 16%) 54%,
    transparent 63%
  );
  mix-blend-mode: screen;
  transform: translate3d(-58%, 0, 0) skewX(-7deg);
}

.image-chapter[data-motion="10"].is-entering::after {
  animation: motion-prism-exposure 1.45s 0.18s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.image-chapter[data-motion] h2,
.image-chapter[data-motion] h2 span,
.art-title {
  will-change: auto;
}

.js.motion-ready .image-chapter[data-motion].is-entering .full-bleed,
.js.motion-ready .image-chapter[data-motion].is-entering h2 span,
.js.motion-ready .image-chapter[data-motion="09"].is-inview .full-bleed,
.js.motion-ready .art-chapter.is-inview .art-title {
  will-change: transform, opacity;
}

.js.motion-ready .image-chapter[data-motion="06"].is-entering .full-bleed {
  will-change: transform, opacity, filter;
}

.image-chapter[data-motion].has-entered .chapter-arrow {
  animation: arrow-float 2.2s 0.72s ease-in-out 2;
}

@keyframes motion-prism-exposure {
  0% {
    opacity: 0;
    transform: translate3d(-58%, 0, 0) skewX(-7deg);
  }
  24% {
    opacity: 0.72;
  }
  100% {
    opacity: 0;
    transform: translate3d(60%, 0, 0) skewX(-7deg);
  }
}

@media (hover: hover) and (pointer: fine) {
  .js.motion-ready .image-chapter[data-motion].has-entered:hover .full-bleed {
    transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.045);
  }
}

@media (hover: none) and (pointer: coarse) {
  .experience-grain {
    display: none;
  }
}

@media (max-width: 720px) {
  .image-chapter[data-motion] {
    --motion-duration: 0.95s;
    --motion-enter-y: 24px;
    --motion-enter-scale: 1.095;
    --motion-rest-scale: 1.025;
  }

  .image-chapter[data-motion="02"] {
    --motion-enter-x: -2.5%;
    --motion-enter-y: 0px;
  }

  .image-chapter[data-motion="03"] {
    --motion-enter-y: 28px;
    --motion-enter-scale: 1.12;
  }

  .image-chapter[data-motion="04"] {
    --motion-enter-x: -2%;
    --motion-enter-y: 0px;
  }

  .image-chapter[data-motion="06"],
  .image-chapter[data-motion="09"],
  .image-chapter[data-motion="10"] {
    --motion-enter-y: 18px;
  }

  .js.motion-ready .image-chapter[data-motion] h2 span {
    transition-duration: 0.78s;
  }
}

/* Safari and every iPhone browser receive distinct transform-only variants. */
.js.is-ios-webkit.motion-ready .image-chapter[data-motion] .full-bleed {
  opacity: 0;
  -webkit-clip-path: inset(0) !important;
  clip-path: inset(0) !important;
  filter: saturate(0.9) contrast(1.03);
  transform:
    translate3d(
      var(--motion-enter-x),
      calc(var(--parallax-y, 0px) + var(--motion-enter-y)),
      0
    )
    scale(var(--motion-enter-scale))
    rotate(var(--motion-enter-rotate));
  transition:
    opacity 0.62s ease,
    transform 0.96s cubic-bezier(0.16, 1, 0.3, 1);
}

.js.is-ios-webkit.motion-ready .image-chapter[data-motion].has-entered .full-bleed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(var(--motion-rest-scale));
}

.is-ios-webkit .image-chapter[data-motion="04"] {
  --motion-enter-x: 2.5%;
  --motion-enter-y: 0px;
  --motion-enter-rotate: 0.45deg;
}

.is-ios-webkit .image-chapter[data-motion="05"] {
  --motion-enter-scale: 1.12;
  --motion-enter-rotate: -0.35deg;
}

.is-ios-webkit .image-chapter[data-motion="06"] {
  --motion-enter-x: -1.6%;
  --motion-enter-y: 18px;
}

.is-ios-webkit .image-chapter[data-motion="07"] {
  --motion-enter-x: -2.2%;
  --motion-enter-y: 10px;
  --motion-enter-rotate: -0.8deg;
}

.is-ios-webkit .image-chapter[data-motion="08"] {
  --motion-enter-y: -22px;
  --motion-enter-rotate: 0.45deg;
}

.is-ios-webkit .image-chapter[data-motion="10"] {
  --motion-enter-x: 1.8%;
  --motion-enter-y: 12px;
  --motion-enter-rotate: 0.65deg;
}

.is-ios-webkit .image-chapter[data-motion="10"]::after {
  display: none;
}

.js.is-ios-webkit.motion-ready .image-chapter[data-motion] h2 span {
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .js.motion-ready .image-chapter[data-motion] .full-bleed,
  .js.motion-ready .image-chapter[data-motion].has-entered .full-bleed,
  .js.is-ios-webkit.motion-ready .image-chapter[data-motion] .full-bleed,
  .js.motion-ready .image-chapter[data-motion] h2 span,
  .js.motion-ready .image-chapter[data-motion].has-entered h2 span {
    opacity: 1 !important;
    -webkit-clip-path: none !important;
    clip-path: none !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }

  .image-chapter[data-motion]::after,
  .image-chapter[data-motion] .chapter-arrow {
    display: none !important;
    animation: none !important;
  }
}
