.photo-case-page {
  --photo-white: #f8f5ef;
  --photo-paper: #eeeae2;
  --photo-ink: #171821;
  --photo-muted: #a8a4af;
  --photo-violet: #a979ff;
  --photo-orange: #ffad78;
  background: #090a10;
}

.photo-case-main { overflow: hidden; }
.photo-case-page h1,
.photo-case-page h2,
.photo-case-page h3,
.photo-case-page p { margin-top: 0; }
.photo-case-page a { text-underline-offset: .22em; }
.photo-case-page .site-header { z-index: 70; }
.photo-case-page .container { position: relative; }
.photo-section { padding: clamp(86px, 8vw, 152px) 0; }
.photo-eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--photo-violet); font-size: 12px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.photo-eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: #71e0ae; box-shadow: 0 0 16px #71e0ae; }
.photo-section h2 { font-size: clamp(43px, 5.6vw, 86px); line-height: .98; letter-spacing: -.06em; }
.photo-section__head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr); align-items: end; gap: 8%; margin-bottom: 62px; }
.photo-section__head h2 { max-width: 930px; margin: 24px 0 0; }
.photo-section__head > p { max-width: 440px; margin-bottom: 4px; color: #a9a5b1; font-size: 18px; line-height: 1.7; }

.photo-hero { position: relative; min-height: 830px; padding: calc(var(--header-height, 86px) + 66px) 0 33px; isolation: isolate; }
.photo-hero__backdrop { position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 43% 25%,rgba(127,65,174,.18),transparent 38%),radial-gradient(circle at 95% 15%,rgba(248,167,122,.09),transparent 24%),#090a10; }
.photo-hero__backdrop::after { position: absolute; inset: 0; content: ''; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(90deg,#000,transparent 70%); }
.photo-hero__inner { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); align-items: center; gap: clamp(34px, 6vw, 116px); }
.photo-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 66px; color: #918d9a; font-size: 12px; }
.photo-breadcrumbs a { color: #b6b2be; text-decoration: none; }
.photo-breadcrumbs a:hover { color: #fff; }
.photo-hero h1 { max-width: 850px; margin: 22px 0 30px; font-size: clamp(52px, 6.4vw, 102px); line-height: .95; letter-spacing: -.065em; }
.photo-hero h1 em { display: block; color: #e7a5cf; font-style: normal; background: linear-gradient(95deg,#ba85ff,#f39aba 50%,#ffb286); -webkit-background-clip: text; background-clip: text; color: transparent; }
.photo-hero__lead { max-width: 680px; color: #bab6c0; font-size: clamp(18px, 1.45vw, 22px); line-height: 1.65; }
.photo-hero__actions,.photo-next__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.photo-button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; padding: 13px 20px; border: 1px solid rgba(255,255,255,.17); border-radius: 5px 17px 5px 17px; color: #f8f7fb; font-size: 14px; font-weight: 800; text-decoration: none; transition: transform .25s ease,border-color .25s ease,background .25s ease; }
.photo-button:hover { transform: translateY(-3px); border-color: #d5a3ff; }
.photo-button--primary { border-color: #a975ff; background: linear-gradient(110deg,#8f46f5,#a657e5 72%,#ce6eab); box-shadow: 0 18px 45px rgba(132,61,222,.22); }
.photo-button--quiet { background: rgba(255,255,255,.035); }
.photo-hero__frame { position: relative; padding: 22px 0 22px 22px; }
.photo-hero__frame::before { position: absolute; inset: 0 22px 0 0; border: 1px solid rgba(207,155,255,.32); border-radius: 180px 180px 5px 5px; content: ''; transform: rotate(-4deg); }
.photo-hero__frame::after { position: absolute; width: 55%; height: 55%; right: -13%; bottom: -11%; z-index: -1; content: ''; border-radius: 50%; background: #843be0; filter: blur(95px); opacity: .28; }
.photo-hero__image { position: relative; height: clamp(490px, 39vw, 650px); margin: 0; overflow: hidden; border-radius: 185px 185px 4px 4px; background: #272b27; box-shadow: 0 40px 100px rgba(0,0,0,.38); }
.photo-hero__image::after { position: absolute; inset: 45% 0 0; content: ''; background: linear-gradient(0deg,rgba(10,11,15,.55),transparent); pointer-events: none; }
.photo-hero__image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.photo-hero__image figcaption { position: absolute; z-index: 1; left: 28px; bottom: 24px; color: #fff; font-size: 12px; letter-spacing: .04em; }
.photo-hero__frame-index { position: absolute; top: 50px; right: -17px; writing-mode: vertical-rl; color: #f1eaf2; font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.photo-hero__foot { display: flex; justify-content: space-between; gap: 22px; margin-top: 68px; color: #8f8999; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.photo-hero__foot a { color: #e7c7ff; text-decoration: none; }

.photo-facts { border-block: 1px solid rgba(255,255,255,.11); background: #101118; }
.photo-facts__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.photo-facts__grid > div { min-height: 144px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 24px 26px; border-right: 1px solid rgba(255,255,255,.1); }
.photo-facts__grid > div:first-child { padding-left: 0; }
.photo-facts__grid > div:last-child { padding-right: 0; border-right: 0; }
.photo-facts span { margin-bottom: 9px; color: #a67fce; font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .14em; }
.photo-facts strong,.photo-facts a { color: #f5f0f9; font-size: 18px; line-height: 1.3; font-weight: 800; }
.photo-facts a { text-decoration: none; }
.photo-facts a:hover { color: #c994ff; }
.photo-facts small { margin-top: 6px; color: #9693a0; font-size: 12px; }

.photo-story { background: #f1eee9; color: #15151b; }
.photo-story__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 10%; }
.photo-story .photo-eyebrow { color: #7144a1; }
.photo-story h2 { max-width: 700px; margin-top: 23px; }
.photo-story__body { padding-top: 12px; }
.photo-story__body p { max-width: 660px; color: #54515a; font-size: 18px; line-height: 1.85; }
.photo-story__body .photo-intro { color: #17151b; font-size: clamp(22px, 2vw, 29px); line-height: 1.52; font-weight: 680; }
.photo-note { display: grid; gap: 13px; max-width: 660px; margin-top: 38px; padding: 26px 28px; border-left: 3px solid #9453dc; border-radius: 0 15px 0 15px; background: #fff; box-shadow: 0 20px 60px rgba(26,13,39,.07); }
.photo-note b { font-size: 14px; }
.photo-note span { color: #5a5660; line-height: 1.65; }

.photo-feature { background: #0b0d13; }
.photo-feature__grid { display: grid; grid-template-columns: 1.07fr .93fr; gap: clamp(42px, 7vw, 112px); align-items: center; }
.photo-feature__photo { position: relative; min-height: 650px; overflow: hidden; border-radius: 3px 90px 3px 3px; background: #2a2725; }
.photo-feature__photo::after { position: absolute; inset: 60% 0 0; content: ''; background: linear-gradient(0deg,rgba(5,6,10,.82),transparent); }
.photo-feature__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 42% center; }
.photo-feature__photo span { position: absolute; z-index: 1; left: 30px; bottom: 26px; max-width: 280px; color: #fff; font-size: 12px; line-height: 1.5; font-weight: 750; letter-spacing: .03em; }
.photo-feature__copy h2 { max-width: 630px; margin: 22px 0 32px; }
.photo-feature__copy p { color: #b4b0bb; font-size: 18px; line-height: 1.78; }
.photo-feature__copy ul { display: grid; gap: 18px; padding: 12px 0 15px 20px; color: #d7d3dc; font-size: 16px; line-height: 1.65; }
.photo-feature__copy li::marker { color: #ad7bf1; }
.photo-feature__copy a { display: inline-flex; gap: 12px; margin-top: 22px; color: #d2a7ff; font-size: 14px; font-weight: 850; text-decoration: none; }
.photo-feature__copy a:hover { color: #fff; }

.photo-journey { background: #15131a; }
.photo-journey__controls { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 13px; }
.photo-journey__controls button { min-height: 54px; border: 1px solid rgba(255,255,255,.13); border-radius: 5px 16px 5px 16px; background: #1c1b24; color: #b7b2c1; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; transition: background .2s ease,color .2s ease,border-color .2s ease; }
.photo-journey__controls button:hover,.photo-journey__controls button[aria-selected="true"] { border-color: #a069ed; background: #7543bc; color: #fff; }
.photo-journey__stage { min-height: 330px; display: grid; grid-template-columns: 82px minmax(0,1.07fr) minmax(0,.93fr); gap: clamp(26px,5vw,80px); align-items: center; padding: clamp(34px,5vw,72px); border: 1px solid rgba(189,145,255,.23); border-radius: 4px 28px 4px 28px; background: radial-gradient(circle at 10% 0%,rgba(171,109,245,.14),transparent 40%),#111119; box-shadow: 0 32px 80px rgba(0,0,0,.16); }
.photo-journey__stage[hidden] { display: none; }
.photo-journey__stage small { display: block; margin-bottom: 17px; color: #c499fb; font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .15em; }
.photo-journey__stage h3 { max-width: 510px; margin: 0; font-size: clamp(29px,3vw,47px); line-height: 1.12; letter-spacing: -.045em; }
.photo-journey__stage p { max-width: 430px; color: #b6b0bd; font-size: 17px; line-height: 1.7; }
.photo-journey__stage a { color: #e5b8ff; font-size: 14px; font-weight: 850; text-decoration: none; }
.photo-journey__index { align-self: start; color: #7b7286; font-size: 12px; font-weight: 800; writing-mode: vertical-rl; letter-spacing: .12em; }

.photo-architecture { background: #0a0c11; }
.photo-architecture__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.photo-architecture__grid article { min-height: 285px; padding: 30px; border: 1px solid rgba(255,255,255,.1); border-radius: 4px 22px 4px 22px; background: linear-gradient(145deg,rgba(143,75,232,.09),rgba(255,255,255,.018) 48%); }
.photo-architecture__grid article:nth-child(3n + 2) { background: linear-gradient(145deg,rgba(254,156,128,.07),rgba(255,255,255,.018) 48%); }
.photo-architecture__grid article span { color: #b989ff; font-size: 12px; font-weight: 900; letter-spacing: .12em; }
.photo-architecture__grid article h3 { max-width: 350px; margin: 58px 0 12px; font-size: 24px; line-height: 1.15; letter-spacing: -.035em; }
.photo-architecture__grid article p { max-width: 370px; margin: 0; color: #aaa6b0; font-size: 15px; line-height: 1.65; }

.photo-gallery { background: #f2eee9; color: #16151d; }
.photo-gallery .photo-eyebrow { color: #7144a1; }
.photo-gallery .photo-section__head > p { color: #5c5661; }
.photo-gallery__grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 14px; height: min(48vw,620px); min-height: 400px; }
.photo-gallery figure { position: relative; min-width: 0; margin: 0; overflow: hidden; border-radius: 4px 35px 4px 4px; background: #d7d2ca; }
.photo-gallery figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-gallery__main img { object-position: center; }
.photo-gallery__side img { object-position: 45% center; }
.photo-gallery figure figcaption { position: absolute; left: 16px; bottom: 16px; padding: 9px 12px; border-radius: 5px; background: rgba(18,18,23,.78); color: #fff; font-size: 12px; font-weight: 750; }
.photo-quote { display: grid; grid-template-columns: 86px 1fr; column-gap: 18px; margin: 88px 0 0; padding-top: 34px; border-top: 1px solid rgba(24,20,30,.18); }
.photo-quote > span { grid-row: 1 / span 2; color: #9558d5; font: 130px/1 Georgia,serif; }
.photo-quote p { max-width: 920px; margin: 14px 0 18px; font: italic clamp(29px,3.7vw,58px)/1.18 Georgia,serif; letter-spacing: -.04em; }
.photo-quote footer { color: #635b69; font-size: 14px; }

.photo-results { background: #13121a; }
.photo-results__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.photo-results__grid > div { min-height: 315px; padding: 30px; border: 1px solid rgba(255,255,255,.13); border-radius: 4px 26px 4px 26px; background: radial-gradient(circle at 100% 0%,rgba(175,104,250,.13),transparent 60%),rgba(255,255,255,.022); }
.photo-results__grid strong { display: block; color: #c693ff; font-size: clamp(74px,8vw,122px); line-height: .85; letter-spacing: -.08em; }
.photo-results__grid h3 { margin: 56px 0 10px; font-size: 23px; letter-spacing: -.035em; }
.photo-results__grid p { max-width: 350px; margin: 0; color: #a8a2b0; font-size: 15px; line-height: 1.65; }
.photo-results__foot { display: flex; justify-content: space-between; gap: 20px; padding-top: 25px; color: #8c8795; font-size: 13px; }
.photo-results__foot a { color: #d0a1ff; text-decoration: none; font-weight: 800; }

.photo-next { padding-block: clamp(90px,10vw,170px); background: radial-gradient(circle at 75% 45%,rgba(255,185,155,.26),transparent 26%),linear-gradient(120deg,#6631aa,#9e51ce 53%,#e57c94); }
.photo-next__grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(240px,.65fr); gap: 8%; align-items: center; }
.photo-next .photo-eyebrow { color: #e7c9fc; }
.photo-next h2 { max-width: 900px; margin: 24px 0; }
.photo-next p { max-width: 680px; color: #fff0ff; font-size: 19px; line-height: 1.65; }
.photo-next .photo-button--primary { border-color:#fff; background:#fff; color:#342042; box-shadow: 0 25px 70px rgba(42,11,66,.18); }
.photo-next .photo-button--quiet { border-color:rgba(255,255,255,.55); }
.photo-next__mark { width: min(100%,410px); aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; transform: rotate(-10deg); color: rgba(255,255,255,.92); font-size: clamp(19px,2.4vw,35px); line-height: 1; font-weight: 900; letter-spacing: -.04em; box-shadow: inset 0 0 80px rgba(255,255,255,.07),0 0 90px rgba(255,205,216,.2); }
.photo-next__mark span:nth-child(2) { color: #ffc4dc; }
.photo-endnav { display: flex; justify-content: space-between; gap: 20px; padding-block: 30px 55px; }
.photo-endnav a { display: inline-flex; gap: 12px; align-items: center; color: #c9c3cf; font-size: 14px; font-weight: 800; text-decoration: none; }
.photo-endnav a:hover { color: #fff; }

@media (max-width: 1199px) {
  .photo-hero__inner { gap: 40px; }
  .photo-hero h1 { font-size: clamp(50px,5.8vw,78px); }
  .photo-facts__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .photo-facts__grid > div:nth-child(2) { border-right: 0; }
  .photo-facts__grid > div:nth-child(-n + 2) { border-bottom: 1px solid rgba(255,255,255,.1); }
  .photo-facts__grid > div:nth-child(3) { padding-left: 0; }
}
@media (max-width: 899px) {
  .photo-hero { padding-top: calc(var(--header-height,80px) + 45px); }
  .photo-hero__inner { grid-template-columns: 1fr; }
  .photo-breadcrumbs { margin-bottom: 45px; }
  .photo-hero__copy { position: relative; z-index: 2; }
  .photo-hero h1 { max-width: 750px; font-size: clamp(54px,8vw,78px); }
  .photo-hero__frame { max-width: 680px; padding: 16px 0 16px 16px; }
  .photo-hero__image { height: 550px; }
  .photo-section__head,.photo-story__grid,.photo-feature__grid,.photo-next__grid { grid-template-columns: 1fr; gap: 38px; }
  .photo-section__head { margin-bottom: 46px; }
  .photo-section__head > p { max-width: 700px; }
  .photo-story__body { padding-top: 0; }
  .photo-feature__photo { min-height: 500px; }
  .photo-journey__stage { grid-template-columns: 48px 1fr; }
  .photo-journey__stage > div:last-child { grid-column: 2; }
  .photo-architecture__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .photo-next__mark { display: none; }
}
@media (max-width: 650px) {
  .photo-hero { padding-top: calc(var(--header-height,74px) + 28px); }
  .photo-breadcrumbs { margin-bottom: 42px; }
  .photo-hero h1 { font-size: clamp(46px,12vw,68px); }
  .photo-hero__lead { font-size: 17px; }
  .photo-hero__actions,.photo-next__actions { flex-direction: column; align-items: stretch; }
  .photo-hero__frame { padding: 11px 0 11px 11px; }
  .photo-hero__frame::before { inset: 0 11px 0 0; }
  .photo-hero__image { height: 440px; border-radius: 150px 150px 4px 4px; }
  .photo-hero__foot { margin-top: 38px; }
  .photo-hero__foot span { max-width: 145px; }
  .photo-facts__grid { grid-template-columns: 1fr 1fr; }
  .photo-facts__grid > div { min-height: 125px; padding: 18px 14px; }
  .photo-facts strong,.photo-facts a { font-size: 15px; }
  .photo-facts small { font-size: 11px; }
  .photo-section h2 { font-size: clamp(42px,10vw,62px); }
  .photo-story__body p { font-size: 16px; }
  .photo-feature__photo { min-height: 440px; }
  .photo-journey__controls { display: flex; overflow-x: auto; margin-inline: calc(var(--site-shell-gutter) * -1); padding-inline: var(--site-shell-gutter); scrollbar-width: thin; }
  .photo-journey__controls button { flex: 0 0 auto; min-width: 126px; padding-inline: 15px; }
  .photo-journey__stage { display: block; min-height: 0; padding: 28px 24px; }
  .photo-journey__index { display: block; margin-bottom: 27px; writing-mode: initial; }
  .photo-journey__stage > div:last-child { margin-top: 33px; }
  .photo-journey__stage h3 { font-size: 32px; }
  .photo-architecture__grid,.photo-results__grid { grid-template-columns: 1fr; }
  .photo-architecture__grid article { min-height: 230px; }
  .photo-architecture__grid article h3 { margin-top: 38px; }
  .photo-gallery__grid { height: auto; min-height: 0; grid-template-columns: 1fr 1fr; }
  .photo-gallery__main { grid-column: 1 / -1; height: 310px; }
  .photo-gallery__side { grid-column: 1 / -1; height: 310px; }
  .photo-quote { grid-template-columns: 45px 1fr; margin-top: 65px; }
  .photo-quote > span { font-size: 76px; }
  .photo-quote p { font-size: 29px; }
  .photo-results__grid > div { min-height: 240px; }
  .photo-results__grid h3 { margin-top: 25px; }
  .photo-results__foot { flex-direction: column; }
  .photo-endnav { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .photo-button,.photo-journey__controls button { transition: none; }
}
