/* LUPO — Maison. Black & Ivory */
:root{
  --ink:#0A0A0A;--ink2:#141414;--ivory:#F3EEE6;--paper:#FAF7F2;--stone:#DDD6CA;--gray:#6E6962;--gray2:#57534E;
  --line:rgba(10,10,10,.14);--linew:rgba(243,238,230,.18);
  --serif:"Noto Serif Hebrew","Frank Ruhl Libre",Georgia,serif;--bod:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;--sans:Heebo,Arial,sans-serif;
  --fs:17px;--e:cubic-bezier(.19,1,.22,1);
  /* x.js tokens */
  --bg:var(--paper);--card:#fff;--soft:var(--ivory);--text:var(--ink);--pine:var(--ink);--gold:#0A0A0A;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font:300 var(--fs)/1.8 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
body.hc{filter:contrast(1.35)}
body.loading{overflow:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:200;letter-spacing:-.01em;line-height:1.08}
::selection{background:var(--ink);color:var(--ivory)}
:focus-visible{outline:1px solid currentColor;outline-offset:5px}
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4.5vw,72px)}
.bod{font-family:var(--bod);font-style:italic;font-weight:400;letter-spacing:0}
.cap{font:400 11px/1.4 var(--sans);letter-spacing:.38em;text-transform:uppercase}
.dark{background:var(--ink);color:var(--ivory)}
.ivory{background:var(--ivory)}
.center{text-align:center}
section{position:relative}
.pad{padding:clamp(120px,16vw,240px) 0}
.hr{height:1px;border:0;background:var(--line);margin:0}
.dark .hr{background:var(--linew)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
[hidden]{display:none!important}
.skip{position:fixed;top:-60px;inset-inline-start:16px;z-index:400;background:var(--ink);color:var(--ivory);padding:10px 18px}.skip:focus{top:12px}

/* buttons — fashion-house: rectangular, hairline, uppercase */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:56px;padding:0 40px;font:400 12px var(--sans);letter-spacing:.32em;text-transform:uppercase;text-decoration:none;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .6s var(--e)}
.btn:before{content:"";position:absolute;inset:0;z-index:-1;background:currentColor;transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--e)}
.btn span{position:relative;z-index:1;transition:color .6s var(--e)}
.btn:hover:before{transform:scaleY(1)}
.dark .btn:hover span,.hero .btn:hover span,.on-dark .btn:hover span{color:var(--ink)}
.btn:hover span{color:var(--ivory)}
.btn.solid{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn.solid:before{background:var(--ivory)}
.btn.solid:hover span{color:var(--ink)}
.dark .btn.solid,.hero .btn.solid{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.dark .btn.solid:before,.hero .btn.solid:before{background:var(--ink)}
.dark .btn.solid:hover span,.hero .btn.solid:hover span{color:var(--ivory)}
.lnk{display:inline-block;font:400 12px var(--sans);letter-spacing:.32em;text-transform:uppercase;text-decoration:none;padding-bottom:8px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .7s var(--e)}
.lnk:hover{background-size:0 1px;background-position:100% 100%}

/* curtain preloader */
.pl{position:fixed;inset:0;z-index:300;background:var(--ink);color:var(--ivory);display:grid;place-items:center;transition:clip-path 1.4s var(--e) .1s;clip-path:inset(0 0 0 0)}
.pl.out{clip-path:inset(0 0 100% 0)}
.pl .wm{font:400 clamp(44px,9vw,120px)/1 var(--bod);letter-spacing:.32em;padding-inline-start:.32em;direction:ltr;overflow:hidden}
.pl .wm span{display:inline-block;transform:translateY(110%);animation:up 1.2s var(--e) forwards}
.pl .wm span:nth-child(2){animation-delay:.08s}.pl .wm span:nth-child(3){animation-delay:.16s}.pl .wm span:nth-child(4){animation-delay:.24s}
.pl .sub{position:absolute;bottom:48px;left:0;right:0;text-align:center;color:var(--gray);opacity:0;animation:fa 1s ease .7s forwards}
.pl .ln{position:absolute;bottom:0;left:0;height:1px;background:var(--ivory);width:0;animation:ln 1.6s var(--e) .2s forwards}
@keyframes up{to{transform:none}}@keyframes fa{to{opacity:1}}@keyframes ln{to{width:100%}}
@media (prefers-reduced-motion:reduce){.pl{display:none}}

/* nav */
.nv{position:fixed;top:0;inset-inline:0;z-index:60;color:var(--ivory);transition:transform .7s var(--e),background .6s,color .6s}
.nv .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:92px;max-width:none;transition:height .5s}
.nv.s{background:rgba(250,247,242,.92);color:var(--ink);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nv.s .wrap{height:68px}
.nv.h{transform:translateY(-100%)}
.nv .wm{justify-self:center;text-decoration:none;font:400 26px/1 var(--bod);letter-spacing:.42em;padding-inline-start:.42em;direction:ltr;display:flex;align-items:center;gap:14px}
.nv .wm svg{height:26px;width:auto}
.nv .r{display:flex;align-items:center;gap:26px}
.nv .l{justify-self:end;display:flex;align-items:center;gap:26px}
.nv .t{font:400 11px var(--sans);letter-spacing:.32em;text-transform:uppercase;text-decoration:none}
.nv .burger{display:inline-flex;flex-direction:column;gap:8px;width:44px;height:44px;justify-content:center;align-items:flex-start;background:none;border:0;border-radius:0;cursor:pointer;padding:0 4px;color:inherit}
.nv .burger span{display:block;width:30px;height:1px;border-radius:0;background:currentColor;transition:width .5s var(--e)}
.nv .burger span:nth-child(2){width:18px}.nv .burger span:nth-child(3){display:none}
.nv .burger:hover span{background:currentColor}.nv .burger:hover span:nth-child(2){width:30px}
@media (max-width:760px){.nv .t{display:none}.nv .wm{font-size:20px;letter-spacing:.34em}.nv .wrap{height:72px}.nv .l .btn{min-height:40px;padding:0 14px;font-size:10px;letter-spacing:.2em}}

/* hero — full-bleed film */
.hero{height:100vh;height:100svh;min-height:620px;overflow:hidden;background:var(--ink);color:var(--ivory)}
.film{position:absolute;inset:0;overflow:hidden;background:#000}
.film video,.film img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film video{opacity:0;transition:opacity 1.6s ease}
.film video.on{opacity:1}
.hero .film:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.08) 30%,rgba(0,0,0,.1) 60%,rgba(0,0,0,.7) 100%)}
.hero .in{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 20px}
.hero .kick{opacity:0;transform:translateY(14px);transition:1.4s var(--e) .3s}
.hero h1{font-size:clamp(46px,8.4vw,150px);font-weight:200;letter-spacing:-.02em;line-height:1.02;margin:30px 0 0}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln>span{display:inline-block;transform:translateY(110%);transition:transform 1.8s var(--e)}
.hero h1 .ln:nth-child(2)>span{transition-delay:.14s}
.hero .sub{max-width:560px;margin:34px auto 0;color:rgba(243,238,230,.82);font-size:clamp(15px,1.2vw,18px);opacity:0;transition:1.4s var(--e) .7s}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:44px;opacity:0;transition:1.4s var(--e) .9s}
.ready .hero h1 .ln>span{transform:none}.ready .hero .kick,.ready .hero .sub,.ready .hero .ctas{opacity:1;transform:none}
.hero .foot{position:absolute;z-index:2;bottom:0;inset-inline:0;display:flex;justify-content:space-between;align-items:center;padding:26px clamp(20px,4.5vw,72px);border-top:1px solid rgba(243,238,230,.16)}
.hero .chap{display:flex;gap:28px}
.hero .chap button{background:none;border:0;color:rgba(243,238,230,.5);font:400 11px var(--sans);letter-spacing:.32em;text-transform:uppercase;cursor:pointer;padding:6px 0;position:relative}
.hero .chap button.on{color:var(--ivory)}
.hero .chap button i{position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--ivory);transform:scaleX(0);transform-origin:right}
.hero .chap button.on i{animation:prog var(--d,8s) linear forwards}
@keyframes prog{to{transform:scaleX(1)}}
.hero .scroll{display:flex;align-items:center;gap:14px}
.hero .scroll i{width:1px;height:38px;background:rgba(243,238,230,.3);position:relative;overflow:hidden}
.hero .scroll i:after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--ivory);animation:drip 2.2s var(--e) infinite}
@keyframes drip{to{top:110%}}
@media (max-width:760px){.hero .chap{gap:16px}.hero .chap button{font-size:9px;letter-spacing:.2em}.hero .scroll{display:none}.hero .foot{justify-content:center;padding-bottom:22px}}

/* manifesto */
.man .t{font:200 clamp(30px,4.3vw,70px)/1.3 var(--serif);letter-spacing:-.01em;max-width:1200px;margin:0 auto;text-align:center}
.man .t .w{opacity:.12;transition:opacity .5s}
.man .t .w.on{opacity:1}
.man .sig{margin-top:64px;display:flex;flex-direction:column;align-items:center;gap:14px}
.man .sig .bod{font-size:36px}

/* expanding film (signature) */
.xp{height:280vh;background:var(--paper)}
.xp .stk{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center}
.xp .frame{position:absolute;inset:0;clip-path:inset(var(--y,30%) var(--x,34%) var(--y,30%) var(--x,34%));will-change:clip-path}
.xp .frame .film:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,calc(var(--p,0) * .45))}
.xp .ttl{position:relative;z-index:2;text-align:center;color:var(--ivory);mix-blend-mode:difference;pointer-events:none}
.xp .ttl .big{font:400 clamp(80px,17vw,300px)/.85 var(--bod);font-style:italic;letter-spacing:-.02em;direction:ltr;display:block}
.xp .cap2{position:absolute;z-index:3;bottom:8vh;left:0;right:0;text-align:center;color:var(--ivory);opacity:var(--p,0)}
.xp .cap2 p{max-width:520px;margin:16px auto 0;font-size:17px;color:rgba(243,238,230,.85)}
@media (prefers-reduced-motion:reduce){.xp{height:auto}.xp .stk{position:relative}.xp .frame{clip-path:none}}

/* destinations — editorial chapters */
.dest .item{display:grid;grid-template-columns:7fr 5fr;gap:clamp(36px,6vw,110px);align-items:center;padding:clamp(80px,10vw,150px) 0;border-top:1px solid var(--line)}
.dest .item:nth-child(even){grid-template-columns:5fr 7fr}
.dest .item:nth-child(even) .media{order:2}
.dest .media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#000}
.dest .media .film{position:absolute;inset:-6% 0}
.dest .media .no{position:absolute;z-index:2;top:22px;inset-inline-start:22px;color:var(--ivory)}
.dest .nm{font:400 clamp(70px,10vw,170px)/.85 var(--bod);font-style:italic;letter-spacing:-.02em;direction:ltr;text-align:right;display:block;margin:18px 0 34px}
.dest h3{font-size:clamp(26px,2.6vw,40px);margin-bottom:18px}
.dest p.d{color:var(--gray2);max-width:470px}
.dest .facts{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dest .facts div{padding:22px 0;padding-inline-start:18px;border-inline-start:1px solid var(--line)}
.dest .facts div:first-child{border:0;padding-inline-start:0}
.dest .facts b{display:block;font:400 clamp(24px,2.3vw,36px)/1 var(--bod);direction:ltr;text-align:right;white-space:nowrap}
.dest .facts span{display:block;margin-top:10px;font:400 10px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gray)}
.dest .cities{display:flex;gap:26px;flex-wrap:wrap}
@media (max-width:860px){.dest .item,.dest .item:nth-child(even){grid-template-columns:1fr;gap:30px}.dest .item:nth-child(even) .media{order:0}.dest .media{aspect-ratio:4/5}}

/* film reel */
.reel{overflow:hidden}
.reel .head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:56px}
.reel .row{display:flex;gap:14px;padding:0 clamp(20px,4.5vw,72px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab}
.reel .row::-webkit-scrollbar{display:none}
.reel .clip{flex:0 0 clamp(260px,26vw,420px);aspect-ratio:3/4;position:relative;overflow:hidden;scroll-snap-align:start;text-decoration:none;color:var(--ivory);background:#111}
.reel .clip .film{transition:transform 1.4s var(--e)}
.reel .clip:hover .film{transform:scale(1.05)}
.reel .clip:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.65))}
.reel .clip .lb{position:absolute;z-index:2;bottom:22px;inset-inline:22px;display:flex;justify-content:space-between;align-items:flex-end}
.reel .clip .lb b{font:400 italic 40px/1 var(--bod);direction:ltr}
.reel .ctl{display:flex;gap:10px}
.reel .ctl button{width:54px;height:54px;border:1px solid var(--linew);background:none;color:var(--ivory);cursor:pointer;font-size:18px}
.reel .ctl button:hover{background:var(--ivory);color:var(--ink)}

/* numbers */
.nums .vs{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(20px,5vw,90px);align-items:end;margin:90px 0 110px}
.nums .s{text-align:center}
.nums .s b{display:block;font:400 clamp(48px,8.4vw,150px)/.9 var(--bod);letter-spacing:-.02em;direction:ltr;margin-top:24px}
.nums .s.il b{color:var(--gray);text-decoration:line-through;text-decoration-thickness:1px}
.nums .s p{color:var(--gray);margin-top:18px;font-size:14px}
.nums .or{font:400 italic 44px var(--bod);color:var(--gray);padding-bottom:30px}
.nums .row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.nums .row>div{padding:48px 36px 0;border-inline-start:1px solid var(--line)}
.nums .row>div:first-child{border:0;padding-inline-start:0}
.nums .row b{display:block;font:400 clamp(60px,6vw,104px)/1 var(--bod)}
.nums .row span{display:block;margin-top:18px;color:var(--gray2);max-width:300px}
@media (max-width:860px){.nums .vs{grid-template-columns:1fr;margin:60px 0}.nums .or{padding:0}.nums .row{grid-template-columns:1fr}.nums .row>div{border:0;border-top:1px solid var(--line);padding:34px 0}}

/* method */
.mth .steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linew)}
.mth .st{padding:44px 30px 10px 0;padding-inline-start:30px;border-inline-start:1px solid var(--linew)}
.mth .st:first-child{border:0;padding-inline-start:0}
.mth .st .n{font:400 italic 70px/1 var(--bod);color:var(--gray)}
.mth .st h3{font-size:clamp(24px,2vw,32px);margin:30px 0 16px}
.mth .st p{color:rgba(243,238,230,.66);font-size:15px}
@media (max-width:960px){.mth .steps{grid-template-columns:1fr 1fr}.mth .st{border:0;border-top:1px solid var(--linew);padding:34px 0!important}}
@media (max-width:560px){.mth .steps{grid-template-columns:1fr}}

/* founder */
.fd .grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,8vw,140px);align-items:center}
.fd .ph{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.fd .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08)}
.fd q{display:block;font:200 clamp(28px,3.2vw,52px)/1.25 var(--serif);quotes:none;margin:30px 0 40px}
.fd .bio{color:var(--gray2);max-width:600px}
.fd .sign{font:400 italic 52px var(--bod);margin:36px 0 40px}
@media (max-width:860px){.fd .grid{grid-template-columns:1fr}}

/* library */
.lib .it{display:grid;grid-template-columns:1fr auto auto;gap:40px;align-items:center;padding:40px 0;border-bottom:1px solid var(--linew);cursor:pointer;position:relative}
.lib .it:first-of-type{border-top:1px solid var(--linew)}
.lib .it h3{font-size:clamp(34px,4.4vw,76px);transition:transform .8s var(--e)}
.lib .it h3 .bod{font-size:.6em;color:var(--gray);margin-inline-start:20px}
.lib .it:hover h3{transform:translateX(-24px)}
.lib .it p{color:var(--gray);font-size:15px;max-width:340px}
.lib .it .ar{font:400 11px var(--sans);letter-spacing:.32em}
@media (max-width:860px){.lib .it{grid-template-columns:1fr auto}.lib .it p{display:none}}

/* concierge */
.cs{min-height:100vh;display:flex;align-items:center;overflow:hidden}
.cs .film:after{content:"";position:absolute;inset:0;background:rgba(5,5,5,.72)}
.cs .wrap{position:relative;z-index:2;width:100%}
.cs .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,140px);align-items:center}
.cs h2{font-size:clamp(46px,6.4vw,110px)}
.cs .alt{margin-top:46px;display:flex;flex-direction:column}
.cs .alt a{display:flex;justify-content:space-between;max-width:420px;padding:18px 0;border-bottom:1px solid var(--linew);text-decoration:none}
.cs .alt a span{font:400 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gray)}
.cf{background:var(--paper);color:var(--ink);padding:clamp(28px,4vw,60px)}
.cf .bar{display:flex;gap:6px;margin-bottom:34px}
.cf .bar i{flex:1;height:1px;background:var(--line)}
.cf .bar i.on{background:var(--ink)}
.cf .q{display:block;font:200 clamp(26px,2.4vw,38px)/1.2 var(--serif);margin-bottom:28px}
.cf fieldset{border:0;padding:0;margin:0;display:none}
.cf fieldset.on{display:block;animation:fi .9s var(--e)}
@keyframes fi{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opts label{cursor:pointer;position:relative}
.opts input{position:absolute;opacity:0;pointer-events:none}
.opts span{display:flex;align-items:center;justify-content:center;min-height:64px;border:1px solid var(--line);font:300 17px var(--sans);transition:.5s var(--e)}
.opts label:hover span{border-color:var(--ink)}
.opts input:checked+span{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.opts input:focus-visible+span{outline:1px solid var(--ink);outline-offset:3px}
.fl{display:block;margin-bottom:22px}
.fl span{display:block;font:400 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-bottom:4px}
.fl input{width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:200 26px var(--serif);padding:8px 0;border-radius:0}
.fl input:focus{outline:none;border-bottom-color:var(--ink)}
.cbx{display:flex;gap:12px;align-items:flex-start;font-size:13px;color:var(--gray2);margin:10px 0;line-height:1.6}
.cbx input{width:16px;height:16px;margin-top:3px;accent-color:#0A0A0A;flex-shrink:0}
.cbx a{color:var(--ink)}
.dk .cbx{color:rgba(243,238,230,.7)}.dk .cbx a{color:var(--ivory)}.dk .cbx input{accent-color:#F3EEE6}
.cf .nav2{display:flex;justify-content:space-between;align-items:center;margin-top:32px;gap:12px}
.cf .back{background:none;border:0;color:var(--gray);font:400 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;cursor:pointer}
.msg{margin-top:16px;font-size:15px}
.msg.good{color:inherit}
@media (max-width:860px){.cs .grid{grid-template-columns:1fr}.opts{grid-template-columns:1fr}}

/* faq */
.fq details{border-bottom:1px solid var(--line)}
.fq details:first-of-type{border-top:1px solid var(--line)}
.fq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:32px 0;cursor:pointer;font:200 clamp(21px,2vw,30px)/1.3 var(--serif)}
.fq summary::-webkit-details-marker{display:none}
.fq summary:after{content:"";width:14px;height:14px;flex-shrink:0;background:linear-gradient(currentColor,currentColor) center/100% 1px no-repeat,linear-gradient(currentColor,currentColor) center/1px 100% no-repeat;transition:transform .6s var(--e)}
.fq details[open] summary:after{transform:rotate(45deg)}
.fq p{padding:0 0 34px;color:var(--gray2);max-width:820px;font-size:17px}

/* footer */
.ft{background:var(--ink);color:rgba(243,238,230,.6);padding:120px 0 120px;font-size:14px;overflow:hidden}
.ft .big{font:400 clamp(90px,24vw,420px)/.8 var(--bod);letter-spacing:.06em;color:var(--ivory);direction:ltr;text-align:center;margin:0 0 90px;white-space:nowrap}
.ft .cols{display:grid;grid-template-columns:repeat(5,1fr);gap:40px;border-top:1px solid var(--linew);padding-top:50px}
.ft h4{font:400 10px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--ivory);margin:0 0 22px}
.ft a{display:block;text-decoration:none;margin-bottom:10px}
.ft a:hover{color:var(--ivory)}
.ft .fine{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:70px;font-size:12px}
@media (max-width:860px){.ft .cols{grid-template-columns:1fr 1fr}}

/* dialogs */
dialog{border:0;padding:0;max-width:min(720px,94vw);width:100%;background:var(--paper);color:var(--ink)}
dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}
dialog .in{position:relative;padding:clamp(28px,4vw,56px);max-height:86vh;overflow:auto}
dialog h2{font-size:38px;margin-bottom:16px}
dialog h3{font:500 16px var(--sans);margin:24px 0 6px}
dialog p,dialog li{color:var(--gray2);font-size:15px}
dialog [data-x].btn,dialog .btn{margin-top:24px}
dialog.dk{background:var(--ink);color:var(--ivory);max-width:540px}
dialog.dk .fl input{color:var(--ivory);border-color:var(--linew)}
.x{position:absolute;top:16px;inset-inline-end:16px;width:44px;height:44px;border:0;background:none;color:inherit;font:200 30px var(--sans);cursor:pointer}

/* reveals */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1.6s var(--e),transform 1.8s var(--e)}
.rv.in{opacity:1;transform:none}
.mask{clip-path:inset(0 0 100% 0);transition:clip-path 1.8s var(--e)}
.mask.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.rv,.mask{opacity:1;transform:none;clip-path:none;transition:none}}

/* cursor */
.cur{position:fixed;top:0;left:0;z-index:250;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#fff;pointer-events:none;mix-blend-mode:difference;transition:width .5s var(--e),height .5s var(--e),margin .5s var(--e)}
.cur.big{width:96px;height:96px;margin:-48px 0 0 -48px}
.cur span{position:absolute;inset:0;display:grid;place-items:center;font:500 9px var(--sans);letter-spacing:.3em;color:#000;opacity:0;transition:opacity .3s;text-transform:uppercase}
.cur.big span{opacity:1}
@media (pointer:coarse),(prefers-reduced-motion:reduce){.cur{display:none}}

/* sound toggle */
.acc{position:fixed;bottom:22px;inset-inline-end:22px;z-index:40;display:flex;gap:8px}
.acc button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(128,128,128,.4);background:rgba(10,10,10,.82);color:var(--ivory);font:500 12px var(--sans);cursor:pointer}
@media (max-width:760px){.acc{bottom:92px;flex-direction:column}}

/* x.js harmonisation: black & ivory */
#explore{background:var(--ink)!important}
#simulator{background:var(--ivory)!important}
.lx-h{font-family:var(--serif)!important;font-weight:200!important;font-size:clamp(40px,5.6vw,96px)!important;letter-spacing:-.01em!important;line-height:1.08!important}
.lx-eyebrow{font:400 11px/1 var(--sans)!important;letter-spacing:.38em!important;color:var(--gray)!important}
.lx-btn{border-radius:0!important;font-weight:400!important;letter-spacing:.24em!important;text-transform:uppercase;font-size:12px!important}
.lx-btn.pri{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--ivory)!important}
#explore .lx-btn.pri{background:var(--ivory)!important;color:var(--ink)!important;border-color:var(--ivory)!important}
.lx-card,.lx-stat,.lx-sim,.lx-c{border-radius:0!important}
.lx-card{background:rgba(255,255,255,.03)!important;border-color:var(--linew)!important}
.lx-sim{border-color:var(--line)!important;background:var(--paper)!important}
.lx-c .m2,.lx-amt{font-family:var(--bod)!important;font-weight:400!important}
.lx-seg button{border-radius:0!important}
.chp,.rail{display:none!important}
.lx-bar-m{background:rgba(10,10,10,.96)!important}
.lx-bar-m a{border-radius:0!important}
.lx-bar-m a.pri{background:var(--ivory)!important;border-color:var(--ivory)!important;color:var(--ink)!important}
@media (max-width:760px){.acc{bottom:86px;inset-inline-end:12px;gap:6px}.acc button{width:34px;height:34px;font-size:11px}}
.cur{opacity:0}.cur.mv{opacity:1}

/* teaser — budget */
.tzbox{max-width:980px;margin:0 auto;text-align:center}
.tzbox .amt{display:block;font:400 clamp(56px,9vw,150px)/1 var(--bod);letter-spacing:-.02em;margin:18px 0 34px}
.tzbox input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:1px;background:var(--ink);outline:none;margin:0 0 60px;cursor:pointer}
.tzbox input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--ink);border:6px solid var(--ivory);box-shadow:0 0 0 1px var(--ink);cursor:grab}
.tzbox input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ink);border:6px solid var(--ivory);box-shadow:0 0 0 1px var(--ink)}
.tzbox input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--ink),0 0 0 6px rgba(10,10,10,.15)}
.tzbox .res{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:50px}
.tzbox .res div{padding:34px 10px;border-inline-start:1px solid var(--line)}
.tzbox .res div:first-child{border:0}
.tzbox .res b{display:block;font:400 clamp(30px,3.4vw,54px)/1.05 var(--bod);transition:opacity .3s}
.tzbox .res span{display:block;margin-top:12px;font:400 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gray)}
.tzbox .note{margin-top:26px;font-size:12px;color:var(--gray)}
@media (max-width:700px){.tzbox .res{grid-template-columns:1fr}.tzbox .res div{border:0;border-top:1px solid var(--line);padding:24px 0}.tzbox .res div:first-child{border:0}}

/* gates */
.gates{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ink)}
.gate{position:relative;height:88vh;min-height:520px;overflow:hidden;color:var(--ivory);text-decoration:none;background:#000}
.gate .film{transition:transform 1.6s var(--e),opacity 1s}
.gate .film video,.gate .film img{opacity:.62}
.gate:hover .film{transform:scale(1.06)}
.gate:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.65))}
.gate .gi{position:absolute;z-index:2;inset-inline:clamp(22px,3vw,48px);bottom:clamp(30px,6vh,64px)}
.gate h3{font-size:clamp(28px,2.6vw,44px);margin:20px 0 28px;max-width:420px}
.gate .film video.on{opacity:.62}
@media (max-width:900px){.gates{grid-template-columns:1fr}.gate{height:70vh;min-height:420px}}

/* sub-page hero */
.phero{height:78vh;min-height:520px;overflow:hidden;display:flex;align-items:flex-end}
.phero .film:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.25) 40%,rgba(0,0,0,.7))}
.phero .in{position:relative;z-index:2;width:100%;padding-bottom:clamp(50px,9vh,100px)}
.phero h1{font-size:clamp(46px,7.4vw,130px);margin-top:20px}
.phero .back2{color:rgba(243,238,230,.8)}
.phero ~ section .lx-h,.phero ~ section .lx-eyebrow{display:none!important}
.phero{height:58vh;min-height:440px}
.ck-a{background:#F3EEE6!important;color:#0A0A0A!important;border-color:#F3EEE6!important}
.hero .film:after{background:radial-gradient(90% 70% at 50% 50%,rgba(0,0,0,.42),rgba(0,0,0,.18) 70%),linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 30%,rgba(0,0,0,.15) 60%,rgba(0,0,0,.75) 100%)!important}
.hero h1,.hero .sub,.hero .kick{text-shadow:0 2px 30px rgba(0,0,0,.35)}
.nv .btn{white-space:nowrap}
@media (max-width:1100px){.nv .t{display:none}}

.dark,.hero,.phero,.reel,.mth,.lib,.cs,.ft,.gates,dialog.dk,#explore{--gray:#A39D94}
/* cookie banner — maison */
.ck{border-radius:0!important;background:#0A0A0A!important;color:#F3EEE6!important;border:1px solid rgba(243,238,230,.22)!important;box-shadow:0 20px 60px rgba(0,0,0,.4)!important;padding:24px 26px!important;max-width:440px!important}
.ck b{font:200 22px/1.2 var(--serif);display:block;margin-bottom:8px}
.ck a{color:#F3EEE6!important}
.ck-b button{border-radius:0!important;font:400 11px var(--sans)!important;letter-spacing:.24em;text-transform:uppercase;min-height:48px!important}
.ck-b .ck-e{border-color:rgba(243,238,230,.4)!important;color:#F3EEE6!important}
/* accessibility menu */
.acc{align-items:flex-end}
.acc .ab,.acc #a3{width:44px;height:44px;border-radius:50%;border:1px solid rgba(128,128,128,.45);background:rgba(10,10,10,.88);color:#F3EEE6;display:grid;place-items:center;cursor:pointer}
.ap{position:absolute;bottom:56px;inset-inline-end:0;width:260px;background:#0A0A0A;color:#F3EEE6;border:1px solid rgba(243,238,230,.22);padding:18px;display:flex;flex-direction:column;gap:6px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.ap[hidden]{display:none}
.ap .cap{margin-bottom:8px;color:#A39D94}
.ap button,.ap a{width:auto;height:auto;border-radius:0;min-height:44px;padding:0 14px;background:none;border:1px solid rgba(243,238,230,.2);color:#F3EEE6;font:400 14px var(--sans);text-align:start;cursor:pointer;display:flex;align-items:center;text-decoration:none}
.ap button[aria-pressed=true]{background:#F3EEE6;color:#0A0A0A}
.ap .fsr{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}
.ap .fsr button{justify-content:center;font-weight:500}
.ap .lv{font-size:13px;color:#A39D94;min-width:48px;text-align:center}
body.a-links a{text-decoration:underline!important;text-underline-offset:3px;outline:1px dashed currentColor;outline-offset:2px}
body.a-font,body.a-font *:not(svg):not(path){font-family:Arial,"Heebo",sans-serif!important;font-style:normal!important;letter-spacing:0!important}
body.a-still *,body.a-still *:before,body.a-still *:after{animation:none!important;transition:none!important}
body.a-still .mq div{transform:none!important}
body.hc{filter:none}
body.hc{--gray:#2B2925;--gray2:#1A1917}
body.hc .dark,body.hc .hero,body.hc .phero,body.hc .reel,body.hc .mth,body.hc .lib,body.hc .cs,body.hc .ft,body.hc .gates,body.hc dialog.dk{--gray:#E6E1D8}
body.hc .film:after{background:rgba(0,0,0,.7)!important}
body.hc .xp .frame .film:after{background:rgba(0,0,0,.6)!important}
/* LTR (English) */
html[dir=ltr] .lib .it:hover h3{transform:translateX(24px)}
html[dir=ltr] .dest .nm,html[dir=ltr] .dest .facts b,html[dir=ltr] .nums .s b{text-align:left}
html[dir=ltr] .nv .wm{direction:ltr}
html[dir=ltr] body{font-family:var(--sans)}
html[dir=ltr] h1,html[dir=ltr] h2,html[dir=ltr] h3,html[dir=ltr] .man .t,html[dir=ltr] .fd q,html[dir=ltr] .fq summary,html[dir=ltr] .cf .q,html[dir=ltr] .fl input{font-family:var(--bod);font-weight:400;letter-spacing:-.01em}
html[dir=ltr] .man .t{font-size:clamp(28px,3.8vw,62px);line-height:1.25}
.nv .lang{font:400 11px var(--sans);letter-spacing:.3em;text-decoration:none;border:1px solid currentColor;padding:8px 10px;opacity:.85}
.nv .lang:hover{opacity:1}
.wrap.pad{padding-left:clamp(20px,4.5vw,72px);padding-right:clamp(20px,4.5vw,72px)}
.cf .btn.solid{background:var(--ink)!important;color:var(--ivory)!important;border-color:var(--ink)!important}
.cf .btn.solid:before{background:var(--ivory)!important}
.cf .btn.solid:hover span{color:var(--ink)!important}
.cf .btn.solid span{color:inherit}
.tzc{display:inline-flex;gap:0;border:1px solid var(--line);margin-bottom:28px}
.tzc button{width:56px;height:44px;background:none;border:0;border-inline-start:1px solid var(--line);font:400 18px var(--bod);cursor:pointer;color:var(--ink)}
.tzc button:first-child{border:0}
.tzc button[aria-pressed=true]{background:var(--ink);color:var(--ivory)}
.tzbox .cap{display:block}

/* dialogs: always closable, scroll inside on phones */
html.dlg-open,html.dlg-open body{overflow:hidden}
dialog{max-height:calc(100dvh - 32px);overflow:hidden}
dialog .in{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:64px}
dialog .x{position:sticky;top:-48px;float:inline-end;margin:-48px 0 0;z-index:3;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font:300 26px/1 var(--sans);display:grid;place-items:center}
dialog.dk .x{background:var(--ink);color:var(--ivory);border-color:var(--linew)}
@media (max-width:760px){dialog{max-width:calc(100vw - 20px)}dialog .in{padding:60px 20px 28px}}
.cur{display:none!important}
