/* Prestige Web Studio — Immersive Journey V60 */
:root {
  --pws-black: #060707;
  --pws-black-soft: #0b0c0c;
  --pws-ink: #11120f;
  --pws-ivory: #f3eddf;
  --pws-ivory-deep: #ded5c2;
  --pws-gold: #c9a44f;
  --pws-gold-light: #f0d98d;
  --pws-gold-dark: #76591e;
  --pws-line: rgba(218, 188, 111, .25);
  --pws-ease: cubic-bezier(.16, 1, .3, 1);
  --pws-pointer-x: 50vw;
  --pws-pointer-y: 50vh;
}

html { scroll-behavior: smooth; background: var(--pws-black); }
body { overflow-x: hidden; background: var(--pws-black); }

/* New 2027 art direction — same black, ivory and gold signature. */
.header {
  position: fixed !important;
  top: 14px !important;
  left: 18px !important;
  right: 18px !important;
  width: auto !important;
  z-index: 9000 !important;
  border: 1px solid rgba(229, 205, 143, .16) !important;
  border-radius: 2px !important;
  background: rgba(7, 8, 8, .68) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .22) !important;
  transition: background .35s ease, border-color .35s ease, transform .5s var(--pws-ease) !important;
}

.header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: var(--pws-scroll-progress, 0%);
  height: 1px;
  background: linear-gradient(90deg, var(--pws-gold-dark), var(--pws-gold-light));
  box-shadow: 0 0 12px rgba(231, 199, 111, .8);
}

.navbar { min-height: 78px !important; max-width: 1480px !important; }
.brand { transform-origin: left center; transition: transform .45s var(--pws-ease), filter .45s ease; }
.brand:hover { transform: scale(1.025); filter: drop-shadow(0 0 18px rgba(210, 176, 91, .18)); }
.nav-links { gap: clamp(18px, 2.2vw, 38px) !important; }
.nav-links > a:not(.nav-quote) { position: relative; letter-spacing: .12em !important; }
.nav-links > a:not(.nav-quote)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -10px;
  height: 1px;
  background: var(--pws-gold-light);
  transition: right .45s var(--pws-ease);
}
.nav-links > a:not(.nav-quote):hover::after,
.nav-links > a.active:not(.nav-quote)::after { right: 0; }

.hero-home,
.page-hero {
  min-height: 100svh !important;
  padding-top: 116px !important;
  background: var(--pws-black) !important;
}

.hero-home::before,
.page-hero::before {
  inset: 0 !important;
  transform: scale(1.04) !important;
  filter: saturate(.55) contrast(1.12) brightness(.72) !important;
  animation: pwsHeroCamera 17s ease-in-out infinite alternate !important;
}

.hero-home::after,
.page-hero::after {
  background:
    linear-gradient(90deg, rgba(4, 5, 5, .97) 0%, rgba(4, 5, 5, .88) 39%, rgba(4, 5, 5, .36) 72%, rgba(4, 5, 5, .58) 100%),
    linear-gradient(0deg, rgba(4, 5, 5, .94), transparent 48%),
    radial-gradient(circle at 78% 42%, rgba(211, 172, 76, .11), transparent 30%) !important;
}

.hero-home .hero-shade {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(218, 188, 111, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(218, 188, 111, .05) 1px, transparent 1px);
  background-size: 84px 84px;
  mask-image: linear-gradient(90deg, #000, transparent 82%);
}

.hero-inner {
  max-width: 1480px !important;
  padding-top: clamp(80px, 11vh, 150px) !important;
  padding-bottom: clamp(80px, 10vh, 130px) !important;
}

.hero-inner::before {
  content: "PWS";
  position: absolute;
  z-index: -1;
  left: -1.5vw;
  top: 2vh;
  font: 700 clamp(120px, 23vw, 360px)/.8 Arial, sans-serif;
  letter-spacing: -.08em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(221, 189, 108, .075);
  opacity: .86;
  pointer-events: none;
}

.hero-inner .kicker,
.page-hero .kicker {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  letter-spacing: .36em !important;
}
.hero-inner .kicker::before,
.page-hero .kicker::before { content: ""; width: 46px; height: 1px; background: var(--pws-gold); }

.hero-home h1,
.page-hero h1 {
  max-width: 1050px !important;
  margin-top: 28px !important;
  font-size: clamp(68px, 8.2vw, 138px) !important;
  line-height: .88 !important;
  letter-spacing: -.057em !important;
  text-wrap: balance;
  color: var(--pws-ivory) !important;
  text-shadow: 0 24px 80px rgba(0, 0, 0, .48);
}

.hero-lead { max-width: 720px !important; font-size: clamp(17px, 1.2vw, 21px) !important; line-height: 1.72 !important; }
.hero-offer { backdrop-filter: blur(12px); background: rgba(8, 8, 7, .44) !important; }
.hero-actions { gap: 14px !important; }

.btn,
.nav-quote {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 56px;
  transform: translate3d(var(--pws-magnetic-x, 0), var(--pws-magnetic-y, 0), 0);
  transition: transform .42s var(--pws-ease), box-shadow .42s ease, border-color .42s ease !important;
  will-change: transform;
}
.btn::before,
.nav-quote::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -2px;
  background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, .65) 43%, transparent 64%);
  transform: translateX(-150%) skewX(-18deg);
  transition: transform .9s var(--pws-ease);
}
.btn:hover::before,
.nav-quote:hover::before { transform: translateX(150%) skewX(-18deg); }
.btn:hover,
.nav-quote:hover { box-shadow: 0 20px 55px rgba(189, 143, 40, .26), inset 0 0 0 1px rgba(255, 239, 193, .22) !important; }

.gold-orbit { border-color: rgba(223, 190, 107, .32) !important; filter: drop-shadow(0 0 35px rgba(199, 153, 47, .11)); }
.orbit-one { width: min(48vw, 760px) !important; height: min(48vw, 760px) !important; right: -13vw !important; top: 13% !important; animation: pwsOrbit 14s linear infinite !important; }

.trust-strip { position: relative; z-index: 4; background: #0b0c0b !important; border-color: var(--pws-line) !important; }
.trust-grid { max-width: 1480px !important; }
.trust-item { min-height: 150px; padding: 36px 26px !important; border-color: rgba(219, 188, 108, .14) !important; }
.trust-item span { font-size: 12px !important; letter-spacing: .25em; color: var(--pws-gold-light) !important; }
.trust-item p { font-family: Georgia, serif; font-size: clamp(17px, 1.25vw, 22px) !important; }

.section { padding-top: clamp(100px, 11vw, 180px) !important; padding-bottom: clamp(100px, 11vw, 180px) !important; }
.section-heading h2,
.split-heading h2,
.process-copy h2,
.ownership-card h2,
.cta-section h2,
.price-grid h2 {
  font-size: clamp(46px, 5.7vw, 90px) !important;
  line-height: .98 !important;
  letter-spacing: -.047em !important;
  text-wrap: balance;
}
.section-heading > p:last-child,
.split-heading > p { font-size: clamp(17px, 1.25vw, 21px) !important; line-height: 1.75 !important; }
.kicker { letter-spacing: .28em !important; }

.france-section,
.workflow-section,
.why,
.services-section,
.faq-section,
.contact-section { background: var(--pws-ivory) !important; }
.audience-section,
.styles-section { background: #e7dfd0 !important; }
.france-section::before,
.audience-section::before,
.workflow-section::before,
.why::before,
.services-section::before,
.styles-section::before,
.faq-section::before,
.contact-section::before { opacity: .07 !important; filter: grayscale(1) contrast(1.15) !important; }
.france-section::after,
.audience-section::after,
.workflow-section::after,
.why::after,
.services-section::after,
.styles-section::after,
.faq-section::after,
.contact-section::after { background: linear-gradient(125deg, rgba(243, 237, 223, .96), rgba(243, 237, 223, .72)) !important; }

.audience-grid,
.value-grid,
.services-grid { gap: 1px !important; background: rgba(31, 28, 20, .22); border: 1px solid rgba(31, 28, 20, .2); }
.audience-card,
.value-card,
.service-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(247, 241, 228, .86) !important;
  box-shadow: none !important;
  transform: perspective(1000px) rotateX(var(--pws-tilt-x, 0deg)) rotateY(var(--pws-tilt-y, 0deg));
  transform-style: preserve-3d;
  transition: transform .55s var(--pws-ease), background .45s ease, color .45s ease !important;
}
.audience-card:hover,
.value-card:hover,
.service-card:hover { background: var(--pws-black-soft) !important; color: var(--pws-ivory) !important; z-index: 2; }
.audience-card:hover p,
.value-card:hover p,
.service-card:hover p { color: rgba(243, 237, 223, .7) !important; }
.audience-card span,
.value-card .card-nr,
.service-card > p:first-of-type { color: var(--pws-gold-dark) !important; }
.audience-card:hover span,
.value-card:hover .card-nr,
.service-card:hover > p:first-of-type { color: var(--pws-gold-light) !important; }

.dark-section,
.content-section,
.ownership-section,
.process,
.price-band,
.cta-section { background: var(--pws-black) !important; }
.dark-section::after,
.content-section::after,
.ownership-section::after,
.process::after,
.price-band::after,
.cta-section::after { background: linear-gradient(118deg, rgba(5, 6, 6, .98), rgba(5, 6, 6, .7), rgba(5, 6, 6, .95)) !important; }

.content-panel,
.ownership-card {
  border: 1px solid rgba(221, 190, 111, .2) !important;
  background: rgba(11, 12, 12, .72) !important;
  backdrop-filter: blur(14px);
  box-shadow: inset 0 1px rgba(255, 255, 255, .025), 0 30px 90px rgba(0, 0, 0, .25) !important;
}
.content-panel:hover,
.ownership-card:hover { border-color: rgba(231, 200, 119, .52) !important; }

.workflow-list { border-top: 1px solid rgba(30, 27, 19, .28); }
.workflow-step {
  min-height: 120px;
  border-bottom: 1px solid rgba(30, 27, 19, .2) !important;
  background: transparent !important;
  transition: padding .5s var(--pws-ease), background .5s ease !important;
}
.workflow-step:hover { padding-left: 28px !important; background: rgba(202, 166, 77, .07) !important; }
.workflow-step span { font-size: clamp(34px, 4vw, 64px) !important; color: rgba(117, 88, 29, .34) !important; }

.style-tile { filter: saturate(.7) contrast(1.08); border-radius: 0 !important; }
.style-tile::after { background: linear-gradient(0deg, rgba(4, 5, 5, .91), transparent 78%) !important; }
.style-tile:hover { filter: saturate(.9) contrast(1.08); }

.faq-item { border-radius: 0 !important; background: transparent !important; box-shadow: none !important; border-bottom: 1px solid rgba(32, 28, 18, .2) !important; }
.faq-item button { min-height: 92px; }
.faq-item button b { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(99, 72, 19, .32); border-radius: 50%; transition: transform .5s var(--pws-ease), background .4s ease; }
.faq-item.open button b { transform: rotate(135deg); background: var(--pws-gold); color: #090909; }

.contact-grid { gap: 1px !important; background: rgba(35, 29, 16, .22); }
.contact-card,
.form-card { border-radius: 0 !important; box-shadow: none !important; }
.form-card input,
.form-card select,
.form-card textarea { border-radius: 0 !important; border-color: rgba(40, 33, 19, .2) !important; transition: border-color .3s ease, box-shadow .3s ease, background .3s ease; }
.form-card input:focus,
.form-card select:focus,
.form-card textarea:focus { border-color: var(--pws-gold) !important; box-shadow: 0 0 0 4px rgba(196, 154, 54, .1) !important; background: #fffdfa !important; }

.footer { background: #030404 !important; border-top: 1px solid rgba(224, 193, 111, .16) !important; }

/* Scroll choreography. */
.reveal {
  opacity: 0;
  transform: translate3d(0, 52px, 0) scale(.985);
  filter: blur(10px);
  clip-path: inset(0 0 16% 0);
  transition: opacity 1s var(--pws-ease), transform 1.15s var(--pws-ease), filter 1.05s ease, clip-path 1.15s var(--pws-ease) !important;
}
.reveal.visible { opacity: 1; transform: none; filter: none; clip-path: inset(0); }
.hero-inner.reveal { transition-duration: 1.35s !important; }

/* Minimal HUD that gives the page a designed, cinematic frame. */
.pws-journey-hud {
  position: fixed;
  z-index: 8500;
  left: 24px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
  color: rgba(246, 234, 200, .72);
  mix-blend-mode: difference;
  font: 600 9px/1 Arial, sans-serif;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.pws-journey-hud i { display: block; width: 34px; height: 1px; background: currentColor; }

/* Real travel transition: the current page launches into a gold tunnel. */
.pws-voyage {
  position: fixed;
  inset: 0;
  z-index: 20000;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background: #020303;
}
.pws-voyage.is-departing,
.pws-voyage.is-arriving { visibility: visible; opacity: 1; }
.pws-voyage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.pws-voyage__grid {
  position: absolute;
  inset: -50%;
  opacity: 0;
  background-image:
    linear-gradient(rgba(220, 183, 87, .12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(220, 183, 87, .12) 1px, transparent 1px);
  background-size: 72px 72px;
  transform: perspective(500px) rotateX(72deg) translateY(28%) scale(1.8);
  mask-image: radial-gradient(circle, #000 0%, transparent 72%);
}
.pws-voyage.is-departing .pws-voyage__grid { animation: pwsGridRush 1.25s ease-in forwards; }
.pws-voyage.is-arriving .pws-voyage__grid { animation: pwsGridLand 1.15s var(--pws-ease) forwards; }

.pws-voyage__rings { position: absolute; inset: 0; display: grid; place-items: center; perspective: 800px; }
.pws-voyage__rings i {
  position: absolute;
  width: 36vmin;
  height: 36vmin;
  border: 1px solid rgba(236, 207, 131, .7);
  border-radius: 50%;
  opacity: 0;
  box-shadow: 0 0 32px rgba(198, 150, 44, .18), inset 0 0 32px rgba(198, 150, 44, .12);
}
.pws-voyage.is-departing .pws-voyage__rings i { animation: pwsRingRush .9s cubic-bezier(.5, 0, 1, .5) infinite; animation-delay: calc(var(--i) * -.115s); }
.pws-voyage.is-arriving .pws-voyage__rings i { animation: pwsRingLand 1.15s var(--pws-ease) both; animation-delay: calc(var(--i) * .035s); }

.pws-voyage__portal {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10vmin;
  height: 10vmin;
  border: 1px solid #f2dc96;
  border-radius: 50%;
  opacity: 0;
  transform: translate(-50%, -50%) scale(.1);
  box-shadow: 0 0 18px #f2d276, 0 0 70px rgba(211, 165, 55, .75), 0 0 180px rgba(211, 165, 55, .35), inset 0 0 30px #fff6cc;
}
.pws-voyage.is-departing .pws-voyage__portal { animation: pwsPortalOpen 1.18s cubic-bezier(.7, 0, .7, 1) forwards; }
.pws-voyage.is-arriving .pws-voyage__portal { animation: pwsPortalClose 1.12s var(--pws-ease) forwards; }

.pws-voyage__copy {
  position: absolute;
  z-index: 4;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
  color: var(--pws-ivory);
  opacity: 0;
  transform: scale(.8);
}
.pws-voyage__copy small { margin-bottom: 16px; color: var(--pws-gold-light); font: 600 10px/1 Arial, sans-serif; letter-spacing: .44em; text-transform: uppercase; }
.pws-voyage__copy strong { max-width: 88vw; font: 400 clamp(48px, 8vw, 126px)/.9 Georgia, serif; letter-spacing: -.05em; }
.pws-voyage__copy span { display: block; width: 60px; height: 1px; margin: 26px auto 0; background: var(--pws-gold-light); box-shadow: 0 0 18px var(--pws-gold); }
.pws-voyage.is-departing .pws-voyage__copy { animation: pwsCopyTravel 1.12s var(--pws-ease) forwards; }
.pws-voyage.is-arriving .pws-voyage__copy { animation: pwsCopyArrival 1.05s var(--pws-ease) forwards; }

.pws-voyage__vignette {
  position: absolute;
  inset: 0;
  z-index: 5;
  background: radial-gradient(circle at center, transparent 8%, rgba(0, 0, 0, .08) 38%, rgba(0, 0, 0, .88) 100%);
}

.pws-voyage-flash {
  position: fixed;
  z-index: 19000;
  left: var(--x);
  top: var(--y);
  width: 12px;
  height: 12px;
  border: 1px solid #f6dfa0;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  animation: pwsClickPortal .72s var(--pws-ease) forwards;
}
.pws-voyage-flash::before,
.pws-voyage-flash::after { content: ""; position: absolute; left: 50%; top: 50%; width: 130px; height: 1px; background: linear-gradient(90deg, transparent, #f6dfa0, transparent); transform: translate(-50%, -50%); }
.pws-voyage-flash::after { transform: translate(-50%, -50%) rotate(90deg); }

body.pws-voyage-out > .header,
body.pws-voyage-out > main,
body.pws-voyage-out > .footer {
  animation: pwsPageTakeoff 1.18s cubic-bezier(.7, 0, .85, .25) forwards !important;
  transform-origin: center center;
  will-change: transform, filter, opacity;
}
body.pws-voyage-in > .header,
body.pws-voyage-in > main,
body.pws-voyage-in > .footer {
  animation: pwsPageLanding 1.15s var(--pws-ease) both !important;
  will-change: transform, filter, opacity;
}

@keyframes pwsHeroCamera { from { transform: scale(1.04) translate3d(-1%, 0, 0); } to { transform: scale(1.12) translate3d(2%, -1%, 0); } }
@keyframes pwsOrbit { to { transform: rotate(360deg); } }
@keyframes pwsPageTakeoff { 0% { transform: perspective(900px) translateZ(0); filter: blur(0) brightness(1); opacity: 1; } 45% { opacity: .78; } 100% { transform: perspective(900px) translateZ(-720px) scale(.42); filter: blur(18px) brightness(.18); opacity: 0; } }
@keyframes pwsPageLanding { 0% { transform: perspective(900px) translateZ(-620px) scale(.48); filter: blur(20px) brightness(.18); opacity: 0; } 35% { opacity: .55; } 100% { transform: perspective(900px) translateZ(0) scale(1); filter: none; opacity: 1; } }
@keyframes pwsGridRush { 0% { opacity: 0; background-position: 0 0; } 20% { opacity: .7; } 100% { opacity: 0; background-position: 0 520px; transform: perspective(500px) rotateX(72deg) translateY(28%) scale(3.5); } }
@keyframes pwsGridLand { 0% { opacity: .55; transform: perspective(500px) rotateX(72deg) translateY(28%) scale(3.4); } 100% { opacity: 0; transform: perspective(500px) rotateX(72deg) translateY(28%) scale(1.4); } }
@keyframes pwsRingRush { 0% { opacity: 0; transform: translateZ(-700px) scale(.15); } 18% { opacity: .7; } 100% { opacity: 0; transform: translateZ(360px) scale(5); } }
@keyframes pwsRingLand { 0% { opacity: 0; transform: translateZ(340px) scale(5); } 28% { opacity: .6; } 100% { opacity: 0; transform: translateZ(-700px) scale(.1); } }
@keyframes pwsPortalOpen { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.08); } 24% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(22); } }
@keyframes pwsPortalClose { 0% { opacity: 0; transform: translate(-50%, -50%) scale(22); } 22% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.06); } }
@keyframes pwsCopyTravel { 0% { opacity: 0; transform: scale(.72); filter: blur(12px); } 32% { opacity: 1; transform: scale(1); filter: blur(0); } 76% { opacity: 1; } 100% { opacity: 0; transform: scale(1.32); filter: blur(6px); } }
@keyframes pwsCopyArrival { 0% { opacity: 0; transform: scale(1.35); filter: blur(7px); } 28% { opacity: 1; transform: scale(1); filter: blur(0); } 68% { opacity: 1; } 100% { opacity: 0; transform: scale(.78); filter: blur(8px); } }
@keyframes pwsClickPortal { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.1) rotate(0); box-shadow: 0 0 0 rgba(239, 205, 116, 0); } 18% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(8) rotate(45deg); box-shadow: 0 0 40px rgba(239, 205, 116, .5); } }

@media (max-width: 760px) {
  .header { top: 8px !important; left: 8px !important; right: 8px !important; }
  .navbar { min-height: 66px !important; }
  .nav-links { top: 74px !important; left: -1px !important; right: -1px !important; width: auto !important; background: rgba(6, 7, 7, .97) !important; border: 1px solid rgba(222, 190, 108, .2) !important; backdrop-filter: blur(20px); }
  .hero-home, .page-hero { padding-top: 88px !important; min-height: 100svh !important; }
  .hero-inner { padding-top: 82px !important; padding-bottom: 72px !important; }
  .hero-inner::before { top: 10vh; font-size: 46vw; }
  .hero-home h1, .page-hero h1 { font-size: clamp(52px, 15vw, 76px) !important; line-height: .9 !important; }
  .hero-lead { font-size: 16px !important; line-height: 1.65 !important; }
  .hero-actions { display: grid !important; grid-template-columns: 1fr !important; }
  .hero-actions .btn { width: 100% !important; }
  .orbit-one { width: 92vw !important; height: 92vw !important; right: -55vw !important; top: 18% !important; }
  .section { padding-top: 86px !important; padding-bottom: 86px !important; }
  .section-heading h2, .split-heading h2, .process-copy h2, .ownership-card h2, .cta-section h2, .price-grid h2 { font-size: clamp(40px, 12.5vw, 58px) !important; }
  .audience-grid, .value-grid, .services-grid { display: grid !important; grid-template-columns: 1fr !important; }
  .trust-item { min-height: auto; }
  .pws-journey-hud { display: none; }
  .pws-voyage__copy strong { font-size: clamp(48px, 16vw, 76px); }
  .pws-voyage__copy small { letter-spacing: .32em; }
  .pws-voyage__grid { background-size: 48px 48px; }
  .pws-voyage__rings i { width: 54vmin; height: 54vmin; }
}

@media (hover: none), (pointer: coarse) {
  .btn, .nav-quote { transform: none !important; }
  .audience-card, .value-card, .service-card { transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pws-voyage,
  .pws-voyage-flash,
  .pws-journey-hud { display: none !important; }
  body.pws-voyage-out > *,
  body.pws-voyage-in > *,
  .reveal,
  .reveal.visible,
  .hero-home::before,
  .page-hero::before,
  .gold-orbit,
  .btn,
  .nav-quote,
  .audience-card,
  .value-card,
  .service-card { animation: none !important; transition: none !important; transform: none !important; filter: none !important; clip-path: none !important; opacity: 1 !important; }
}

/* V70 — transition professionnelle intégrée au décor de l'ordinateur. */
.pws-studio-transition {
  --scene-origin-x: 75%;
  --scene-origin-y: 53%;
  --scene-shift-x: -25vw;
  --scene-shift-y: -3vh;
  --scene-scale: 4.45;
  position: fixed;
  inset: 0;
  z-index: 20000;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background: #050606;
}

.pws-studio-transition.is-departing,
.pws-studio-transition.is-arriving { visibility: visible; opacity: 1; }

.pws-studio-stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #080909 url("./images/prestige-hero.jpg") center center / cover no-repeat;
  transform-origin: var(--scene-origin-x) var(--scene-origin-y);
  will-change: transform, filter, opacity;
}

.pws-studio-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(4, 5, 5, .64), rgba(4, 5, 5, .04) 58%, rgba(4, 5, 5, .12)),
    radial-gradient(circle at 75% 53%, transparent 0 15%, rgba(3, 4, 4, .08) 36%, rgba(3, 4, 4, .56) 100%);
}

.pws-studio-stage::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  opacity: 0;
  background: radial-gradient(circle at var(--scene-origin-x) var(--scene-origin-y), rgba(255, 240, 194, .4), rgba(202, 159, 54, .08) 12%, transparent 30%);
  mix-blend-mode: screen;
}

.pws-studio-screen {
  position: absolute;
  z-index: 2;
  left: 62.1%;
  top: 38.7%;
  width: 25.2%;
  height: 29%;
  overflow: hidden;
  opacity: 0;
  color: var(--pws-ivory);
  background: #050606;
  border: 1px solid rgba(227, 211, 172, .52);
  border-radius: 1.8% 2.8% 2.2% 1.6%;
  clip-path: polygon(8% 1%, 96% 7%, 94% 96%, 0 88%);
  box-shadow: 0 0 14px rgba(238, 209, 134, .3), inset 0 0 35px rgba(216, 177, 79, .08);
  transform: perspective(700px) rotateY(-1.2deg) rotateZ(.2deg);
  transform-origin: center;
}

.pws-screen-glass {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: .42;
  background: linear-gradient(116deg, transparent 18%, rgba(255, 255, 255, .2) 38%, transparent 52%);
  transform: translateX(-110%);
}

.pws-screen-site {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: 19% 1fr;
  opacity: 0;
  background:
    radial-gradient(circle at 78% 30%, rgba(198, 157, 62, .13), transparent 28%),
    linear-gradient(130deg, #080909, #11110e 64%, #080909);
}

.pws-screen-site header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 7%;
  border-bottom: 1px solid rgba(223, 194, 122, .18);
}
.pws-screen-site header b { color: var(--pws-gold-light); font: 700 clamp(4px, .52vw, 9px)/1 Arial, sans-serif; letter-spacing: .16em; }
.pws-screen-site nav { display: flex; gap: 1.2em; color: rgba(243, 237, 223, .55); font: 600 clamp(3px, .34vw, 6px)/1 Arial, sans-serif; letter-spacing: .1em; }
.pws-screen-site nav span.active { color: var(--pws-gold-light); }
.pws-screen-site main { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-width: 0; padding: 6% 9% 9%; }
.pws-screen-site main small { margin-bottom: 4%; color: var(--pws-gold-light); font: 600 clamp(3px, .37vw, 7px)/1 Arial, sans-serif; letter-spacing: .22em; }
.pws-screen-site main h2 { max-width: 92%; margin: 0; color: var(--pws-ivory); font: 400 clamp(10px, 1.55vw, 27px)/.94 Georgia, serif; letter-spacing: -.04em; }
.pws-screen-site main p { max-width: 72%; margin: 4% 0; color: rgba(243, 237, 223, .62); font: 400 clamp(3px, .42vw, 8px)/1.5 Arial, sans-serif; }
.pws-screen-site main i { display: inline-block; padding: 3% 4%; color: #090a09; background: linear-gradient(110deg, #8b6926, #ead488, #9a752c); font: 700 clamp(3px, .34vw, 6px)/1 Arial, sans-serif; font-style: normal; letter-spacing: .08em; }

.pws-studio-light {
  position: absolute;
  z-index: 4;
  left: 74%;
  top: 52%;
  width: 2px;
  height: 2px;
  opacity: 0;
  border-radius: 50%;
  background: #fff8db;
  box-shadow: 0 0 18px 8px rgba(255, 225, 137, .65), 0 0 80px 40px rgba(201, 155, 48, .28);
}

.pws-studio-caption {
  position: absolute;
  z-index: 7;
  left: 50%;
  bottom: 8%;
  display: flex;
  align-items: center;
  gap: 16px;
  opacity: 0;
  color: var(--pws-ivory);
  transform: translateX(-50%) translateY(18px);
  white-space: nowrap;
}
.pws-studio-caption span { color: rgba(243, 237, 223, .56); font: 600 9px/1 Arial, sans-serif; letter-spacing: .34em; }
.pws-studio-caption strong { font: 500 13px/1 Arial, sans-serif; letter-spacing: .24em; }
.pws-studio-caption i { width: 44px; height: 1px; background: var(--pws-gold-light); box-shadow: 0 0 12px rgba(233, 202, 119, .7); }

.pws-studio-vignette {
  position: absolute;
  z-index: 6;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 72% 52%, transparent 10%, rgba(0, 0, 0, .08) 42%, rgba(0, 0, 0, .62) 100%);
}

.pws-studio-transition.is-departing { animation: pwsStudioOverlayIn 1.74s ease both; }
.pws-studio-transition.is-departing .pws-studio-stage { animation: pwsStudioCameraIn 1.74s cubic-bezier(.68, 0, .22, 1) both; }
.pws-studio-transition.is-departing .pws-studio-stage::after { animation: pwsStudioGlow 1.74s ease both; }
.pws-studio-transition.is-departing .pws-studio-screen { animation: pwsScreenPower 1.74s ease both; }
.pws-studio-transition.is-departing .pws-screen-site { animation: pwsScreenContent 1.74s ease both; }
.pws-studio-transition.is-departing .pws-screen-glass { animation: pwsScreenSweep 1.05s .46s var(--pws-ease) both; }
.pws-studio-transition.is-departing .pws-studio-light { animation: pwsScreenLight 1.74s ease both; }
.pws-studio-transition.is-departing .pws-studio-caption { animation: pwsStudioCaption 1.6s ease both; }

.pws-studio-transition.is-arriving .pws-studio-stage { animation: pwsStudioRelease 1.08s var(--pws-ease) both; }
.pws-studio-transition.is-arriving .pws-studio-screen { opacity: 1; animation: pwsScreenRelease 1.08s var(--pws-ease) both; }
.pws-studio-transition.is-arriving .pws-screen-site { opacity: 1; }
.pws-studio-transition.is-arriving .pws-studio-vignette { animation: pwsVignetteRelease 1.08s ease both; }

body.pws-scene-out > .header,
body.pws-scene-out > main,
body.pws-scene-out > .footer {
  animation: pwsCurrentPageLeave .62s ease both !important;
}
body.pws-scene-in > .header,
body.pws-scene-in > main,
body.pws-scene-in > .footer {
  animation: pwsDestinationPageArrive 1.08s var(--pws-ease) both !important;
}

.pws-scene-tap {
  position: fixed;
  z-index: 19000;
  left: var(--x);
  top: var(--y);
  width: 10px;
  height: 10px;
  pointer-events: none;
  border: 1px solid rgba(246, 222, 157, .9);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: pwsSceneTap .62s var(--pws-ease) forwards;
}

@keyframes pwsStudioOverlayIn {
  0% { opacity: 0; }
  12%, 100% { opacity: 1; }
}
@keyframes pwsStudioCameraIn {
  0% { transform: translate3d(0, 0, 0) scale(1); filter: brightness(.72) saturate(.72); }
  18% { transform: translate3d(0, 0, 0) scale(1.02); filter: brightness(.9) saturate(.8); }
  58% { transform: translate3d(-5vw, -1vh, 0) scale(1.48); filter: brightness(.82) saturate(.86); }
  100% { transform: translate3d(var(--scene-shift-x), var(--scene-shift-y), 0) scale(var(--scene-scale)); filter: brightness(.72) saturate(.9); }
}
@keyframes pwsStudioGlow {
  0%, 22% { opacity: 0; }
  46% { opacity: .72; }
  70% { opacity: .22; }
  100% { opacity: 0; }
}
@keyframes pwsScreenPower {
  0%, 20% { opacity: 0; filter: brightness(0); }
  25% { opacity: .9; filter: brightness(3); transform: perspective(700px) rotateY(-1.2deg) rotateZ(.2deg) scaleY(.015); }
  32% { opacity: 1; filter: brightness(1.7); transform: perspective(700px) rotateY(-1.2deg) rotateZ(.2deg) scaleY(1); }
  100% { opacity: 1; filter: brightness(1); transform: perspective(700px) rotateY(-1.2deg) rotateZ(.2deg) scaleY(1); }
}
@keyframes pwsScreenContent {
  0%, 29% { opacity: 0; transform: scale(1.035); filter: blur(8px); }
  44%, 100% { opacity: 1; transform: scale(1); filter: blur(0); }
}
@keyframes pwsScreenSweep { from { transform: translateX(-110%); } to { transform: translateX(140%); } }
@keyframes pwsScreenLight {
  0%, 22% { opacity: 0; transform: scale(1); }
  28% { opacity: 1; transform: scale(1); }
  46% { opacity: .45; transform: scale(16); }
  100% { opacity: 0; transform: scale(34); }
}
@keyframes pwsStudioCaption {
  0%, 15% { opacity: 0; transform: translateX(-50%) translateY(18px); }
  30%, 67% { opacity: 1; transform: translateX(-50%) translateY(0); }
  92%, 100% { opacity: 0; transform: translateX(-50%) translateY(-8px); }
}
@keyframes pwsStudioRelease {
  0% { opacity: 1; transform: translate3d(var(--scene-shift-x), var(--scene-shift-y), 0) scale(var(--scene-scale)); filter: brightness(.72) saturate(.9); }
  58% { opacity: .9; filter: brightness(1) saturate(1); }
  100% { opacity: 0; transform: translate3d(calc(var(--scene-shift-x) * 1.02), var(--scene-shift-y), 0) scale(calc(var(--scene-scale) * 1.08)); filter: brightness(1.1) blur(5px); }
}
@keyframes pwsScreenRelease {
  0% { opacity: 1; filter: brightness(1); }
  64% { opacity: .78; filter: brightness(1.12); }
  100% { opacity: 0; filter: brightness(1.25) blur(2px); }
}
@keyframes pwsVignetteRelease { from { opacity: 1; } to { opacity: 0; } }
@keyframes pwsCurrentPageLeave { from { opacity: 1; filter: blur(0); transform: scale(1); } to { opacity: 0; filter: blur(4px); transform: scale(1.018); } }
@keyframes pwsDestinationPageArrive { 0% { opacity: 0; filter: blur(8px); transform: scale(1.035); } 45% { opacity: .28; } 100% { opacity: 1; filter: none; transform: scale(1); } }
@keyframes pwsSceneTap { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.2); box-shadow: 0 0 0 rgba(236, 203, 118, 0); } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -50%) scale(5.5); box-shadow: 0 0 30px rgba(236, 203, 118, .44); } }

@media (max-width: 760px) {
  .pws-studio-transition {
    --scene-origin-x: 82%;
    --scene-origin-y: 53%;
    --scene-shift-x: -65vw;
    --scene-shift-y: -3vh;
    --scene-scale: 3.2;
  }
  .pws-studio-stage { background-position: 62% center; }
  .pws-studio-stage::before { background: radial-gradient(circle at 82% 53%, transparent 0 15%, rgba(3, 4, 4, .1) 38%, rgba(3, 4, 4, .58) 100%); }
  .pws-studio-screen { left: 55%; top: 38.7%; width: 75%; height: 29%; }
  .pws-studio-light { left: 82%; top: 52%; }
  .pws-studio-caption { bottom: 10%; gap: 10px; }
  .pws-studio-caption span { font-size: 7px; letter-spacing: .24em; }
  .pws-studio-caption strong { font-size: 10px; letter-spacing: .17em; }
  .pws-studio-caption i { width: 24px; }
  .pws-screen-site header { width: 42%; margin-left: 29%; box-sizing: border-box; }
  .pws-screen-site main { width: 42%; margin-left: 29%; box-sizing: border-box; }
  .pws-screen-site header b { font-size: 5px; }
  .pws-screen-site nav { gap: .65em; font-size: 3px; }
  .pws-screen-site main small { font-size: 3.7px; }
  .pws-screen-site main h2 { max-width: 100%; font-size: 12px; }
  .pws-screen-site main p { max-width: 100%; font-size: 3.8px; }
  .pws-screen-site main i { font-size: 3.4px; }
  @keyframes pwsStudioCameraIn {
    0% { transform: translate3d(0, 0, 0) scale(1); filter: brightness(.72) saturate(.72); }
    18% { transform: translate3d(0, 0, 0) scale(1.02); filter: brightness(.9) saturate(.8); }
    58% { transform: translate3d(-8vw, -1vh, 0) scale(1.5); filter: brightness(.82) saturate(.86); }
    100% { transform: translate3d(var(--scene-shift-x), var(--scene-shift-y), 0) scale(var(--scene-scale)); filter: brightness(.72) saturate(.9); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .pws-studio-transition,
  .pws-scene-tap { display: none !important; }
  body.pws-scene-out > *,
  body.pws-scene-in > * { animation: none !important; transform: none !important; filter: none !important; opacity: 1 !important; }
}

/* V80 — cadrage mathématique de l'écran et rendu pleine résolution. */
.pws-studio-transition {
  --screen-x: 60vw;
  --screen-y: 38vh;
  --screen-scale-x: .25;
  --screen-scale-y: .29;
  --camera-scale: 4;
  --camera-shift-x: -240vw;
  --camera-shift-y: -160vh;
}

.pws-studio-stage {
  background-position: var(--scene-position-x, 50%) center;
  transform-origin: 0 0 !important;
}

.pws-studio-screen {
  position: absolute !important;
  inset: 0 !important;
  left: 0 !important;
  top: 0 !important;
  width: var(--preview-width, 100vw) !important;
  height: var(--preview-height, 100vh) !important;
  border-radius: 0 !important;
  transform-origin: 0 0 !important;
  transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), var(--screen-scale-y));
  clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  will-change: transform, clip-path, opacity, filter;
}

.pws-screen-site {
  display: block !important;
  opacity: 1;
  background:
    radial-gradient(circle at 82% 24%, rgba(196, 151, 46, .15), transparent 28%),
    linear-gradient(128deg, #070808, #10110e 66%, #070808) !important;
}

.pws-screen-site::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image:
    linear-gradient(rgba(220, 188, 108, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(220, 188, 108, .08) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(90deg, #000, transparent 80%);
}

.pws-screen-site header {
  position: relative;
  z-index: 2;
  width: auto !important;
  height: 12vh;
  margin: 0 !important;
  padding: 0 6vw !important;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(226, 196, 120, .19);
}
.pws-screen-site header b { font-size: clamp(14px, 1.35vw, 22px) !important; letter-spacing: .2em; }
.pws-screen-site nav { gap: clamp(18px, 3vw, 48px) !important; font-size: clamp(9px, .72vw, 12px) !important; letter-spacing: .14em; }

.pws-screen-site main {
  position: relative;
  z-index: 2;
  width: min(900px, 78vw) !important;
  height: calc(100% - 12vh);
  margin: 0 !important;
  padding: 8vh 7vw 9vh !important;
  box-sizing: border-box;
  justify-content: center;
}
.pws-screen-site main small { margin-bottom: 2.2vh; font-size: clamp(10px, .8vw, 14px) !important; letter-spacing: .32em; }
.pws-screen-site main h2 { max-width: 900px !important; font-size: clamp(52px, 7.2vw, 118px) !important; line-height: .9 !important; letter-spacing: -.055em; }
.pws-screen-site main p { max-width: 690px !important; margin: 3vh 0 !important; font-size: clamp(15px, 1.25vw, 21px) !important; line-height: 1.55 !important; }
.pws-screen-site main i { padding: 17px 22px !important; font-size: clamp(9px, .72vw, 12px) !important; letter-spacing: .12em; }

.pws-studio-transition.is-departing .pws-studio-stage {
  animation: pwsStudioCameraExact 1.74s cubic-bezier(.7, 0, .2, 1) both !important;
}
.pws-studio-transition.is-departing .pws-studio-screen {
  animation: pwsScreenMorphExact 1.74s cubic-bezier(.68, 0, .18, 1) both !important;
}
.pws-studio-transition.is-departing .pws-screen-site {
  animation: pwsScreenSiteWake 1.74s ease both !important;
}
.pws-studio-transition.is-arriving .pws-studio-stage {
  transform: translate3d(var(--camera-shift-x), var(--camera-shift-y), 0) scale(var(--camera-scale)) !important;
  animation: pwsExactStageRelease 1.08s var(--pws-ease) both !important;
}
.pws-studio-transition.is-arriving .pws-studio-screen {
  transform: none;
  clip-path: inset(0);
  opacity: 1;
  animation: pwsExactScreenRelease 1.08s var(--pws-ease) both !important;
}
.pws-studio-transition.is-arriving .pws-screen-site { opacity: 1; animation: none !important; }

@keyframes pwsStudioCameraExact {
  0% { transform: translate3d(0, 0, 0) scale(1); filter: brightness(.72) saturate(.72); }
  /* L'image reste parfaitement fixe pendant l'allumage : l'interface est donc
     réellement inscrite dans la dalle, sans dérive entre deux animations. */
  18% { transform: translate3d(0, 0, 0) scale(1); filter: brightness(.9) saturate(.8); }
  47% { transform: translate3d(0, 0, 0) scale(1); filter: brightness(.9) saturate(.82); }
  100% { transform: translate3d(var(--camera-shift-x), var(--camera-shift-y), 0) scale(var(--camera-scale)); filter: brightness(.66) saturate(.88); }
}
@keyframes pwsScreenMorphExact {
  0%, 18% {
    opacity: 0;
    filter: brightness(0);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), .008);
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  25% {
    opacity: 1;
    filter: brightness(2.2);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), var(--screen-scale-y));
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  47% {
    opacity: 1;
    filter: brightness(1);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), var(--screen-scale-y));
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  100% {
    opacity: 1;
    filter: brightness(1);
    transform: translate3d(0, 0, 0) scale(1, 1);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
@keyframes pwsScreenSiteWake {
  0%, 19% { opacity: 0; }
  28% { opacity: 1; }
  100% { opacity: 1; }
}
@keyframes pwsExactStageRelease {
  0% { opacity: 1; filter: brightness(.66) saturate(.88); }
  100% { opacity: 0; filter: brightness(1) blur(4px); }
}
@keyframes pwsExactScreenRelease {
  0%, 22% { opacity: 1; filter: none; transform: none; }
  100% { opacity: 0; filter: blur(5px); transform: scale(1.018); }
}

@media (max-width: 760px) {
  .pws-studio-transition.is-departing .pws-studio-screen {
    animation-name: pwsScreenMorphMobile !important;
  }
  .pws-screen-site header { height: 76px; padding: 0 22px !important; }
  .pws-screen-site header b { font-size: 14px !important; }
  .pws-screen-site nav { gap: 28px !important; font-size: 9px !important; }
  .pws-screen-site main {
    width: 820px !important;
    height: calc(100% - 76px);
    padding: 82px 70px 64px !important;
    justify-content: center;
  }
  .pws-screen-site main small { margin-bottom: 16px; font-size: 9px !important; line-height: 1.4; }
  .pws-screen-site main h2 { max-width: 760px !important; font-size: 68px !important; line-height: .92 !important; }
  .pws-screen-site main p { max-width: 620px !important; margin: 24px 0 !important; font-size: 16px !important; line-height: 1.55 !important; }
  .pws-screen-site main i { padding: 15px 18px !important; font-size: 9px !important; }
  .pws-studio-caption { z-index: 9; }
}

@keyframes pwsScreenMorphMobile {
  0%, 18% {
    opacity: 0;
    filter: brightness(0);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), .008);
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  25% {
    opacity: 1;
    filter: brightness(2.2);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), var(--screen-scale-y));
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  52% {
    opacity: 1;
    filter: brightness(1);
    transform: translate3d(var(--screen-x), var(--screen-y), 0) scale(var(--screen-scale-x), var(--screen-scale-y));
    clip-path: polygon(4% 0, 99% 3%, 97% 100%, 0 94%);
  }
  100% {
    opacity: 1;
    filter: brightness(1);
    transform: translate3d(var(--screen-final-x), var(--screen-final-y), 0) scale(var(--screen-final-scale));
    clip-path: inset(0);
  }
}

/* V92 — voyage continu : la dalle reste visible jusqu'à la vraie page. */
.pws-portal {
  --scene-position-x: 50%;
  --screen-center-x: 75vw;
  --screen-center-y: 52vh;
  --screen-x: 62vw;
  --screen-y: 39vh;
  --preview-width: 100vw;
  --preview-height: 100vh;
  --screen-scale-x: .26;
  --screen-scale-y: .29;
  --screen-matrix: matrix3d(.26,0,0,0,0,.29,0,0,0,0,1,0,62vw,39vh,0,1);
  --camera-scale: 3.6;
  --camera-shift-x: -220vw;
  --camera-shift-y: -135vh;
  --arrival-scale: 3.76;
  --arrival-shift-x: -230vw;
  --arrival-shift-y: -142vh;
  position: fixed;
  z-index: 30000;
  inset: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  background: transparent;
  isolation: isolate;
}

.pws-portal.is-leaving,
.pws-portal.is-arriving { visibility: visible; }

.pws-portal-scene {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  background: #070807 url("./images/prestige-hero.jpg") var(--scene-position-x) center / cover no-repeat;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: 0 0;
}

.pws-portal-scene::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 4, 4, .48), rgba(3, 4, 4, .03) 61%, rgba(3, 4, 4, .08)),
    radial-gradient(circle at var(--screen-center-x) var(--screen-center-y), transparent 0 17%, rgba(3, 4, 4, .04) 34%, rgba(3, 4, 4, .45) 100%);
}

.pws-portal-screen {
  position: absolute;
  z-index: 3;
  left: 0;
  top: 0;
  width: var(--preview-width);
  height: var(--preview-height);
  overflow: hidden;
  opacity: 0;
  color: #f3eddf;
  background: #070807;
  border-radius: 8px;
  transform: var(--screen-matrix);
  transform-origin: 0 0;
  backface-visibility: hidden;
  contain: layout paint style;
}

.pws-portal-screen-ui {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 27%, rgba(194, 148, 43, .16), transparent 28%),
    linear-gradient(124deg, #070807, #11120f 64%, #070807);
}

.pws-portal-screen-ui::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .22;
  background-image:
    linear-gradient(rgba(222, 190, 107, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(222, 190, 107, .08) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(90deg, #000, transparent 82%);
  mask-image: linear-gradient(90deg, #000, transparent 82%);
}

.pws-portal-screen-ui header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 12%;
  padding: 0 6%;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(225, 195, 119, .17);
}

.pws-portal-screen-ui header b {
  color: #ead488;
  font: 700 clamp(13px, 1.25vw, 20px)/1 Arial, sans-serif;
  letter-spacing: .2em;
}

.pws-portal-screen-ui nav {
  display: flex;
  gap: clamp(20px, 3vw, 48px);
  color: rgba(243, 237, 223, .48);
  font: 600 clamp(8px, .7vw, 12px)/1 Arial, sans-serif;
  letter-spacing: .14em;
}

.pws-portal-screen-ui nav span.active { color: #ead488; }

.pws-portal-screen-ui main {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: min(900px, 78%);
  height: 88%;
  padding: 6% 7% 7%;
  box-sizing: border-box;
}

.pws-portal-screen-ui main small {
  margin-bottom: 2.2%;
  color: #ddbd69;
  font: 600 clamp(9px, .8vw, 13px)/1.2 Arial, sans-serif;
  letter-spacing: .3em;
}

.pws-portal-screen-ui main h2 {
  max-width: 900px;
  margin: 0;
  color: #f3eddf;
  font: 400 clamp(52px, 6.8vw, 108px)/.91 Georgia, serif;
  letter-spacing: -.052em;
}

.pws-portal-screen-ui main p {
  max-width: 660px;
  margin: 2.6% 0;
  color: rgba(243, 237, 223, .62);
  font: 400 clamp(14px, 1.18vw, 20px)/1.55 Arial, sans-serif;
}

.pws-portal-screen-ui main i {
  display: inline-block;
  padding: 15px 20px;
  color: #090a09;
  background: linear-gradient(110deg, #8b6926, #ead488, #9a752c);
  font: 700 clamp(9px, .7vw, 12px)/1 Arial, sans-serif;
  font-style: normal;
  letter-spacing: .12em;
}

.pws-portal-sheen {
  position: absolute;
  z-index: 4;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 18%, rgba(255, 247, 218, .2) 39%, transparent 55%);
  transform: translateX(-115%);
}

.pws-portal-glow {
  position: absolute;
  z-index: 2;
  left: var(--screen-center-x);
  top: var(--screen-center-y);
  width: 2px;
  height: 2px;
  opacity: 0;
  border-radius: 50%;
  background: #fff5cd;
  box-shadow: 0 0 22px 10px rgba(255, 226, 141, .54), 0 0 100px 56px rgba(191, 143, 36, .2);
}

.pws-portal-caption {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 7%;
  display: flex;
  align-items: center;
  gap: 15px;
  opacity: 0;
  color: #f3eddf;
  transform: translateX(-50%) translateY(12px);
  white-space: nowrap;
}

.pws-portal-caption span {
  color: rgba(243, 237, 223, .48);
  font: 600 8px/1 Arial, sans-serif;
  letter-spacing: .32em;
}

.pws-portal-caption strong {
  font: 600 11px/1 Arial, sans-serif;
  letter-spacing: .24em;
}

.pws-portal-caption i {
  width: 38px;
  height: 1px;
  background: #dec174;
  box-shadow: 0 0 12px rgba(233, 202, 119, .55);
}

.pws-portal-focus,
.pws-portal-grain,
.pws-portal-shutter {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.pws-portal-focus {
  z-index: 4;
  opacity: 0;
  background: radial-gradient(circle at var(--screen-center-x) var(--screen-center-y), transparent 0 14%, rgba(2, 3, 3, .05) 35%, rgba(2, 3, 3, .68) 100%);
}

.pws-portal-grain {
  z-index: 6;
  display: none;
  opacity: 0;
  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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.pws-portal-shutter {
  display: none !important;
}

.pws-portal.is-leaving .pws-portal-scene {
  will-change: transform, opacity;
  animation: pwsPortalCamera 1.66s cubic-bezier(.68, 0, .16, 1) both;
}

.pws-portal.is-leaving .pws-portal-screen {
  animation: pwsPortalScreenPower 1.66s ease both;
}

.pws-portal.is-leaving .pws-portal-screen-ui {
  animation: pwsPortalUiWake 1.66s cubic-bezier(.22, .75, .18, 1) both;
}

.pws-portal.is-leaving .pws-portal-sheen {
  animation: pwsPortalSheen 1.66s cubic-bezier(.22, .75, .18, 1) both;
}

.pws-portal.is-leaving .pws-portal-glow {
  animation: pwsPortalGlow 1.66s ease both;
}

.pws-portal.is-leaving .pws-portal-caption {
  animation: pwsPortalCaption 1.66s ease both;
}

.pws-portal.is-leaving .pws-portal-focus {
  animation: pwsPortalFocus 1.66s ease both;
}

.pws-portal.is-leaving .pws-portal-grain {
  animation: pwsPortalGrain 1.66s ease both;
}

.pws-portal.is-arriving .pws-portal-scene {
  will-change: transform, opacity;
  transform: translate3d(var(--camera-shift-x), var(--camera-shift-y), 0) scale(var(--camera-scale));
  animation: pwsPortalArrivalScene .92s cubic-bezier(.2, .72, .2, 1) both;
}

.pws-portal.is-arriving .pws-portal-screen { opacity: 1; }
.pws-portal.is-arriving .pws-portal-screen-ui { opacity: 1; clip-path: inset(0); }
.pws-portal.is-arriving .pws-portal-grain { animation: pwsPortalArrivalGrain .92s ease both; }

body.pws-portal-page-out > .header,
body.pws-portal-page-out > main,
body.pws-portal-page-out > .footer {
  animation: pwsPortalPageOut .34s ease both !important;
}

body.pws-portal-page-in > .header,
body.pws-portal-page-in > main,
body.pws-portal-page-in > .footer {
  animation: pwsPortalPageIn .92s cubic-bezier(.2, .72, .2, 1) both !important;
}

@keyframes pwsPortalCamera {
  0% { opacity: 0; transform: translate3d(0, 0, 0) scale(1); }
  9% { opacity: 1; }
  23% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  100% { opacity: 1; transform: translate3d(var(--camera-shift-x), var(--camera-shift-y), 0) scale(var(--camera-scale)); }
}

@keyframes pwsPortalScreenPower {
  0%, 13% { opacity: 0; filter: brightness(0); }
  16% { opacity: .92; filter: brightness(3); }
  21%, 100% { opacity: 1; filter: brightness(1); }
}

@keyframes pwsPortalUiWake {
  0%, 13% { opacity: 0; clip-path: inset(49.8% 0); transform: scale(1.012); }
  16% { opacity: .95; clip-path: inset(49.3% 0); }
  22% { opacity: 1; clip-path: inset(0); transform: scale(1); }
  100% { opacity: 1; clip-path: inset(0); transform: scale(1); }
}

@keyframes pwsPortalSheen {
  0%, 24% { opacity: 0; transform: translateX(-115%); }
  31% { opacity: .35; }
  58% { opacity: 0; transform: translateX(125%); }
  100% { opacity: 0; transform: translateX(125%); }
}

@keyframes pwsPortalGlow {
  0%, 13% { opacity: 0; transform: scale(1); }
  17% { opacity: .9; }
  40% { opacity: .28; transform: scale(14); }
  100% { opacity: 0; transform: scale(30); }
}

@keyframes pwsPortalCaption {
  0%, 13% { opacity: 0; transform: translateX(-50%) translateY(12px); }
  23%, 63% { opacity: 1; transform: translateX(-50%) translateY(0); }
  79%, 100% { opacity: 0; transform: translateX(-50%) translateY(-6px); }
}

@keyframes pwsPortalFocus {
  0%, 19% { opacity: 0; }
  50% { opacity: .34; }
  76% { opacity: .22; }
  92%, 100% { opacity: 0; }
}

@keyframes pwsPortalGrain {
  0% { opacity: 0; }
  18%, 88% { opacity: .04; }
  100% { opacity: .015; }
}

@keyframes pwsPortalArrivalScene {
  0%, 18% {
    opacity: 1;
    transform: translate3d(var(--camera-shift-x), var(--camera-shift-y), 0) scale(var(--camera-scale));
  }
  64% { opacity: .48; }
  100% {
    opacity: 0;
    transform: translate3d(var(--arrival-shift-x), var(--arrival-shift-y), 0) scale(var(--arrival-scale));
  }
}

@keyframes pwsPortalArrivalGrain { 0% { opacity: .018; } 100% { opacity: 0; } }
@keyframes pwsPortalPageOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(1.004); } }
@keyframes pwsPortalPageIn {
  0%, 14% { opacity: 0; transform: scale(1.012); }
  58% { opacity: .54; }
  100% { opacity: 1; transform: scale(1); }
}

@media (max-width: 760px) and (orientation: portrait) {
  .pws-portal-screen-ui header { height: 82px; padding: 0 58px; }
  .pws-portal-screen-ui header b { font-size: 14px; }
  .pws-portal-screen-ui nav { gap: 30px; font-size: 9px; }
  .pws-portal-screen-ui main {
    width: 820px;
    height: 623px;
    padding: 70px 68px 60px;
  }
  .pws-portal-screen-ui main small { margin-bottom: 18px; font-size: 10px; }
  .pws-portal-screen-ui main h2 { max-width: 760px; font-size: 68px; }
  .pws-portal-screen-ui main p { max-width: 620px; margin: 22px 0; font-size: 16px; }
  .pws-portal-screen-ui main i { padding: 15px 18px; font-size: 9px; }
  .pws-portal-caption { bottom: 8%; gap: 10px; }
  .pws-portal-caption span { font-size: 7px; letter-spacing: .24em; }
  .pws-portal-caption strong { font-size: 9px; letter-spacing: .18em; }
  .pws-portal-caption i { width: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .pws-portal { display: none !important; }
  body.pws-portal-page-out > *,
  body.pws-portal-page-in > * {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

/* V94 — révélation immersive des vraies pages, avec repli progressif. */
@view-transition { navigation: none; }

/* Captures du vrai viewport : aucune animation de la hauteur complète du main. */
::view-transition { pointer-events: none; }
::view-transition-group(root) { animation-duration: .7s; }
::view-transition-old(root), ::view-transition-new(root) { mix-blend-mode: normal; }
::view-transition-old(root) {
  animation: pwsViewportRecede .7s cubic-bezier(.76, 0, .24, 1) both;
}
::view-transition-new(root) {
  animation: pwsViewportReveal .7s cubic-bezier(.76, 0, .24, 1) both;
}
@keyframes pwsViewportRecede {
  to { transform: translateX(-6%) scale(.98); }
}
@keyframes pwsViewportReveal {
  from { clip-path: inset(0 0 0 100%); transform: translateX(5%) scale(1.035); }
  to { clip-path: inset(0); transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  body > .header { view-transition-name: pws-header; }
}
::view-transition-group(pws-header) { animation-duration: .7s; }
::view-transition-old(pws-header) { animation: none; opacity: 0; }
::view-transition-new(pws-header) { animation: none; }
@media (max-width: 760px) {
  @keyframes pwsViewportRecede { to { transform: translateX(-3%); } }
  @keyframes pwsViewportReveal {
    from { clip-path: inset(0 0 0 100%); transform: translateX(3%); }
    to { clip-path: inset(0); transform: none; }
  }
}

.nav-links a:focus-visible {
  outline: 2px solid var(--pws-gold-light);
  outline-offset: 7px;
  border-radius: 2px;
}

html.pws-nav-ready .hero-home .reveal,
html.pws-nav-ready .page-hero .reveal {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

html.pws-nav-leaving main,
html.pws-nav-arriving > body > main {
  will-change: opacity, transform;
  transform-origin: center top;
}

html.pws-nav-leaving main {
  pointer-events: none;
  animation: pwsNavContentOut .3s cubic-bezier(.4, 0, 1, 1) both;
}

html.pws-nav-arriving > body > main {
  animation: pwsNavContentIn .72s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes pwsNavContentOut {
  from { opacity: 1; transform: translate3d(0, 0, 0); }
  to { opacity: .7; transform: translate3d(-1%, 0, 0); }
}

@keyframes pwsNavContentIn {
  from { clip-path: inset(0 0 0 100%); transform: none; }
  to { clip-path: inset(0); transform: none; }
}

.pws-nav-snapshot {
  position: fixed;
  inset: 0;
  z-index: 8500;
  overflow: hidden;
  pointer-events: none;
  background: var(--pws-black);
  contain: layout paint;
  animation: pwsSnapshotExit .72s cubic-bezier(.16, 1, .3, 1) both;
}
.pws-nav-snapshot > main {
  transform-origin: center top;
  animation: pwsSnapshotDepth .72s cubic-bezier(.16, 1, .3, 1) both;
}
.pws-nav-snapshot .reveal { opacity: 1; transform: none; transition: none; }
@keyframes pwsSnapshotExit {
  from { clip-path: inset(0); }
  to { clip-path: inset(0 100% 0 0); }
}
@keyframes pwsSnapshotDepth { to { transform: translateX(-2%) scale(1.02); } }

html.pws-nav-arriving .hero-home::before,
html.pws-nav-arriving .page-hero::before {
  animation: pwsArrivalScenery .9s cubic-bezier(.16, 1, .3, 1) both !important;
}
@keyframes pwsArrivalScenery { from { transform: scale(1.1); } to { transform: scale(1.04); } }


@media (prefers-reduced-motion: reduce) {
  .pws-nav-snapshot { display: none !important; }
  @view-transition { navigation: none; }
  html.pws-nav-leaving main,
  html.pws-nav-arriving main {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* V96 — scène cinématographique : photo existante, plans séparés et vrais titres. */
html.pws-nav-arriving > body > main { animation: none; }

.pws-journey-visual {
  position: fixed;
  z-index: 8600;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background: #080909;
  transform-origin: 70% 50%;
  animation: pwsStudioScene 1.5s cubic-bezier(.65, 0, .2, 1) both;
  will-change: transform, clip-path, opacity;
}
.pws-journey-visual::before {
  content: '';
  position: absolute;
  inset: -3%;
  background: url('./images/prestige-hero.jpg') 58% 50% / cover no-repeat;
  animation: pwsStudioLens 1.5s cubic-bezier(.2, .7, .2, 1) both;
  will-change: transform;
}
.pws-journey-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4,5,5,.4), transparent 65%),
    linear-gradient(0deg, rgba(4,5,5,.35), transparent 60%);
  box-shadow: inset 0 0 0 1px rgba(224,196,127,.18);
}
@keyframes pwsStudioScene {
  0% { opacity: 1; clip-path: inset(10% 3% 10% 64%); transform: perspective(1600px) rotateY(-12deg) translateX(8%); }
  38% { opacity: 1; clip-path: inset(0); transform: perspective(1600px) rotateY(0) translateX(0); }
  55% { opacity: 1; clip-path: inset(0); transform: none; }
  100% { opacity: 0; clip-path: inset(0); transform: scale(1.035); }
}
@keyframes pwsStudioLens {
  from { transform: translate3d(6%, 1%, 0) scale(1.28); }
  to { transform: translate3d(0, 0, 0) scale(1.04); }
}

html.pws-nav-arriving .pws-nav-snapshot {
  animation: pwsOldSceneExit 1.1s cubic-bezier(.65, 0, .2, 1) both;
}
html.pws-nav-arriving .pws-nav-snapshot > main {
  animation: pwsOldSceneDepth 1.1s cubic-bezier(.65, 0, .2, 1) both;
}
@keyframes pwsOldSceneExit {
  0% { clip-path: inset(0); }
  78%, 100% { clip-path: inset(0 100% 0 0); }
}
@keyframes pwsOldSceneDepth {
  from { transform: none; }
  to { transform: perspective(1600px) translateX(-10%) rotateY(8deg) scale(.96); }
}

html.pws-nav-arriving > body > main :is(.hero-home, .page-hero) > .container > h1 {
  animation: pwsTitleArrival 1.5s cubic-bezier(.16, 1, .3, 1) both;
  transform-origin: left center;
}
html.pws-nav-arriving > body > main :is(.hero-home, .page-hero) > .container > .kicker {
  animation: pwsEyebrowArrival 1.5s cubic-bezier(.16, 1, .3, 1) both;
}
html.pws-nav-arriving > body > main :is(.hero-home, .page-hero) > .container > :is(p:not(.kicker), .hero-actions) {
  animation: pwsDetailsArrival 1.5s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes pwsTitleArrival {
  0%, 38% { opacity: 0; transform: perspective(1200px) translate3d(8%, 70px, 0) rotateX(9deg); clip-path: inset(0 0 100%); }
  100% { opacity: 1; transform: none; clip-path: inset(-8%); }
}
@keyframes pwsEyebrowArrival {
  0%, 33% { opacity: 0; transform: translate3d(60px, 0, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes pwsDetailsArrival {
  0%, 48% { opacity: 0; transform: translate3d(0, 30px, 0); }
  100% { opacity: 1; transform: none; }
}
html.pws-nav-arriving > body > main :is(.hero-home, .page-hero)::before {
  animation: pwsDestinationLens 1.5s cubic-bezier(.16, 1, .3, 1) both !important;
}
@keyframes pwsDestinationLens {
  from { transform: scale(1.18) translateX(3%); }
  to { transform: scale(1.04) translateX(-1%); }
}
@media (max-width: 760px) {
  .pws-journey-visual::before { background-position: 72% center; }
  @keyframes pwsStudioScene {
    0% { opacity: 1; clip-path: inset(12% 4% 12% 45%); transform: translateX(6%); }
    38%, 55% { opacity: 1; clip-path: inset(0); transform: none; }
    100% { opacity: 0; clip-path: inset(0); transform: scale(1.02); }
  }
  @keyframes pwsStudioLens {
    from { transform: translate3d(3%, 0, 0) scale(1.13); }
    to { transform: none; }
  }
  @keyframes pwsTitleArrival {
    0%, 38% { opacity: 0; transform: translate3d(5%, 32px, 0); clip-path: inset(0 0 100%); }
    100% { opacity: 1; transform: none; clip-path: inset(-8%); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .pws-journey-visual, .pws-nav-snapshot { display: none !important; }
  html.pws-nav-arriving > body > main :is(.hero-home, .page-hero) > .container > *,
  html.pws-nav-arriving > body > main :is(.hero-home, .page-hero)::before {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    clip-path: none !important;
  }
}
