:root {
  --night: #080b0d;
  --night-soft: #101619;
  --ink: #f1ede3;
  --muted: #92999a;
  --champagne: #c9aa72;
  --signal: #e75b42;
  --paper: #e5ddce;
  --line: rgba(241, 237, 227, 0.18);
  --line-strong: rgba(241, 237, 227, 0.42);
  --serif: "Iowan Old Style", Baskerville, "Times New Roman", serif;
  --sans: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --header: 72px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header); background: var(--night); }
body { margin: 0; overflow-x: hidden; background: var(--night); color: var(--ink); font-family: var(--sans); line-height: 1.6; }
body::selection { background: var(--champagne); color: var(--night); }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p, figure { margin: 0; }
button, input, textarea { color: inherit; font: inherit; }

.scene-skip { position: fixed; top: 0; left: 1rem; z-index: 1000; padding: .7rem 1rem; background: var(--champagne); color: var(--night); translate: 0 -120%; }
.scene-skip:focus { translate: 0; }

.scene-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  display: grid;
  grid-template-columns: 1fr auto 1fr auto;
  gap: 2rem;
  align-items: center;
  height: var(--header);
  padding-inline: clamp(1rem, 3.2vw, 3.5rem);
  border-bottom: 1px solid var(--line);
  background: rgba(8, 11, 13, .76);
  backdrop-filter: blur(18px);
  transition: translate .45s var(--ease), background .35s ease;
}
.scene-header::after { position: absolute; inset: auto auto -1px 0; width: calc(var(--page-progress, 0) * 100%); height: 1px; background: var(--champagne); content: ""; }
.scene-header.is-hidden { translate: 0 -110%; }
.scene-logo { display: flex; gap: .65rem; width: max-content; align-items: baseline; font-size: .78rem; font-weight: 700; letter-spacing: .2em; }
.scene-logo b { color: var(--champagne); font-size: .53rem; font-weight: 500; }
.scene-status { display: flex; gap: .65rem; align-items: center; color: var(--muted); font: .48rem/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.scene-status i { width: 5px; height: 5px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 14px var(--signal); }
.scene-status span { color: var(--ink); }
.scene-header nav { display: flex; gap: 2rem; justify-self: end; }
.scene-header nav a { color: var(--muted); font: .55rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; transition: color .25s ease; }
.scene-header nav a:hover { color: var(--ink); }
.scene-request { display: flex; gap: 2.5rem; align-items: center; min-height: 39px; padding-inline: 1rem; border: 1px solid var(--champagne); background: var(--champagne); color: var(--night); font: 700 .53rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.scene-request b { font-size: .9rem; }

.scene-hero { position: relative; display: flex; min-height: 100svh; align-items: center; overflow: hidden; padding: calc(var(--header) + 4rem) clamp(1rem, 5vw, 6rem) 5rem; background: var(--night); }
.scene-hero::before { position: absolute; inset: 0; background: radial-gradient(circle at 68% 48%, rgba(201,170,114,.13), transparent 27%), linear-gradient(115deg, transparent 48%, rgba(255,255,255,.028) 48.1% 48.2%, transparent 48.3%); content: ""; }
.scene-hero__atmosphere { position: absolute; inset: 0; pointer-events: none; }
.scene-orbit { position: absolute; border: 1px solid rgba(201,170,114,.24); border-radius: 50%; }
.scene-orbit--a { top: 8%; right: 6%; width: min(55vw, 780px); aspect-ratio: 1; animation: orbit-drift 14s ease-in-out infinite alternate; }
.scene-orbit--b { right: 22%; bottom: -25%; width: min(32vw, 470px); aspect-ratio: 1; border-style: dashed; animation: orbit-drift 18s ease-in-out infinite alternate-reverse; }
@keyframes orbit-drift { to { translate: 2vw -1.5vw; rotate: 8deg; } }
.scene-cross { position: absolute; color: rgba(241,237,227,.25); font: 200 1.4rem/1 var(--sans); }
.scene-cross--a { top: 21%; left: 57%; }.scene-cross--b { right: 13%; bottom: 16%; }
.scene-hero__beam { position: absolute; top: -20%; right: 24%; width: 1px; height: 140%; background: linear-gradient(transparent, var(--champagne), transparent); rotate: 24deg; opacity: .32; }
.scene-hero__index { position: absolute; top: 50%; right: 5vw; display: grid; grid-template-columns: auto 95px auto; gap: 1rem; align-items: center; color: var(--muted); font: .5rem/1 var(--mono); letter-spacing: .15em; rotate: 90deg; transform-origin: right center; }
.scene-hero__index span { color: var(--champagne); }.scene-hero__index i { height: 1px; background: var(--line-strong); }
.scene-hero__copy { position: relative; z-index: 2; width: min(100%, 1180px); }
.scene-hero__copy > p { margin-bottom: 2rem; color: var(--champagne); font: .58rem/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.scene-hero h1 { font-family: var(--serif); font-size: clamp(5rem, 10vw, 12rem); font-weight: 400; letter-spacing: -.075em; line-height: .72; }
.scene-hero h1 em { color: transparent; font-weight: 400; -webkit-text-stroke: 1px var(--ink); }
.scene-hero__copy > div { display: grid; grid-template-columns: minmax(0, 560px) auto; gap: 4rem; align-items: end; max-width: 940px; margin-top: 3.7rem; }
.scene-hero__copy > div p { color: #aeb2b0; font-size: .9rem; line-height: 1.8; }
.scene-hero__copy > div a { display: flex; gap: 3rem; align-items: center; padding-bottom: .65rem; border-bottom: 1px solid var(--champagne); color: var(--champagne); font: 700 .57rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.scene-hero__coordinates { position: absolute; right: 4vw; bottom: 2rem; display: flex; gap: 2rem; color: #666d6e; font: .45rem/1 var(--mono); letter-spacing: .12em; }
.scene-scroll { position: absolute; bottom: 2rem; left: 5vw; display: flex; gap: 1rem; align-items: center; color: var(--muted); font: .48rem/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.scene-scroll i { width: 75px; height: 1px; overflow: hidden; background: var(--line); }
.scene-scroll i::after { display: block; width: 45%; height: 100%; background: var(--champagne); content: ""; animation: scroll-line 2.2s ease-in-out infinite; }
@keyframes scroll-line { from { translate: -110%; } to { translate: 240%; } }

.kinetic-track { position: relative; height: 220svh; }
.kinetic-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; contain: paint; }
.scene-grid { position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 80px 80px; mask-image: linear-gradient(90deg, black, transparent 78%); opacity: .18; }
.kinetic-index { position: absolute; z-index: 8; top: calc(var(--header) + 2rem); left: 4vw; display: flex; gap: 1rem; align-items: center; color: var(--muted); font: .48rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.kinetic-index span { color: var(--champagne); }.kinetic-index p { margin: 0; }
.kinetic-progress { position: absolute; z-index: 9; right: 3vw; bottom: 2rem; display: grid; grid-template-columns: auto 120px auto; gap: .8rem; align-items: center; color: var(--muted); font: .44rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.kinetic-progress span:first-child { color: var(--champagne); }
.kinetic-progress i { position: relative; height: 1px; overflow: hidden; background: var(--line); }
.kinetic-progress i::after { position: absolute; inset: 0; background: var(--champagne); content: ""; scale: var(--progress, 0) 1; transform-origin: left; }

.kinetic-villa { --site-o: 0; --lower-west-o: 0; --lower-center-o: 0; --lower-east-o: 0; --upper-west-o: 0; --upper-center-o: 0; --upper-east-o: 0; --villa-y: 0px; --villa-scale: 1; --environment-scale: 1.025; --detail-opacity: 0; background: #0c1113; }
.villa-copy { position: absolute; z-index: 6; top: 15vh; left: 5vw; width: min(54vw, 860px); }
.villa-copy > p, .car-copy > p, .ship-copy > p { margin-bottom: 1.4rem; color: var(--champagne); font: .55rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.villa-copy h2, .car-copy h2, .ship-copy h2, .market-scene h2, .scene-method h2, .scene-contact h2 { font-family: var(--serif); font-size: clamp(4rem, 7.5vw, 9rem); font-weight: 400; letter-spacing: -.065em; line-height: .82; }
.villa-copy h2 em, .car-copy h2 em, .ship-copy h2 em, .market-scene h2 em, .scene-method h2 em, .scene-contact h2 em { color: var(--champagne); font-weight: 400; }
.villa-copy__detail { display: grid; grid-template-columns: .65fr 1fr auto; gap: 2rem; align-items: start; max-width: 980px; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line-strong); opacity: var(--detail-opacity); translate: 0 var(--detail-y, 0px); }
.villa-copy__detail span, .car-copy span, .ship-copy span { color: var(--muted); font: .48rem/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.villa-copy__detail p, .car-copy div p, .ship-copy div p { color: #b5b7b3; font-size: .78rem; line-height: 1.75; }
.villa-copy__detail a, .car-copy div a, .ship-copy div a { padding-bottom: .5rem; border-bottom: 1px solid var(--champagne); color: var(--champagne); font: .52rem/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.villa-copy__detail, .car-copy > div, .ship-copy > div, .market-scene__copy > div { background: linear-gradient(120deg, rgba(5, 8, 9, .88), rgba(8, 12, 13, .68)); border: 1px solid rgba(201, 170, 114, .24); border-radius: 2px; box-shadow: 0 18px 48px rgba(0, 0, 0, .24); backdrop-filter: blur(14px) saturate(.88); -webkit-backdrop-filter: blur(14px) saturate(.88); }
.villa-copy__detail { padding: 1.2rem 1.35rem; border-top-color: rgba(201, 170, 114, .48); }
.villa-copy__detail p, .car-copy div p, .ship-copy div p, .market-scene__copy > div p { color: #e2e3de; font-size: clamp(.92rem, 1.12vw, 1.08rem); font-weight: 450; line-height: 1.72; text-shadow: 0 1px 12px rgba(0, 0, 0, .45); }
.car-copy > div, .ship-copy > div, .market-scene__copy > div { padding: 1.25rem 1.35rem; border-top: 1px solid rgba(201, 170, 114, .48); }
.villa-fold { position: absolute; z-index: 3; right: 3vw; bottom: 8vh; width: min(68vw, 1240px); aspect-ratio: 1915 / 821; perspective: 1500px; transform: translate3d(0, var(--villa-y), 0) scale(var(--villa-scale)); transform-origin: right bottom; }
.villa-fold::before { position: absolute; inset: -8px; border: 1px solid color-mix(in srgb, var(--champagne) 44%, transparent); content: ""; opacity: var(--detail-opacity); }
.villa-environment { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .78; transform: scale(var(--environment-scale)); }
.villa-architecture { position: absolute; z-index: 2; inset: 0; perspective: 1500px; transform-style: preserve-3d; }
.villa-part { position: absolute; opacity: var(--part-o); transform: translate3d(var(--part-x, 0), var(--part-y, 0), 0) rotateX(var(--part-rx, 0deg)) rotateY(var(--part-ry, 0deg)); transform-origin: var(--part-origin, center); transform-style: preserve-3d; backface-visibility: hidden; }
.villa-part img { width: 100%; height: 100%; object-fit: fill; }
.villa-part--site { --part-o: var(--site-o); --part-y: var(--site-y); --part-rx: var(--site-rx); --part-origin: center bottom; top: 57.25%; left: 27.94%; width: 72.06%; height: 42.75%; }
.villa-part--lower-west { --part-o: var(--lower-west-o); --part-x: var(--lower-west-x); --part-ry: var(--lower-west-ry); --part-origin: left center; top: 43.24%; left: 31.33%; width: 26.11%; height: 25.58%; }
.villa-part--lower-center { --part-o: var(--lower-center-o); --part-y: var(--lower-center-y); --part-rx: var(--lower-center-rx); --part-origin: center bottom; top: 41.41%; left: 49.61%; width: 27.15%; height: 28.01%; }
.villa-part--lower-east { --part-o: var(--lower-east-o); --part-x: var(--lower-east-x); --part-ry: var(--lower-east-ry); --part-origin: right center; top: 40.19%; left: 71.54%; width: 28.46%; height: 31.67%; }
.villa-part--upper-west { --part-o: var(--upper-west-o); --part-y: var(--upper-west-y); --part-rx: var(--upper-west-rx); --part-origin: center bottom; top: 25.58%; left: 41.25%; width: 18.80%; height: 26.80%; }
.villa-part--upper-center { --part-o: var(--upper-center-o); --part-y: var(--upper-center-y); --part-ry: var(--upper-center-ry); --part-origin: left center; top: 12.18%; left: 51.17%; width: 32.38%; height: 34.71%; }
.villa-part--upper-east { --part-o: var(--upper-east-o); --part-x: var(--upper-east-x); --part-ry: var(--upper-east-ry); --part-origin: right center; top: 8.53%; left: 76.76%; width: 23.24%; height: 37.76%; }
.kinetic-villa.is-active .villa-part, .kinetic-villa.is-active .villa-environment { will-change: transform, opacity; }
.no-js .villa-part { opacity: 1; transform: none; }
.villa-fold figcaption { position: absolute; inset: auto 0 -2.9rem; display: flex; justify-content: space-between; color: var(--muted); font: .46rem/1 var(--mono); letter-spacing: .11em; text-transform: uppercase; opacity: var(--detail-opacity); }
.villa-fold figcaption span { color: var(--champagne); }.villa-fold figcaption b { font-weight: 400; }

.kinetic-car { --car-x: 0px; --car-y: 0px; --car-copy-opacity: 0; --car-bg-x: 0px; --car-bg-scale: 1.04; background: #090b0c; }
.car-cinema, .car-shade { position: absolute; inset: 0; }
.car-cinema img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translate3d(var(--car-bg-x), 0, 0) scale(var(--car-bg-scale)); }
.car-shade { z-index: 1; background: linear-gradient(90deg, rgba(6,8,9,.1), rgba(6,8,9,.2) 45%, rgba(6,8,9,.82) 100%), linear-gradient(0deg, rgba(6,8,9,.72), transparent 55%); }
.car-copy { position: absolute; z-index: 7; top: 14vh; right: 5vw; width: min(52vw, 850px); text-align: right; opacity: var(--car-copy-opacity); translate: var(--car-copy-x, 0px) 0; }
.car-copy > p, .car-copy h2 em { color: var(--champagne); }
.car-copy > div { display: grid; grid-template-columns: .65fr 1fr auto; gap: 2rem; align-items: start; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line-strong); text-align: left; }
.car-copy span { color: #aaa69e; }.car-copy div p { color: #d1cec7; }.car-copy div a { border-color: var(--champagne); color: var(--champagne); }
.moving-car { position: absolute; z-index: 5; bottom: 5vh; left: 0; width: min(70vw, 1200px); transform: translate3d(var(--car-x), var(--car-y), 0); }
.moving-car img { position: relative; z-index: 2; width: 100%; height: auto; }
.moving-car__shadow { position: absolute; z-index: 1; right: 5%; bottom: -2%; left: 5%; height: 22%; border-radius: 50%; background: radial-gradient(ellipse, rgba(0,0,0,.6), transparent 70%); }
.speed-lines { position: absolute; z-index: 4; bottom: 23vh; left: 0; display: grid; gap: 1rem; opacity: calc(1 - var(--car-copy-opacity)); }
.speed-lines i { width: clamp(120px, 28vw, 450px); height: 1px; background: linear-gradient(90deg, transparent, rgba(201,170,114,.65)); }.speed-lines i:nth-child(2) { width: 19vw; margin-left: 8vw; }.speed-lines i:nth-child(3) { width: 35vw; margin-left: 2vw; }.speed-lines i:nth-child(4) { width: 13vw; margin-left: 14vw; }
.kinetic-car.is-active .car-cinema img, .kinetic-car.is-active .moving-car { will-change: transform; }

.kinetic-ship { --ocean-x: 0px; --ocean-y: 0px; --ocean-scale: 1; --vessel-x: 0px; --vessel-y: 0px; --vessel-scale: 1; --vessel-roll: 0deg; --wake-opacity: 1; --ship-copy-opacity: 1; --route-offset: 0; background: #061018; }
.ship-cinema, .ship-shade { position: absolute; inset: 0; }
.ship-cinema img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(var(--ocean-x), var(--ocean-y), 0) scale(var(--ocean-scale)); }
.ship-shade { z-index: 1; background: linear-gradient(90deg, rgba(3,10,15,.92) 0%, rgba(3,10,15,.65) 36%, rgba(3,10,15,.08) 75%), linear-gradient(0deg, rgba(3,10,15,.76), transparent 52%); }
.moving-ship { position: absolute; z-index: 3; right: 1vw; bottom: -5vh; width: min(58vw, 980px); transform: translate3d(var(--vessel-x), var(--vessel-y), 0) rotate(var(--vessel-roll)) scale(var(--vessel-scale)); transform-origin: center; }
.moving-ship img { position: relative; z-index: 2; width: 100%; height: auto; }
.ship-wake { position: absolute; z-index: 1; top: 14%; right: -38%; width: 82%; height: 42%; opacity: var(--wake-opacity); rotate: -19deg; }
.ship-wake i { position: absolute; inset: 0 0 auto; height: 46%; border-top: 2px solid rgba(255,255,255,.68); border-radius: 50%; filter: blur(.4px); animation: wake-pulse 2.8s ease-in-out infinite alternate; animation-play-state: paused; }
.ship-wake i:nth-child(2) { top: 14%; opacity: .7; animation-delay: -.6s; }.ship-wake i:nth-child(3) { top: 28%; opacity: .48; animation-delay: -1.2s; }.ship-wake i:nth-child(4) { top: 42%; opacity: .3; animation-delay: -1.8s; }
@keyframes wake-pulse { to { translate: 5% 3%; scale: 1.05; opacity: .3; } }
.moving-ship::after { position: absolute; z-index: 3; left: 2%; bottom: 6%; width: 34%; height: 13%; border-top: 2px solid rgba(255,255,255,.68); border-radius: 50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.28), transparent 66%); content: ""; opacity: var(--wake-opacity); filter: blur(1px); rotate: -12deg; animation: bow-wave 2.2s ease-in-out infinite alternate; animation-play-state: paused; }
@keyframes bow-wave { to { scale: 1.14 .82; opacity: .3; } }
.ocean-ripples { position: absolute; z-index: 2; right: 7vw; bottom: 4vh; width: 58vw; height: 25vh; opacity: var(--wake-opacity); transform: skewX(-18deg); }
.ocean-ripples i { position: absolute; inset: auto 0 0; height: 38%; border-top: 1px solid rgba(255,255,255,.45); border-radius: 50%; animation: ocean-ripple 3.2s ease-in-out infinite; animation-play-state: paused; }.ocean-ripples i:nth-child(2) { bottom: 26%; opacity: .65; animation-delay: -1s; }.ocean-ripples i:nth-child(3) { bottom: 52%; opacity: .38; animation-delay: -2s; }
@keyframes ocean-ripple { 50% { translate: -4% 2%; scale: 1.04; opacity: .35; } }
.ship-route { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ship-route path { fill: none; stroke: var(--champagne); stroke-width: 1.1; stroke-dasharray: 1; stroke-dashoffset: var(--route-offset); opacity: .72; }
.ship-route circle { fill: var(--night); stroke: var(--champagne); stroke-width: 1.5; }
.ship-copy { position: absolute; z-index: 5; top: 23vh; left: 6vw; width: min(57vw, 900px); opacity: var(--ship-copy-opacity); translate: 0 var(--ship-copy-y, 0px); }
.ship-copy > div { display: grid; grid-template-columns: .65fr 1fr auto; gap: 2rem; align-items: start; max-width: 900px; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line-strong); }
.kinetic-ship.is-active .ship-cinema img, .kinetic-ship.is-active .moving-ship { will-change: transform; }
.kinetic-ship.is-active .ship-wake i, .kinetic-ship.is-active .moving-ship::after, .kinetic-ship.is-active .ocean-ripples i { animation-play-state: running; }

.market-scene { --focus-x: 31%; --focus-y: 73%; --focus-size: 0px; --focus-opacity: 0; --market-copy-opacity: 0; --obj-1: 0; --obj-2: 0; --obj-3: 0; --obj-4: 0; background: #0d1110; }
.market-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; contain: paint; }
.market-scene__image { position: absolute; top: 10vh; right: -5vw; width: 66vw; height: 84vh; overflow: hidden; clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%); }
.market-scene__image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.market-image--base { z-index: 0; }
.market-image__veil { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(13,17,16,.94), rgba(13,17,16,.64) 36%, rgba(13,17,16,.48)), rgba(4,8,9,.24); }
.market-image--clarity { z-index: 2; opacity: var(--focus-opacity); clip-path: circle(var(--focus-size) at var(--focus-x) var(--focus-y)); }
.market-object { position: absolute; z-index: 3; left: var(--object-x); top: var(--object-y); width: clamp(72px, 8vw, 128px); aspect-ratio: 1; opacity: var(--object-o); translate: -50% -50%; scale: var(--object-o); }
.market-object i { position: absolute; inset: 0; border: 1px solid rgba(201,170,114,.78); border-radius: 50%; box-shadow: 0 0 0 5px rgba(201,170,114,.08); }
.market-object i::before, .market-object i::after { position: absolute; background: var(--champagne); content: ""; }.market-object i::before { top: 50%; left: -9px; width: 18px; height: 1px; }.market-object i::after { top: -9px; left: 50%; width: 1px; height: 18px; }
.market-object span { position: absolute; top: calc(100% + .8rem); left: 50%; padding: .4rem .55rem; border: 1px solid rgba(201,170,114,.3); background: rgba(8,11,13,.78); color: var(--champagne); font: .43rem/1 var(--mono); letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; translate: -50% 0; }
.market-object--architecture { --object-x: 31%; --object-y: 73%; --object-o: var(--obj-1); }
.market-object--markets { --object-x: 47%; --object-y: 68%; --object-o: var(--obj-2); }
.market-object--mobility { --object-x: 59%; --object-y: 72%; --object-o: var(--obj-3); }
.market-object--product { --object-x: 72%; --object-y: 73%; --object-o: var(--obj-4); }
.market-scene__rings { position: absolute; z-index: 3; right: 5vw; bottom: 8vh; width: min(34vw, 520px); aspect-ratio: 1; opacity: .7; }
.market-scene__rings i { position: absolute; inset: 0; border: 1px solid rgba(201,170,114,.3); border-radius: 50%; }.market-scene__rings i:nth-child(2) { inset: 18%; }.market-scene__rings i:nth-child(3) { inset: 38%; background: rgba(201,170,114,.08); }
.market-scene__copy { position: absolute; z-index: 5; top: 22vh; left: 5vw; width: min(52vw, 920px); opacity: var(--market-copy-opacity); translate: 0 var(--market-copy-y, 0px); }
.market-scene__copy > p { margin-bottom: 2rem; color: var(--champagne); font: .55rem/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }.market-scene__copy > p span { margin-right: 1rem; }
.market-scene__copy > div { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: end; max-width: 700px; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid var(--line-strong); }
.market-scene__copy > div a { padding-bottom: .5rem; border-bottom: 1px solid var(--champagne); color: var(--champagne); font: .52rem/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.market-progress { z-index: 6; }
.market-scene.is-active .market-image--clarity { will-change: clip-path, opacity; }

.scene-method { position: relative; min-height: 100svh; padding: clamp(7rem, 12vw, 13rem) 5vw; background: var(--paper); color: #121416; content-visibility: auto; contain-intrinsic-size: 1000px; }
.scene-method header { display: grid; grid-template-columns: .35fr 1fr; gap: 5vw; align-items: start; }
.scene-method header > p { color: #8d5e28; font: .54rem/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.scene-method h2 em { color: #8d5e28; }
.scene-method ol { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0; margin: 8rem 0 0; border-top: 1px solid rgba(18,20,22,.35); list-style: none; }
.scene-method li { position: relative; min-height: 330px; padding: 1.6rem; border-right: 1px solid rgba(18,20,22,.18); }
.scene-method li:first-child { border-left: 1px solid rgba(18,20,22,.18); }
.scene-method li span { color: #8d5e28; font: .55rem/1 var(--mono); }.scene-method li i { display: block; width: 8px; aspect-ratio: 1; margin-block: 5rem 2rem; background: #8d5e28; rotate: 45deg; }
.scene-method li h3 { font-family: var(--serif); font-size: clamp(1.8rem, 2.4vw, 3rem); font-weight: 400; line-height: 1; }.scene-method li p { max-width: 220px; margin-top: 1.2rem; color: #66635c; font-size: .76rem; }

.scene-contact { position: relative; display: grid; min-height: 100svh; grid-template-columns: 1fr .8fr; gap: 8vw; align-items: center; overflow: hidden; padding: calc(var(--header) + 5rem) 6vw 6rem; background: var(--night); content-visibility: auto; contain-intrinsic-size: 900px; }
.scene-contact__copy { position: relative; z-index: 2; }.scene-contact__copy > p { margin-bottom: 2rem; color: var(--champagne); font: .55rem/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }.scene-contact__copy > span { display: block; max-width: 600px; margin-top: 2.5rem; color: var(--muted); font-size: .88rem; }
.scene-contact__orbit { position: absolute; top: 50%; left: 48%; width: min(60vw, 900px); aspect-ratio: 1; translate: -50% -50%; }
.scene-contact__orbit i { position: absolute; inset: 0; border: 1px solid rgba(201,170,114,.19); border-radius: 50%; }.scene-contact__orbit i:nth-child(2) { inset: 18%; border-style: dashed; animation: rotate-ring 30s linear infinite; animation-play-state: paused; }.scene-contact.is-active .scene-contact__orbit i:nth-child(2) { animation-play-state: running; }.scene-contact__orbit b { position: absolute; top: 50%; left: 50%; color: rgba(201,170,114,.08); font: 300 clamp(5rem, 13vw, 14rem)/1 var(--sans); translate: -50% -50%; }
@keyframes rotate-ring { to { rotate: 360deg; } }
.scene-contact__actions { position: relative; z-index: 2; border-top: 1px solid var(--line-strong); }
.scene-contact__actions a { display: grid; grid-template-columns: 100px 1fr auto; gap: 1rem; align-items: center; min-height: 86px; border-bottom: 1px solid var(--line); transition: padding .4s var(--ease), background .3s ease; }.scene-contact__actions a:hover { padding-inline: 1rem; background: rgba(255,255,255,.035); }.scene-contact__actions span { color: var(--muted); font: .5rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }.scene-contact__actions b { font-size: .85rem; font-weight: 400; }.scene-contact__actions i { color: var(--champagne); font-style: normal; }
.scene-footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 2rem; align-items: center; min-height: 90px; padding-inline: 5vw; border-top: 1px solid var(--line); background: var(--night); color: var(--muted); font: .5rem/1 var(--mono); letter-spacing: .11em; text-transform: uppercase; }.scene-footer a { color: var(--ink); font: 700 .7rem/1 var(--sans); letter-spacing: .18em; }.scene-footer a span { color: var(--champagne); }.scene-footer p:nth-child(2) { justify-self: center; }

/* Each cinematic panel now carries a single, uninterrupted message. */
.villa-copy__detail, .car-copy > div, .ship-copy > div, .market-scene__copy > div { display: block; max-width: 640px; }
.villa-copy__detail p, .car-copy > div p, .ship-copy > div p, .market-scene__copy > div p { margin: 0; }

@media (max-width: 1100px) {
  .scene-header { grid-template-columns: 1fr auto auto; }
  .scene-status { display: none; }
  .scene-hero h1 { font-size: clamp(5rem, 12vw, 9rem); }
  .villa-copy, .ship-copy { width: 70vw; }
  .villa-fold { width: 76vw; }
  .villa-copy__detail, .car-copy > div, .ship-copy > div { grid-template-columns: .7fr 1.3fr; }
  .villa-copy__detail a, .car-copy div a, .ship-copy div a { grid-column: 2; width: max-content; }
  .car-copy { width: 62vw; }
  .moving-car { width: 76vw; }
  .market-scene__image { width: 72vw; opacity: .72; }
}

@media (max-width: 760px) {
  :root { --header: 62px; }
  .scene-header { grid-template-columns: 1fr auto; gap: 1rem; padding-inline: 1rem; }
  .scene-header { backdrop-filter: none; }
  .scene-header nav, .scene-status { display: none; }
  .scene-request { width: 40px; padding: 0; justify-content: center; }.scene-request span { display: none; }
  .scene-hero { align-items: flex-end; padding: calc(var(--header) + 4rem) 1rem 7rem; }
  .scene-hero__index, .scene-hero__coordinates { display: none; }
  .scene-orbit--a { top: 8%; right: -38%; width: 112vw; }.scene-orbit--b { right: 8%; bottom: 14%; width: 62vw; }
  .scene-hero h1 { font-size: clamp(4.6rem, 22vw, 7rem); line-height: .73; }
  .scene-hero__copy > p { margin-bottom: 1.5rem; }
  .scene-hero__copy > div { display: block; margin-top: 2.5rem; }.scene-hero__copy > div p { font-size: .8rem; }.scene-hero__copy > div a { width: max-content; margin-top: 1.8rem; }
  .scene-scroll { bottom: 1.5rem; left: 1rem; }

  .kinetic-track { height: 190svh; }
  .scene-grid { background-size: 48px 48px; }
  .kinetic-index { top: calc(var(--header) + 1.25rem); left: 1rem; }
  .kinetic-progress { right: 1rem; bottom: 1.2rem; grid-template-columns: auto 65px auto; }
  .villa-copy, .ship-copy { top: calc(var(--header) + 4.2rem); left: 1rem; width: calc(100% - 2rem); }
  .villa-copy h2, .car-copy h2, .ship-copy h2 { font-size: clamp(3.35rem, 15vw, 5rem); }
  .villa-copy__detail, .car-copy > div, .ship-copy > div { display: block; margin-top: 1.4rem; padding-top: .8rem; }
  .villa-copy__detail span, .car-copy span, .ship-copy span { display: none; }
  .villa-copy__detail p, .car-copy div p, .ship-copy div p { font-size: .72rem; }
  .villa-copy__detail a, .car-copy div a, .ship-copy div a { display: block; width: max-content; margin-top: .9rem; }
  .villa-fold { right: 4vw; bottom: 18vh; width: 92vw; }
  .villa-fold figcaption { bottom: -2.2rem; font-size: .38rem; }.villa-fold figcaption b { display: none; }

  .car-copy { top: calc(var(--header) + 4rem); right: 1rem; width: calc(100% - 2rem); text-align: left; }
  .car-copy > div { text-align: left; }
  .car-copy { right: .5rem; width: calc(100% - 1rem); padding: .8rem; background: rgba(7, 9, 10, .76); }
  .car-cinema img { object-position: 59% center; }
  .car-shade { background: linear-gradient(0deg, rgba(6,8,9,.92) 5%, rgba(6,8,9,.42) 62%, rgba(6,8,9,.12)); }
  .moving-car { bottom: 13vh; width: 128vw; }
  .speed-lines { bottom: 28vh; }

  .ship-shade { background: linear-gradient(0deg, rgba(3,10,15,.94) 8%, rgba(3,10,15,.6) 60%, rgba(3,10,15,.22)); }
  .ship-cinema img { object-position: 58% center; }
  .moving-ship { top: 8vh; right: -10vw; bottom: auto; width: 94vw; }
  .ship-wake { top: 10%; right: -28%; width: 74%; }.ocean-ripples { right: -7vw; bottom: 40vh; width: 104vw; }
  .ship-copy { top: auto; bottom: 14vh; }
  .ship-route { opacity: .6; }

  .market-scene__image { top: var(--header); right: -30vw; width: 130vw; height: 63vh; clip-path: none; opacity: 1; }
  .market-image__veil { background: linear-gradient(0deg, rgba(13,17,16,.9), rgba(13,17,16,.24) 68%, rgba(13,17,16,.15)); }
  .market-object { width: 68px; }.market-object span { display: none; }
  .market-scene__rings { right: -20vw; bottom: 24vh; width: 90vw; }
  .market-scene__copy { top: auto; bottom: 11vh; left: 1rem; width: calc(100% - 2rem); }.market-scene h2 { font-size: clamp(3.7rem, 17vw, 5.5rem); }
  .market-scene__copy > div { display: block; margin-top: 2rem; }.market-scene__copy > div p { font-size: .78rem; }.market-scene__copy > div a { display: block; width: max-content; margin-top: 1.2rem; }

  .scene-method { min-height: auto; padding: 7rem 1rem; }
  .scene-method header { display: block; }.scene-method header > p { margin-bottom: 2rem; }.scene-method h2 { font-size: clamp(3.6rem, 17vw, 5.5rem); }
  .scene-method ol { display: block; margin-top: 4rem; }.scene-method li { display: grid; min-height: 0; grid-template-columns: 42px 1fr; padding: 1.5rem 0; border: 0; border-top: 1px solid rgba(18,20,22,.22); }.scene-method li:first-child { border-left: 0; }.scene-method li i { display: none; }.scene-method li h3 { grid-column: 2; grid-row: 1; font-size: 2rem; }.scene-method li p { grid-column: 2; grid-row: 2; margin-top: .7rem; }

  .scene-contact { display: block; min-height: auto; padding: 8rem 1rem 6rem; }.scene-contact h2 { font-size: clamp(3.8rem, 17vw, 5.6rem); }.scene-contact__orbit { top: 30%; left: 70%; width: 120vw; }.scene-contact__actions { margin-top: 4rem; }.scene-contact__actions a { grid-template-columns: 78px 1fr auto; min-height: 74px; }.scene-contact__actions b { font-size: .7rem; }
  .scene-footer { display: flex; min-height: 110px; flex-direction: column; gap: 1rem; justify-content: center; text-align: center; }.scene-footer p:nth-child(2) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .kinetic-track { height: auto; }
  .kinetic-sticky, .market-sticky { position: relative; min-height: 100svh; }
  .villa-part, .moving-car, .moving-ship, .ship-cinema img, .car-cinema img { transform: none !important; }
  .villa-copy__detail, .car-copy, .ship-copy, .market-scene__copy { opacity: 1 !important; translate: 0 !important; }
  .market-image--clarity { opacity: 1 !important; clip-path: none !important; }
}

@media print {
  .scene-header, .scene-scroll, .kinetic-progress { display: none !important; }
  .kinetic-track { height: auto; break-after: page; }
  .kinetic-sticky, .market-sticky { position: relative; height: 100vh; }
  .villa-part, .moving-car, .moving-ship, .ship-cinema img, .car-cinema img { transform: none !important; }
}
