/*
 * IMPERIA / ÉDITION 02 — refined burgundy editorial system.
 * Non-invasive enhancement: primary layout and content stay in style.css/future.css.
 * Respect reduced motion and mobile Safari, avoid external fonts or dependencies.
 */
:root{
  --wine:#4b172b;--wine-deep:#190b12;--rose:#e7aab7;
  --champagne:#e8c8ac;--quiet:#b9a6ae;
}
body{
  background:radial-gradient(ellipse 90vw 56vw at 76% 5%,#34101c55,transparent 70%),var(--bg);
  font-feature-settings:"kern";
  -webkit-text-size-adjust:100%;
}
a,button{touch-action:manipulation}
:focus-visible{outline:2px solid #f4c3cb;outline-offset:4px}
.header{
  background:rgba(22,8,16,.91)!important;
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  backdrop-filter:blur(22px) saturate(145%);
  transition:box-shadow .35s ease,background .35s ease;
}
.header.edition-scrolled{box-shadow:0 16px 46px #0004,0 1px 0 #efb2bf25}
.header .brand-monogram{
  position:relative;
  border-radius:12px 4px 12px 4px;
  background:linear-gradient(145deg,#823b53,#361220)!important;
  box-shadow:inset 0 1px 0 #ffedf24a,0 8px 24px #0004;
}
.navigation a{position:relative;transition:color .25s ease}
.navigation a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;
  background:linear-gradient(90deg,#d695a8,#efc4a5);
  transition:right .35s cubic-bezier(.2,.8,.2,1);
}
.navigation a:hover::after,.navigation a[aria-current="location"]::after{right:0}
.navigation a[aria-current="location"]{color:#ffe5ed}
.hero{min-height:min(880px,91svh);align-items:center}
.hero::after{
  content:"";position:absolute;inset:0 -8% auto;min-height:480px;
  background:radial-gradient(ellipse at 62% 28%,#8b2c4b20,transparent 65%);
  z-index:-1;pointer-events:none;
}
.hero h1{
  font-weight:640;
  text-wrap:balance;
  text-shadow:0 6px 34px #0005;
}
.hero .eyebrow{color:#e7b7c3;letter-spacing:.19em}
.hero-description{color:#dbc7cd}
.hero-photo{
  border-radius:26px 12px 26px 12px;
  outline:1px solid #f7bdc21c;
  outline-offset:6px;
  box-shadow:0 36px 95px #050102ad,0 0 60px #ad386735;
}
.hero-photo img{filter:saturate(.95) contrast(1.04);transition:filter .65s ease}
.hero-photo:hover img{filter:saturate(1.04) contrast(1.06)}
.hero-visual{isolation:isolate}
.hero-visual::after{
  content:"";pointer-events:none;position:absolute;z-index:4;inset:8% 0 10%;
  border-radius:35px;opacity:.7;
  background:radial-gradient(260px circle at var(--spot-x,66%) var(--spot-y,38%),#ffd9df1c,transparent 75%);
}
.orbital-scene{filter:drop-shadow(0 15px 35px #c3407140)}
.floating-note{
  border-radius:18px 8px 18px 8px;
  box-shadow:0 20px 46px #100408aa,0 1px 1px #fff8 inset;
}
.button,.filter,.menu-button{transition-property:transform,box-shadow,border-color,background,color;transition-duration:.25s}
.button-primary{position:relative;overflow:hidden;border:1px solid #ffedef7c;box-shadow:0 11px 34px #a73d5e31,0 1px 0 #fff8 inset}
.button-primary::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 15%,#fff7 50%,transparent 75%);
  transform:translateX(-120%);transition:transform .9s cubic-bezier(.16,1,.3,1);
}
@media(hover:hover){.button-primary:hover::before{transform:translateX(120%)}}
.section-top{border-top:1px solid #f0b2c32a;padding-top:23px}
.section-top .eyebrow{font-size:10px;letter-spacing:.21em;color:#e7aabb}
.section h2,.life-section h2{letter-spacing:-.055em}
.story-photo{box-shadow:0 30px 70px #0007;border:1px solid #f3b0c633}
.story-aside{
  position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 #ffffff12,0 22px 46px #0002;
}
.story-aside::before{
  content:"";pointer-events:none;position:absolute;inset:0;
  background:radial-gradient(360px circle at var(--spot-x,76%) var(--spot-y,21%),#eeb8c522,transparent 85%);
}
.story-aside>*{position:relative}
.principles article{transition:transform .3s ease}
@media(hover:hover){.principles article:hover{transform:translateY(-5px)}}
.principles article h3{color:#f9e8ec}

/* Editorial gallery interlude — cinematic and tactile, built from existing real photography. */
.editorial{
  position:relative;
  padding-top:clamp(58px,9vw,112px);
  padding-bottom:clamp(88px,10vw,144px);
}
.editorial::before{
  content:"";position:absolute;left:50%;top:11%;width:min(960px,120vw);height:75%;
  transform:translateX(-50%);z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse,#922e4b17,transparent 65%);
}
.editorial-top{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding-bottom:20px;border-bottom:1px solid #f0b2c332;
  color:#c7a0ab;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
}
.editorial-top span:last-child{color:#b69ba4}
.editorial-layout{
  display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(30px,6vw,88px);align-items:center;
  padding-top:clamp(36px,5vw,80px);
}
.editorial-copy{position:relative;z-index:2;min-width:0}
.editorial-copy .eyebrow{color:#d8a3b0;margin-bottom:32px}
.editorial-copy h2{
  font-weight:560;font-size:clamp(48px,5.7vw,84px);
  line-height:1.03;letter-spacing:-.065em;margin:0 0 30px;
}
.editorial-copy h2 em{
  font-style:normal;font-weight:500;
  background:linear-gradient(110deg,#f8d6df 7%,#e9a7b9 62%,#dbb38c);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.editorial-copy>p:not(.eyebrow){max-width:340px;font-size:14px;line-height:1.95;color:#cbb4bb}
.editorial-copy .text-link{margin-top:18px;color:#fbe4ea}
.editorial-label{margin-top:60px;display:flex;align-items:center;gap:12px;color:#b6a0a8;font-size:10px;letter-spacing:.15em}
.editorial-label::before{content:"";width:38px;height:1px;background:#e5a6b7}
.editorial-frames{position:relative;height:clamp(470px,48vw,665px);min-width:0;isolation:isolate}
.editorial-frames::before{
  content:"";position:absolute;inset:10% 3% 10% 10%;border-radius:50%;
  background:radial-gradient(ellipse,#b4496e27,transparent 65%);
  filter:blur(28px);pointer-events:none;
}
.editorial-frame{
  position:absolute;overflow:hidden;margin:0;background:#311923;
  border:1px solid #f9d0d45e;
  box-shadow:0 30px 80px #0009,0 1px 0 #fffc inset;
  transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity 1s ease,box-shadow .45s ease;
}
.editorial-frame--main{
  z-index:2;left:0;top:3%;width:76%;height:78%;border-radius:30px 12px 30px 12px;
  transform:rotate(-5deg);
}
.editorial-frame--side{
  z-index:3;right:1%;bottom:0;width:47%;height:57%;
  border-radius:12px 30px 12px 30px;transform:rotate(7deg);
  box-shadow:0 25px 65px #000b;
}
.editorial-frame img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .95s cubic-bezier(.2,.8,.2,1),filter .5s ease;filter:saturate(.95)}
.editorial-frame--main img{object-position:center}
.editorial-frame--side img{object-position:center}
.editorial-frame::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#130711b8);pointer-events:none}
.editorial-frame figcaption{
  position:absolute;z-index:2;left:24px;right:24px;bottom:22px;
  color:#fff2f4;font-size:12px;font-weight:650;letter-spacing:.03em;
  display:flex;justify-content:space-between;gap:10px;text-shadow:0 2px 7px #0009;
}
.editorial-frame figcaption span{font-weight:500;color:#e6afbc;font-size:10px}
.editorial-seal{
  position:absolute;z-index:4;top:2%;right:1%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1px;width:108px;height:108px;
  border:1px solid #ecc2ce6d;border-radius:50%;
  background:#230d18d9;box-shadow:0 15px 40px #0007;
  color:#edb6c7;font-size:9px;letter-spacing:.11em;text-align:center;
}
.editorial-seal strong{font-size:28px;line-height:1;font-weight:570;color:#fff0f3;letter-spacing:-.04em}
@media(hover:hover) and (pointer:fine){
  .editorial-frame:hover{box-shadow:0 37px 90px #000b,0 0 40px #dc799724}
  .editorial-frame:hover img{transform:scale(1.065);filter:saturate(1.08)}
}
@media(prefers-reduced-motion:no-preference){
  .edition-active .editorial-frame:not(.edition-visible){opacity:0}
  .edition-active .editorial-frame--main:not(.edition-visible){transform:translateY(46px) rotate(-9deg) scale(.95)}
  .edition-active .editorial-frame--side:not(.edition-visible){transform:translateY(55px) rotate(13deg) scale(.95)}
}

/* Gallery gets an editorial lead image instead of a monotonous grid. */
.gallery{row-gap:22px}
.gallery-card{border-radius:20px 8px 20px 8px;box-shadow:0 20px 34px #0003;transition:border-color .3s ease,box-shadow .3s ease}
.gallery-card.edition-lead:not([hidden]){
  grid-column:span 2;grid-row:span 2;aspect-ratio:auto;
  min-height:440px;
}
.gallery-card::after{inset:35% 0 0;background:linear-gradient(transparent,#12060bdb)}
.gallery-card .photo-caption{font-size:clamp(11px,1vw,15px);line-height:1.35}
.gallery-card.edition-lead:not([hidden]) .photo-caption{font-size:clamp(19px,2.2vw,28px);left:26px;bottom:26px}
.gallery-card.edition-lead:not([hidden]) .photo-category{top:22px;left:22px}
.gallery-card img{filter:saturate(.93);transition:transform .85s cubic-bezier(.2,.8,.2,1),filter .6s ease}
.gallery-card:hover{border-color:#f9d4db77;box-shadow:0 23px 50px #0007}
.gallery-card:hover img{filter:saturate(1.08)}
.gallery-card[hidden]{display:none!important}
.filter.active{color:#2a0e19;border-color:#f3b9c6;box-shadow:inset 0 1px 0 #ffffff55;background:#f0b4c3}
.filter:focus-visible{outline-offset:3px}
.route-panel{box-shadow:inset 0 1px 0 #fff1,0 22px 55px #0002}
.careers-section{background:linear-gradient(155deg,#f7edf0,#eddae1 45%,#dec0ca)}
.job{transition:background .3s ease,border-color .3s ease}
.job:hover{background:#721f3b0b}
.join-section{
  border:1px solid #fff6f68a;
  box-shadow:0 25px 80px #0003,0 1px 0 #ffffffa0 inset;
}
.join-section::before{
  content:"";position:absolute;pointer-events:none;inset:-30% -15% auto auto;
  width:450px;height:450px;border-radius:50%;
  background:radial-gradient(circle,#ffffff55,transparent 65%);
}
.join-copy,.application-form{position:relative;z-index:1}
.footer-contact a{transition:color .25s ease}
.footer-contact a:hover{color:#fbe0e5}
.lightbox{border:1px solid #f4bdd83a;background:#1b0a13;box-shadow:0 30px 90px #0009}
.lightbox::backdrop{background:#060206ed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.email-dialog{box-shadow:0 34px 94px #0009}
.chapter-rail{
  position:fixed;z-index:34;right:22px;top:50%;
  transform:translateY(-50%);display:flex;flex-direction:column;
  align-items:center;gap:15px;
  border:1px solid #efb4bf35;background:#1d0a13b9;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-radius:99px;padding:17px 12px;
  box-shadow:0 12px 32px #0006;
}
.chapter-rail a{
  display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
}
.chapter-rail a::before{
  content:"";width:9px;height:9px;border:1px solid #edb7c09c;border-radius:50%;background:transparent;
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease;
}
.chapter-rail a[aria-current="location"]::before,.chapter-rail a:hover::before{
  background:#edb7c0;transform:scale(1.25);box-shadow:0 0 0 4px #edb7c022;
}
@media(max-width:1180px){.chapter-rail{display:none}}
@media(max-width:900px){
  .hero{min-height:auto}
  .editorial-layout{grid-template-columns:.82fr 1.18fr;gap:25px}
  .editorial-copy h2{font-size:clamp(40px,5.5vw,62px)}
  .editorial-frames{height:520px}
}
@media(max-width:720px){
  :root{--mobile-dock-height:74px}
  html{scroll-padding-top:88px}
  .header{background:#170910!important;-webkit-backdrop-filter:none;backdrop-filter:none}
  .header-inner{height:70px}
  .navigation{top:100%;max-height:calc(100dvh - 80px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain;background:#220e18;-webkit-backdrop-filter:none;backdrop-filter:none}
  .navigation a::after{bottom:3px;right:100%}
  .hero{padding-top:35px;min-height:auto}
  .hero h1{font-size:clamp(51px,12vw,64px);letter-spacing:-.06em;line-height:1.09}
  .hero-photo{border-radius:23px 10px 23px 10px;outline-offset:3px;box-shadow:0 20px 60px #0009}
  .hero-photo img{filter:saturate(1)}
  .hero-visual::after{display:none}
  .hero-description{font-size:14px;line-height:1.8}
  .section-top{padding-top:17px}
  .section-top .eyebrow{font-size:9px;letter-spacing:.16em}
  .story-aside{border-radius:23px;padding:28px}
  .editorial{padding-top:65px;padding-bottom:72px}
  .editorial-top{font-size:8px;letter-spacing:.12em}
  .editorial-top span:last-child{max-width:130px;text-align:right}
  .editorial-layout{display:block;padding-top:38px}
  .editorial-copy .eyebrow{margin-bottom:20px}
  .editorial-copy h2{font-size:clamp(47px,12vw,65px);line-height:1.04;margin-bottom:22px}
  .editorial-copy>p:not(.eyebrow){font-size:14px;max-width:95%}
  .editorial-label{margin-top:25px}
  .editorial-frames{height:clamp(400px,118vw,570px);margin-top:25px}
  .editorial-frame--main{left:2%;top:5%;width:76%;height:76%;border-radius:20px 7px 20px 7px}
  .editorial-frame--side{right:0;bottom:2%;width:51%;height:58%;border-radius:7px 20px 7px 20px}
  .editorial-frame figcaption{left:15px;right:15px;bottom:16px;font-size:10px}
  .editorial-frame figcaption span{font-size:9px}
  .editorial-seal{width:74px;height:74px;right:0;top:2%;font-size:7px}
  .editorial-seal strong{font-size:21px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .gallery-card{border-radius:15px 6px 15px 6px;aspect-ratio:.77}
  .gallery-card.edition-lead:not([hidden]){
    grid-column:span 2;grid-row:auto;aspect-ratio:1.44;min-height:0;
  }
  .gallery-card.edition-lead:not([hidden]) .photo-caption{font-size:19px;left:19px;bottom:17px}
  .gallery-card.edition-lead:not([hidden]) .photo-category{top:15px;left:15px}
  .gallery-card:nth-child(4n+2),.gallery-card:nth-child(4n+4){transform:none}
  .gallery-card .photo-caption{font-size:10px}
  .mobile-dock{
    padding:8px max(14px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));
    gap:9px;background:#1b0914;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    border-top-color:#f2c2cd37;box-shadow:0 -12px 36px #0008;
  }
  .mobile-dock a{min-height:46px;font-size:12px}
  .mobile-dock a:last-child{background:linear-gradient(110deg,#e8adb9,#e9c5ad);color:#371425;border-color:#ffeff077}
  .footer{padding-bottom:calc(106px + env(safe-area-inset-bottom))}
  .lightbox{margin:auto;max-height:calc(100dvh - 20px);border-radius:18px}
  .lightbox-stage img{max-height:62dvh}
}
@media(max-width:370px){
  .editorial-copy h2{font-size:44px}
  .editorial-frames{height:400px}
  .hero h1{font-size:48px}
}
@media(prefers-reduced-motion:reduce){
  .editorial-frame,.editorial-frame img,.chapter-rail a,.header,
  .hero-photo img,.gallery-card img,.button-primary::before{animation:none!important;transition:none!important}
  .editorial-frame{opacity:1!important}
}
@media print{.chapter-rail,.editorial-seal{display:none!important}.editorial-layout{display:block}.editorial-frames{height:280px}.editorial-frame{width:45%;height:240px;left:auto;right:auto;top:auto;bottom:auto;position:relative;display:inline-block}}

/* Keep all media inside the iPhone viewport, even when tilted cards extend past their grid. */
body{overflow-x:clip}
.gallery-card.edition-lead{transform:none!important}
@media(max-width:720px){.editorial{overflow-x:clip}}


/* Interaction polish: loading feedback, readable controls and one motion switch. */
.lightbox-stage{min-height:min(340px,50dvh)}
.lightbox-prev,.lightbox-next{z-index:2}
.photo-pending #lightbox-image{visibility:hidden}
.photo-feedback{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:18px;padding:40px 65px;text-align:center;
  color:#f9e8ec;font-size:14px;line-height:1.6;
}
.photo-feedback[hidden],#retry-photo[hidden]{display:none}
.photo-feedback .button{font-size:13px;min-height:44px}
.email-dialog{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
.join-section :focus-visible,.careers-section :focus-visible{outline-color:#6d2038}
.animation-paused *, .animation-paused *::before, .animation-paused *::after{
  animation-play-state:paused!important;transition:none!important;
}
.animation-paused .editorial-frame{opacity:1!important}
.editing-form .mobile-dock,.modal-open .mobile-dock{visibility:hidden;pointer-events:none}
@media(max-width:720px){
  html{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom))}
  .photo-feedback{padding:32px 22px 75px;font-size:13px}
  .footer-bottom{font-size:11px}
  .footer-bottom a,.footer-bottom button{display:inline-flex;align-items:center;min-height:44px}
}
