/* LIMINAL — prototype styles (Spanish-only site) */
:root{
  --paper:#F1F0EC; --paper2:#E7E6E1; --ink:#1B1A1A; --mute:#8A8883; --line:#D3D1CB;
  --teal:#3A8C84; --teal-l:#6FC2B7; --night:#0E1012; --night2:#15181A; --alu:#C9CBCD; --alu-d:#9A9DA0;
  --sans:"Inter Tight",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
  --pad:clamp(20px,3.4vw,48px); --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.mute{color:var(--mute)}
.wrap{padding-left:var(--pad);padding-right:var(--pad)}

/* ---------- NAV ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);transition:background .5s var(--ease),color .5s var(--ease),border-color .5s;border-bottom:1px solid transparent;color:#fff}
.nav .logo{width:112px;height:auto}
.nav .logo svg{width:100%;height:auto;display:block}
.nav ul{display:flex;gap:clamp(18px,3vw,40px);list-style:none}
.nav ul a{position:relative;padding:4px 0;opacity:.75;transition:opacity .3s}
.nav ul a:hover,.nav ul a.on{opacity:1}
.nav ul a.on::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor}
.nav.solid{background:rgba(241,240,236,.86);backdrop-filter:blur(12px);color:var(--ink);border-color:var(--line)}
.nav.dark.solid{background:rgba(14,16,18,.8);color:#EDEDEA;border-color:#23272a}
.btn{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;border:1px solid currentColor;display:inline-flex;gap:10px;align-items:center;cursor:pointer;background:none;color:inherit;transition:background .3s,color .3s}
.btn:hover{background:currentColor}.btn:hover span,.btn:hover{color:var(--paper)}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.teal:hover{background:#2e756e}

/* ---------- INTRO: pure video, nothing else ---------- */
.intro{position:relative;height:100vh;height:100svh;overflow:hidden;background:#000}
.intro video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease);transform:scale(1.04)}
.intro video.on{opacity:1}
.intro .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.25),transparent 25%,transparent 70%,rgba(0,0,0,.45))}
.intro .hint{position:absolute;left:0;right:0;bottom:26px;display:flex;justify-content:space-between;padding:0 var(--pad);color:#fff;opacity:.8}
.intro .count{font-variant-numeric:tabular-nums}
.intro .line{position:absolute;left:var(--pad);right:var(--pad);bottom:60px;height:1px;background:rgba(255,255,255,.2)}
.intro .line i{position:absolute;inset:0 100% 0 0;background:#fff}

/* ---------- INTRO v3: one portrait film at native size, centred, ambient blur fills the rest ---------- */
.intro.one{background:var(--night);isolation:isolate}
.intro.one .amb{position:absolute;inset:-10%;z-index:-1;filter:blur(70px) brightness(.85) saturate(1.35)}
.intro.one .amb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s var(--ease)}
.intro.one .amb video.on{opacity:1}
.intro.one .stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:min(84vh,1200px);aspect-ratio:3/4;overflow:hidden;background:#000;box-shadow:0 40px 140px -30px rgba(0,0,0,.8)}
.intro.one .stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s var(--ease)}
.intro.one .stage video.on{opacity:1}
.intro.one .hint{z-index:2}
/* phones & tablets in portrait: the portrait film simply fills the screen — native shape, no blow-up */
@media (max-aspect-ratio:4/5){
  .intro.one .stage{inset:0;left:0;top:0;transform:none;height:100%;width:100%;aspect-ratio:auto;box-shadow:none}
  .intro.one .amb{display:none}
}

/* "coming soon" object card */
.obj.soon{cursor:default}
.soonbox{height:100%;min-height:260px;border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;
  background:repeating-linear-gradient(90deg,transparent 0 47px,rgba(0,0,0,.04) 47px 48px),repeating-linear-gradient(0deg,transparent 0 47px,rgba(0,0,0,.04) 47px 48px)}
.soonbox h3{font-size:clamp(28px,2.8vw,40px);font-weight:500;letter-spacing:-.03em}
.soonbox p{max-width:320px;line-height:1.45;color:#55534f}
.soonbox .pill{align-self:flex-start}
.objs .grid{align-items:stretch}
.objs .grid .obj.soon{display:flex;flex-direction:column}
.objs .grid .obj.soon .soonbox{flex:1;margin-bottom:62px}
@media (max-width:820px){.objs .grid .obj.soon .soonbox{margin-bottom:0;min-height:0}}

/* strip on phones: no horizontal pin, just a vertical list */
@media (max-width:820px){
  .strip{height:auto!important;min-height:0;padding:14vh 0 10vh}
  .strip .track{flex-direction:column;align-items:stretch;height:auto;transform:none!important;gap:16px}
  .strip .intro-card{flex-basis:auto;padding:0 0 24px}
  .strip .card,.strip .card.wide{height:auto;width:100%;aspect-ratio:4/5}
  .strip .card.wide{aspect-ratio:16/10}
  .strip .prog{display:none}
}

/* strip: landscape stills get wider cards */
.strip .card.wide{aspect-ratio:16/9}
.strip .card img{width:100%;height:100%;object-fit:cover}

/* ---------- INTRO: triptych of portrait videos, shown at native sharpness ---------- */
.intro.tri{background:var(--night)}
.intro.tri .panels{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.intro.tri .panel{position:relative;overflow:hidden;background:#000}
.intro.tri .panel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:none;transition:opacity 1.6s var(--ease)}
.intro.tri .panel video.on{opacity:1}
@media (max-width:820px){.intro.tri .panels{grid-template-columns:1fr}}

/* Viga hero: two portrait videos on the right, title on the left */
.p-hero.split{background:var(--night)}
.p-hero.split .pv{position:absolute;top:0;bottom:0;width:44%;right:0;overflow:hidden}
.p-hero.split .pv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:820px){
  .p-hero.split .pv{width:100%;top:0;bottom:38%}
  .p-hero.split .veil{background:linear-gradient(to top,var(--night) 38%,transparent 70%)!important}
  .p-hero .t{flex-direction:column;align-items:flex-start}
  .p-hero .t > .mono{text-align:left!important;display:flex;gap:14px;flex-wrap:wrap}
  .p-hero .t > .mono br{display:none}
}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(40px)}
.rv-line{display:block;overflow:hidden;padding-bottom:.22em;margin-bottom:-.22em}.rv-line>span{display:inline-block}
.js-anim .rv-line>span{transform:translateY(105%)}

/* ---------- HOME ---------- */
.manif{padding:22vh var(--pad) 18vh;max-width:1400px}
.manif p{font-size:clamp(30px,4.4vw,64px);line-height:1.06;letter-spacing:-.03em}
.manif p .w{opacity:.14;transition:opacity .2s}
.manif .sub{margin-top:48px;display:flex;gap:48px;flex-wrap:wrap}

.objs{padding:0 var(--pad) 18vh}
.objs .head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:22px;border-bottom:1px solid var(--ink)}
.objs h2{font-size:clamp(40px,5vw,76px);font-weight:500;letter-spacing:-.045em;line-height:.95}
.objs .grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
.obj{position:relative;display:block;overflow:hidden;cursor:pointer}
.obj .media{position:relative;aspect-ratio:4/5;overflow:hidden}
.obj video,.obj img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .8s}
.obj:hover video,.obj:hover img{transform:scale(1.045)}
.obj .info{display:flex;justify-content:space-between;align-items:flex-end;padding:18px 0 0}
.obj h3{font-size:clamp(28px,2.8vw,40px);font-weight:500;letter-spacing:-.03em;margin-top:6px}
.obj .go{position:absolute;right:16px;top:16px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.35);transform:scale(.8);opacity:0;transition:.5s var(--ease)}
.obj:hover .go{transform:scale(1);opacity:1}
.pill{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border:1px solid currentColor;border-radius:99px;white-space:nowrap}
.pill.on{color:var(--teal)}
.aero-media{background:radial-gradient(ellipse at 50% 45%,#f4f4f2,#d9d9d6)}
.aero-media video{object-fit:contain!important}

/* horizontal film strip (pinned, scroll sideways) */
.strip{height:100vh;overflow:hidden;background:var(--night);color:#EDEDEA;position:relative}
.strip .track{display:flex;gap:24px;height:100%;align-items:center;padding:0 var(--pad);will-change:transform}
.strip .intro-card{flex:0 0 36vw;padding-right:4vw}
.strip .intro-card h2{font-size:clamp(40px,5vw,80px);font-weight:500;letter-spacing:-.045em;line-height:.95;margin-top:20px}
.strip .card{flex:0 0 auto;height:72vh;aspect-ratio:3/4;position:relative;overflow:hidden}
.strip .card video{width:100%;height:100%;object-fit:cover}
.strip .card .cap{position:absolute;left:14px;bottom:12px;color:#fff}
.strip .prog{position:absolute;left:var(--pad);right:var(--pad);bottom:32px;height:1px;background:#2a2e31}
.strip .prog i{position:absolute;inset:0 100% 0 0;background:var(--teal-l)}

.proceso{padding:18vh var(--pad)}
.proceso h2{font-size:clamp(40px,5vw,76px);font-weight:500;letter-spacing:-.045em}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}
.step{border-top:1px solid var(--ink);padding-top:18px}
.step .n{font-family:var(--mono);font-size:44px;color:var(--teal)}
.step h4{font-size:21px;font-weight:500;margin:22px 0 10px}
.step p{font-size:15px;line-height:1.45;color:#55534f}

.contact{background:var(--paper2);padding:18vh var(--pad) 36px;overflow:hidden}
.contact h2{font-size:clamp(52px,8vw,124px);font-weight:500;letter-spacing:-.05em;line-height:.92}
.contact .cta{display:flex;gap:14px;margin-top:48px;flex-wrap:wrap}
.contact .big{margin-top:12vh;color:var(--ink)}
.contact .big svg{width:100%;height:auto;display:block}
.contact .bottom{display:flex;justify-content:space-between;gap:20px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}

/* ---------- PRODUCT PAGES (shared) ---------- */
.p-hero{position:relative;height:100vh;height:100svh;overflow:hidden}
.p-hero video,.p-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-hero .t{position:absolute;left:var(--pad);right:var(--pad);bottom:7vh;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.p-hero h1{font-size:clamp(64px,13vw,210px);font-weight:500;letter-spacing:-.06em;line-height:.82}

/* scroll-scrubbed sequence */
.seq{position:relative;height:400vh}
.seq .stage{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:5fr 7fr;align-items:center;gap:24px;padding:0 var(--pad);overflow:hidden}
.seq canvas{width:100%;height:auto;max-height:86vh;object-fit:contain}
.seq .canvas-wrap{position:relative;display:flex;justify-content:center}
.seq .copy{position:relative;height:60vh}
.seq .say{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(30px)}
.seq .say h2{font-size:clamp(48px,7vw,112px);font-weight:500;letter-spacing:-.05em;line-height:.9}
.seq .say p{margin-top:28px;max-width:440px;font-size:19px;line-height:1.45}
.seq .deg{position:absolute;left:var(--pad);bottom:28px;display:flex;align-items:center;gap:14px}
.bar{height:1px;width:220px;background:currentColor;opacity:.3;position:relative}.bar i{position:absolute;inset:0 100% 0 0;background:var(--teal);opacity:1}
.loading{position:absolute;inset:0;display:grid;place-items:center}

.spec{padding:16vh var(--pad)}
.spec .head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:18px;border-bottom:1px solid currentColor}
.spec h3{font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-.02em}
table{width:100%;border-collapse:collapse}
td{padding:22px 0;border-bottom:1px solid var(--line);font-size:17px;vertical-align:top}
td.k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);width:24%;padding-top:25px}
.sw{display:flex;gap:18px;flex-wrap:wrap}.sw button{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:15px;opacity:.55;transition:opacity .3s}
.sw button.on,.sw button:hover{opacity:1}
.sw i{width:18px;height:18px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.15)}
.sw button.on i{outline:1px solid currentColor;outline-offset:3px}

.details{padding:0 var(--pad) 16vh}
.details .row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.details .m{aspect-ratio:3/4;overflow:hidden;position:relative}
.details video,.details img{width:100%;height:100%;object-fit:cover}
.details .cap{display:flex;justify-content:space-between;padding-top:10px}

.film{padding:16vh var(--pad);display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:center}
.film .vid{position:relative;aspect-ratio:9/16;max-height:84vh;margin-left:auto;overflow:hidden;cursor:pointer;background:#000}
.film video{width:100%;height:100%;object-fit:cover}
.film .play{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .4s}
.film .play div{width:88px;height:88px;border-radius:50%;border:1px solid rgba(255,255,255,.6);display:grid;place-items:center;color:#fff;backdrop-filter:blur(6px)}
.film .vid.playing .play{opacity:0}
.film h2{font-size:clamp(40px,5vw,76px);font-weight:500;letter-spacing:-.045em;line-height:.95}

/* ---------- FILM v2: centred poster frame over blurred ambient copy ---------- */
.film2{position:relative;min-height:100vh;overflow:hidden;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4vw;padding:12vh var(--pad);color:#EDEDEA;isolation:isolate}
.film2 .bg{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;filter:blur(48px) saturate(1.1) brightness(.55);z-index:-2;transform:scale(1.1)}
.film2 .shade{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(to bottom,var(--night) 0%,rgba(14,16,18,.35) 18%,rgba(14,16,18,.35) 82%,var(--night) 100%),
  radial-gradient(ellipse at center,transparent 30%,rgba(14,16,18,.55) 100%)}
.film2 .o6{opacity:.62}
.film2 .side.l h2{font-size:clamp(40px,4.6vw,76px);font-weight:500;letter-spacing:-.045em;line-height:.95;margin-top:22px}
.film2 .side.r{justify-self:end;text-align:right;line-height:1.9}
.film2 .frame{margin:0;width:min(30vw,420px,42.75vh);position:relative}
.film2 .vid{aspect-ratio:9/16;max-height:76vh;overflow:hidden;background:#000;cursor:pointer;box-shadow:0 40px 120px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08)}
.film2 .vid video{width:100%;height:100%;object-fit:cover}
.film2 .ctrl{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px}
.film2 .pp{all:unset;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;border-bottom:1px solid currentColor;padding-bottom:2px}
.film2 .t{opacity:.62;font-variant-numeric:tabular-nums}.film2 .snd{opacity:.62}
.film2 .prog{height:1px;background:rgba(255,255,255,.18);margin-top:12px;position:relative}
.film2 .prog i{position:absolute;inset:0 100% 0 0;background:var(--teal-l)}
@media (max-width:820px){
  .film2{grid-template-columns:1fr;justify-items:center;text-align:center;gap:6vh}
  .film2 .side.r{justify-self:center;text-align:center}
  .film2 .frame{width:min(78vw,380px)}
}

.setups{padding:0 var(--pad) 16vh}
.setups .row{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:24px;margin-top:40px;align-items:start}
.setups .m{overflow:hidden}.setups video,.setups img{width:100%;height:100%;object-fit:cover}
.setups .a,.setups .b,.setups .c{height:68vh}

.next{display:block;padding:14vh var(--pad);border-top:1px solid currentColor;position:relative;overflow:hidden}
.next .mono{opacity:.6}
.next h2{font-size:clamp(56px,10vw,160px);font-weight:500;letter-spacing:-.06em;line-height:.9;transition:transform .8s var(--ease)}
.next:hover h2{transform:translateX(2vw)}

/* ---------- VIGA: dark / cinematic ---------- */
body.viga{background:var(--night);color:#EDEDEA}
body.viga .mute{color:#7c807f}
body.viga td{border-color:#262a2d}
body.viga .spec .head{border-color:#EDEDEA}
body.viga .p-hero h1 .accent{color:var(--teal-l)}
body.viga .details .m{background:#000}

/* ---------- AERO: light / pure / aluminium ---------- */
body.aero{background:#ECECEA;color:#161717}
body.aero .p-hero{background:radial-gradient(ellipse at 55% 45%,#f4f4f2 0%,#e3e3e0 60%,#d6d6d3 100%)}
body.aero .p-hero img{object-fit:contain;padding:10vh 6vw 16vh 26vw}
body.aero .p-hero h1{color:#161717}
body.aero .grid-bg{background-image:linear-gradient(#d9d9d6 1px,transparent 1px),linear-gradient(90deg,#d9d9d6 1px,transparent 1px);background-size:48px 48px}
body.aero .seq .stage{background:radial-gradient(ellipse at 30% 50%,#f2f2f0 0%,#e2e2df 70%)}
body.aero .bar i{background:#161717}
body.aero .cad{padding:14vh var(--pad);background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body.aero .cad img{width:100%;height:auto;image-rendering:pixelated;margin:6vh 0 3vh}
.statusbox{margin-top:30px;display:inline-flex;gap:12px;align-items:center}
.dot{width:8px;height:8px;border-radius:50%;background:#e0a000;box-shadow:0 0 0 4px rgba(224,160,0,.18)}

/* ---------- page transition curtain ---------- */
.curtain{position:fixed;inset:0;z-index:100;pointer-events:none;background:var(--ink);transform:scaleY(0);transform-origin:bottom}
.curtain .lbl{position:absolute;left:var(--pad);bottom:var(--pad);color:var(--paper);opacity:0}

/* ---------- mobile ---------- */
@media (max-width:820px){
  .nav ul{display:none}
  .objs .grid,.steps,.details .row,.setups .row{grid-template-columns:1fr}
  .seq .stage{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;padding-top:76px;gap:8px}
  .seq canvas{max-height:52vh;width:auto;margin:0 auto}
  .seq .copy{height:32vh}
  .seq .say h2{font-size:clamp(40px,11vw,64px)}
  .seq .say p{font-size:16px;margin-top:14px}
  .film{grid-template-columns:1fr}
  .film .vid{margin:0 auto;max-height:70vh}
  .setups .a,.setups .b,.setups .c{height:60vh}
  .strip .intro-card{flex-basis:80vw}
}
@media (prefers-reduced-motion:reduce){.rv,.rv-line>span{opacity:1!important;transform:none!important}}

.details .row.gal{margin-top:24px}
.soonbox .teaser{width:100%;max-height:320px;object-fit:contain;margin-bottom:auto;mix-blend-mode:multiply}
@media (max-width:820px){.nav .logo{width:92px}}
.obj.soon .media.aero-t{background:#fff;display:flex;align-items:center;justify-content:center}.obj.soon .media.aero-t img{object-fit:contain;width:100%;height:100%;transform:none!important}

/* ---------- language switch ---------- */
.nav .lang{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:22px}
.nav .lang button{all:unset;cursor:pointer;opacity:.5;padding:4px 2px;transition:opacity .3s}
.nav .lang button:hover,.nav .lang button.on{opacity:1}
.nav .lang button.on{border-bottom:1px solid currentColor}
.nav .lang span{opacity:.3}
.nav ul{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
@media (max-width:820px){.nav .lang{margin-right:12px;gap:4px}.nav .btn{padding:10px 12px}}

/* ---------- Japanese typography ---------- */
html[lang=ja] body{font-family:"Noto Sans JP","Inter Tight",system-ui,sans-serif}
html[lang=ja] .mono{font-family:"JetBrains Mono","Noto Sans JP",monospace;letter-spacing:.04em}
html[lang=ja] h1,html[lang=ja] h2,html[lang=ja] h3{letter-spacing:0;font-weight:500}
html[lang=ja] .manif p{font-size:clamp(24px,3.2vw,46px);line-height:1.5;letter-spacing:.02em}
html[lang=ja] .seq .say h2{font-size:clamp(44px,6vw,96px)}
html[lang=ja] .contact h2{font-size:clamp(40px,6vw,96px);line-height:1.2}
html[lang=ja] .film2 .side.l h2,html[lang=ja] .objs h2,html[lang=ja] .proceso h2,html[lang=ja] .setups h2{font-size:clamp(32px,4vw,60px);line-height:1.25}
html[lang=ja] .strip .intro-card h2{font-size:clamp(30px,3.4vw,54px);line-height:1.3}
html[lang=ja] p{line-height:1.8}

/* ---------- phone menu ---------- */
.burger{all:unset;display:none;cursor:pointer;width:34px;height:34px;position:relative;margin-left:10px}
.burger i{position:absolute;left:6px;right:6px;height:1.5px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.burger i:nth-child(1){top:12px}.burger i:nth-child(2){top:21px}
.menu-open .burger i:nth-child(1){top:16px;transform:rotate(45deg)}.menu-open .burger i:nth-child(2){top:16px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:45;background:var(--night);color:#EDEDEA;display:flex;flex-direction:column;justify-content:center;gap:26px;padding:0 var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);font-size:15px}
.mnav > a{font-family:var(--sans);font-size:clamp(34px,9vw,52px);letter-spacing:-.03em;text-transform:none;border-bottom:1px solid #262a2d;padding-bottom:14px}
.mnav-cta{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.menu-open .mnav{clip-path:inset(0 0 0 0)}
.menu-open .nav{color:#EDEDEA!important;background:transparent!important;border-color:transparent!important}
@media (max-width:820px){.burger{display:block}.nav > .btn{display:none}}

/* ---------- "Explorar" label on the Viga card ---------- */
.obj .go{position:absolute;inset:auto;left:50%;top:50%;width:max-content;height:auto;white-space:nowrap;
  display:flex;align-items:center;gap:.35em;padding:0;border:0;border-radius:0;background:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  font-family:var(--sans);font-size:clamp(40px,4.4vw,72px);font-weight:500;letter-spacing:-.04em;text-transform:none;line-height:1;
  color:#F4F3EF;text-shadow:0 2px 30px rgba(0,0,0,.35);
  transform:translate(-50%,-40%);opacity:0;pointer-events:none;z-index:2;
  transition:opacity .5s var(--ease),transform .8s var(--ease)}
.obj .go i{font-style:normal;font-weight:300;transition:transform .6s var(--ease)}
.obj:hover .go{opacity:1;transform:translate(-50%,-50%)}
.obj:hover .go i{transform:translateX(8px)}
/* touch screens have no hover: keep the label visible, smaller, at the bottom of the image */
@media (hover:none){
  .obj .go,.obj:hover .go{opacity:1;top:auto;bottom:18px;left:20px;transform:none;font-size:28px;transition:none}
  .obj:hover .go i{transform:none}
}

/* JP hero title: katakana is full-height, needs real line spacing */
html[lang=ja] .p-hero h1{line-height:1.08;letter-spacing:-.02em}
html[lang=ja] .p-hero h1 .rv-line{padding-bottom:.06em;margin-bottom:0}
html[lang=ja] .p-hero h1 .rv-line:nth-child(2){font-size:.78em;letter-spacing:.02em;margin-top:.12em}

@media (max-width:820px){ .p-hero .t{align-items:flex-start!important} .p-hero .t > .mono{column-gap:18px;row-gap:6px} }

/* phone: "Los objetos" header stacks — title on top, subtitle below on its own line */
@media (max-width:820px){
  .objs .head{flex-direction:column;align-items:flex-start;gap:14px}
  .objs .head > .mono{font-size:11px;line-height:1.6}
}

/* hero: centred scroll arrow, locked to the page centre (same axis as the menu and the video) */
.intro .hint .cue{position:absolute;left:50%;transform:translateX(-50%);font-size:18px;line-height:1;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%,100%{transform:translate(-50%,0);opacity:.9}50%{transform:translate(-50%,6px);opacity:.5}}
@media (max-width:820px){.intro .hint{font-size:10px}}
