/* Pantalla «portada»: solo lo propio de esta maqueta, encima de comun.css (construir-css.py). No editar a mano. */
.btn{cursor:revert;white-space:revert}
.hero{min-height:revert;display:revert;grid-template-columns:revert;align-items:revert}
.hero::after{inset:revert}
.hero .in{min-width:revert;width:revert}
.hero h1{margin-bottom:revert}
.hero p{margin-bottom:revert}
.hero .foot{line-height:revert}
@media (max-width:900px){
  .hero{min-height:revert}
}
.strip{margin-bottom:revert}
.rh h2{display:revert;align-items:revert;gap:revert;flex-wrap:revert}
.card .m{display:revert;justify-content:revert;align-items:revert;gap:revert;font-variant-numeric:revert}
footer{margin-top:revert}
footer{position:revert;isolation:revert;overflow:revert;margin-top:revert;display:revert;flex-direction:revert;min-height:revert}
footer .cols{position:revert;z-index:revert}
footer .bot{position:revert;z-index:revert;border-top-color:revert;padding-bottom:revert}
footer .brand{color:revert}
.nav .tema{flex:revert}
:root{color-scheme:dark;--bg:#101518;--s1:#181F23;--s2:#212A2F;--tx:#E6ECEE;--tx2:#A3B1B7;--tx3:#8E9BA2;--line:#2B363B;--line2:#3C4A50;--acc:#5FBBFF;--acc2:#31A8FF;--acctx:#101518;--struct:#4FB5AC;--struct2:#17322F;--glass:rgba(255,255,255,.08);--glass2:rgba(255,255,255,.14);--shadow:0 20px 60px rgba(0,0,0,.45);--navbg:rgba(255,255,255,.02);--herog:linear-gradient(to top,var(--bg) 0%,color-mix(in srgb,var(--bg) 42%,transparent) 30%,transparent 58%),linear-gradient(to right,color-mix(in srgb,var(--bg) 50%,transparent),transparent 52%)}
:root[data-theme="light"]{color-scheme:light;--bg:#F2F4F5;--s1:#FFFFFF;--s2:#E9EDEE;--tx:#12181C;--tx2:#46545C;--tx3:#5C6B73;--line:#D3DADD;--line2:#BCC6CA;--acc:#1569AF;--acc2:#1569AF;--acctx:#FFFFFF;--struct:#146965;--struct2:#D9E9E7;--glass:rgba(18,24,28,.05);--glass2:rgba(18,24,28,.1);--shadow:0 20px 50px rgba(18,24,28,.14);--navbg:rgba(255,255,255,.22);--herog:linear-gradient(to top,var(--bg) 0%,color-mix(in srgb,var(--bg) 55%,transparent) 14%,transparent 34%),linear-gradient(to right,color-mix(in srgb,var(--bg) 58%,transparent),transparent 50%)}
:root{--disp:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;--body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;--mono:"DM Mono",ui-monospace,Menlo,monospace;--r:12px;--rbtn:12px;--pad:clamp(20px,4vw,60px)}
h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:1.05;letter-spacing:-.03em;text-wrap:balance;font-variation-settings:"opsz" 96}
h1 b,h2 b,h3 b{font-weight:800}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:var(--rbtn);font-family:var(--body);font-weight:600;font-size:0.9375rem;transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,border-color .3s;border:1px solid transparent}
.btn.dos{padding:11px 22px 11px 18px;text-align:left}
.btn.dos span{display:flex;flex-direction:column;line-height:1.15}
.btn.dos small{font-family:var(--mono);font-size:0.65625rem;font-weight:500;letter-spacing:.04em;opacity:.85;margin-top:3px}
.nav .logo{font-family:var(--disp);font-weight:700;font-size:1.0625rem;text-transform:uppercase;letter-spacing:.02em;margin-right:14px;white-space:nowrap;letter-spacing:.01em;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.nav .cta{padding:10px 16px;border-radius:999px;background:var(--acc);color:var(--acctx);font-weight:700;font-size:0.875rem;margin-left:6px;white-space:nowrap}
.reveal{position:absolute;inset:0;z-index:-1}
.reveal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.reveal .raw{filter:saturate(.15) contrast(.72) brightness(.9)}
.reveal .dev{clip-path:inset(0 calc(100% - var(--x,20%)) 0 0)}
.reveal video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.reveal.con-video img.dev{display:none}
.reveal.con-video .devc{filter:url(#rawfx)}
.pin{position:relative}
.meta .new.grande{font-size:0.9375rem;color:#fff;font-weight:700;letter-spacing:.06em}
.empezando{margin:0 var(--pad);padding:14px 18px;background:var(--glass);border:1px solid var(--line);border-radius:var(--r);font-size:0.9375rem;color:var(--tx2);display:flex;gap:12px 20px;align-items:center;flex-wrap:wrap}
.empezando b{color:var(--tx)}
.reveal .handle{position:absolute;top:0;bottom:0;left:var(--x,20%);width:1px;background:rgba(255,255,255,.7);z-index:2}
.reveal .knob{position:absolute;top:13%;left:var(--x,20%);transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;background:var(--acc);color:var(--acctx);display:grid;place-items:center;box-shadow:0 0 0 8px rgba(255,255,255,.12);cursor:ew-resize;z-index:3;font-size:1.0625rem;font-weight:700;user-select:none;touch-action:none}
.reveal .tg{position:absolute;top:calc(13% - 14px);white-space:nowrap;padding:6px 10px;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);border-radius:var(--r);z-index:2}
.reveal .tg.a{right:calc(100% - var(--x,20%) + 38px)}
.reveal .tg.b{left:calc(var(--x,20%) + 38px)}
.reveal .hint{position:absolute;left:calc(var(--x,20%) + 38px);top:calc(13% + 26px);font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);z-index:2;white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.6);transition:opacity .6s}
.reveal.tocado .hint{opacity:0}
.reveal{cursor:ew-resize}
@media (max-height:640px){
  .reveal .tg,.reveal .hint{display:none}
  .reveal .knob{top:16%}
}
.reveal .devc{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.reveal .devc:not([hidden]) ~ .raw,.reveal.con-panel .raw{display:none}
.reveal.con-panel .tg.a{background:rgba(0,0,0,.5)}
.lr{position:absolute;right:var(--pad);top:auto;bottom:112px;z-index:2;width:300px;background:rgba(20,26,30,.3);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);border-radius:var(--r);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);color:#E6ECEE;font-family:var(--mono);box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden}
.lrh{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.12);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.lrh button{font-family:var(--mono);font-size:0.625rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;padding:5px 9px;border-radius:calc(var(--r) * .5);cursor:pointer}
.lrg{padding:8px 14px 10px;border-bottom:1px solid rgba(255,255,255,.1)}
.lrg:last-of-type{border-bottom:none}
.lrt{font-size:0.625rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);text-align:center;padding:2px 0 6px}
.lrr{display:grid;grid-template-columns:96px 1fr 44px;align-items:center;gap:10px;padding:3px 0;font-size:0.71875rem;color:rgba(255,255,255,.85);cursor:ns-resize}
.lrr span{text-align:right;white-space:nowrap}
.lrr output{text-align:right;font-variant-numeric:tabular-nums;color:#fff}
.lrr input{width:100%;height:18px;margin:0;accent-color:var(--acc);cursor:ew-resize}
.lrr.tocada output{color:var(--acc)}
.lrf{padding:9px 14px 6px;font-size:0.625rem;line-height:1.45;color:rgba(255,255,255,.55)}
.lrb{display:flex;gap:8px;padding:4px 14px 12px}
.lrb button{font-family:var(--mono);font-size:0.625rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);color:#fff;padding:6px 10px;border-radius:calc(var(--r) * .5);cursor:pointer}
.lrb #lrsol{background:var(--acc);color:var(--acctx);border-color:transparent}
.lrp{font-size:0.6875rem;letter-spacing:.06em;text-transform:none;color:rgba(255,255,255,.7)}
.lrp b{color:#fff;font-variant-numeric:tabular-nums}
@media (max-width:1180px){
  .lr{position:static;width:auto;margin:16px var(--pad) 0}
  .hero{align-items:end}
  .hero .foot{display:none}
}
@media (max-width:640px){
  .lr{display:none!important}
}
@media (max-height:700px) and (min-width:1181px){
  .lr{top:auto;bottom:24px}
}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--glass);font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx2);font-weight:600}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}
.sh{display:grid;grid-template-columns:1.25fr .85fr;gap:30px 60px;align-items:end;max-width:1180px;margin:0 auto 34px;padding:0 var(--pad)}
.sh h2{font-size:clamp(2rem,3.6vw,3.125rem);margin-top:18px;line-height:1.02;letter-spacing:-.03em}
.sh h2 .g{display:block;color:var(--tx2)}
.sh > p{color:var(--tx2);font-size:0.96875rem;max-width:42ch;padding-bottom:12px}
@media (max-width:900px){
  .sh{grid-template-columns:1fr;gap:12px}
  .sh > p{padding-bottom:0}
}
.hero{position:relative;overflow:hidden;isolation:isolate;padding-top:112px;--sw:min(1180px,88vw);--wb:40px;--sky:linear-gradient(180deg,#111a21 0%,#18252e 22%,#223441 45%,#2f4757 68%,#3d586b 86%,#466377 100%);background:var(--sky)}
:root[data-theme="light"] .hero{--sky:linear-gradient(180deg,#9fb6c6 0%,#b9cad6 40%,#d3e0e8 75%,#e6eef2 100%)}
.hero .in{position:relative;z-index:6;text-align:center;max-width:1100px;margin:0 auto;padding:0 var(--pad)}
.hero{max-width:1920px;margin-left:auto;margin-right:auto}
footer.agua .cols,footer.agua .bot{max-width:1180px;margin-left:auto;margin-right:auto}
.hero .lab{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:18px}
.hero .lab .n{width:auto;height:26px;display:block}
.hero h1{font-size:clamp(2.125rem,4.5vw,4.125rem);font-weight:800;line-height:1.02;margin:0 auto 16px;letter-spacing:-.03em}
@media (min-width:760px){
  .hero h1 .lt{white-space:nowrap}
}
.hero h1 .lt{display:block;font-weight:800}
.hero .meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;align-items:center;font-family:var(--mono);font-size:0.8125rem;color:var(--tx2);margin-bottom:16px}
.hero .meta .new{color:var(--struct);font-weight:600}
.hero p{font-size:clamp(1rem,1.2vw,1.125rem);color:var(--tx2);max-width:52ch;margin:0 auto 22px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.hero .gar{margin:14px 0 0;font-family:var(--body);font-size:0.90625rem;letter-spacing:0;color:var(--tx2);max-width:none}
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.stage{position:relative;height:calc(var(--sw) * .5625 + var(--wb) + var(--sw) * .34);margin-top:44px}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:min(30%,420px);z-index:6;pointer-events:none;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--bg) 70%,transparent) 55%,var(--bg) 100%)}
.capa{position:absolute;left:50%;transform:translate(-50%,var(--py,0px));width:max(100%,1100px);max-width:none;pointer-events:none;user-select:none;will-change:transform}
.capa.fondo{top:calc(var(--sw) * -.03);z-index:1;opacity:.82;filter:brightness(.92) contrast(.78) saturate(.65);-webkit-mask-image:linear-gradient(transparent 0,#000 16%);mask-image:linear-gradient(transparent 0,#000 16%)}
.capa.media{top:calc(var(--sw) * .13);z-index:2;filter:brightness(.86) contrast(.94) saturate(.82)}
.capa.frente,.capa.casitas{top:calc(var(--sw) * .5625 + var(--wb) - var(--sw) * .12);z-index:4;filter:brightness(.78) saturate(.88)}
.capa.casitas{z-index:5}
.screen{position:absolute;left:0;right:0;margin:0 auto;top:0;width:var(--sw);border-radius:16px;overflow:hidden;z-index:3;border:1px solid rgba(255,255,255,.16);box-shadow:0 40px 120px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12);background:rgba(14,19,22,.86);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);transform:translateY(var(--py,0px));will-change:transform;animation:upo 1.1s .55s both}
.screen .winbar{height:var(--wb);padding:0 16px;box-sizing:border-box}
.screen .winbar em{font-style:normal;margin-left:10px;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.62);font-size:0.625rem}
.scrin{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000;isolation:isolate}
@keyframes upo{from{opacity:0}to{opacity:1}}
.screen .reveal{z-index:0}
.screen .lr{right:18px;top:18px;bottom:auto}
@media (max-width:1180px){
  .screen .lr{display:none}
}
.hero .foot{position:absolute;right:var(--pad);bottom:22px;z-index:7;font-family:var(--mono);font-size:0.6875rem;color:rgba(255,255,255,.55);text-align:right;text-shadow:0 1px 6px rgba(0,0,0,.6)}
@media (max-width:900px){
  .hero{padding-top:112px}
}
@media (max-width:640px){
  .hero{--sw:calc(100vw - 28px);--wb:34px}
  .hero{padding-top:126px}
  header.hero .in{padding-top:0}
  .hero .meta{flex-direction:column;gap:6px}
  .hero .meta .box{border:0;padding:0;font-size:0.8125rem;color:var(--tx2)}
  .hero .cta{flex-direction:row}
  @media (max-width:389px){
    .hero .cta{gap:10px}
    .hero .cta .btn{padding:13px 15px;font-size:0.875rem;gap:8px}
  }
  .scrin{aspect-ratio:4/3}
  .hero::after{height:110px;background:linear-gradient(180deg,transparent 0%,var(--bg) 100%)}
  .stage{margin-top:8px;height:calc(36px + var(--sw) * .75 + var(--wb) + 215px)}
  .capa{width:900px}
  .capa.fondo{top:0}
  .capa.media{top:40px}
  .screen{top:36px;border-radius:12px}
  .capa.frente,.capa.casitas{left:auto;right:-20px;width:760px;transform:translate(0,var(--py,0px));top:calc(36px + var(--sw) * .75 + var(--wb) - 24px)}
}
.reveal{touch-action:pan-y}
.intro{padding:110px var(--pad) 80px;max-width:1360px;margin:0 auto}
.intro .pill{margin-bottom:34px}
.intro p{font-family:var(--body);font-weight:500;font-size:clamp(1.375rem,2.3vw,2rem);line-height:1.34;margin:0 0 30px;color:var(--tx);letter-spacing:-.02em}
.intro p.rt{opacity:.25;transition:opacity .45s ease}
.intro p.rt.on{opacity:1}
@media (prefers-reduced-motion:reduce){
  .intro p.rt{transition:opacity .45s ease!important}
}
@media (max-width:640px){
  .intro{padding:90px var(--pad) 60px}
}
.feat{padding:30px 0 130px}
.tabs{display:flex;justify-content:space-between;gap:8px;max-width:1180px;margin:0 auto 22px;padding:0 var(--pad)}
.tabs button{flex:1;padding:11px 18px;border-radius:999px;border:1px solid transparent;background:none;color:var(--tx2);font-family:var(--body);font-weight:500;font-size:0.9375rem;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
@media (hover:hover){
  .tabs button:hover{color:var(--tx)}
}
.tabs button[aria-selected="true"]{background:var(--s2);color:var(--tx)}
.shotw{padding:0 var(--pad)}
.shot{position:relative;max-width:1180px;margin:0 auto;aspect-ratio:16/9;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--s1)}
.shot .pan{position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .6s,transform .9s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.shot .pan.on{opacity:1;transform:none;pointer-events:auto}
.cat{position:absolute;inset:0;padding:26px 28px;display:grid;grid-template-rows:auto 1fr;gap:18px;background:var(--s1)}
.cath{display:flex;justify-content:space-between;align-items:center;gap:12px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips b,.chips i{font-style:normal;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;padding:6px 10px;border-radius:999px;border:1px solid var(--line);color:var(--tx3)}
.chips b{background:var(--s2);color:var(--tx);font-weight:600}
.grid8{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-content:center}
.g8{position:relative;aspect-ratio:3/2;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--s2)}
.g8 img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){
  .g8:hover img{transform:scale(1.05)}
}
.g8 .rot{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(to top,rgba(12,20,24,.92),rgba(12,20,24,0));font-family:var(--disp);font-weight:800;font-size:0.9375rem;line-height:1.1;color:#fff}
.ba{position:absolute;inset:0;cursor:ew-resize;user-select:none;touch-action:pan-y;background:#000}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .rawi{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.ba .bah{position:absolute;top:0;bottom:0;left:var(--x,50%);width:1px;background:rgba(255,255,255,.8);z-index:2}
.ba .knob{position:absolute;top:50%;left:var(--x,50%);transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:var(--acc);color:var(--acctx);display:grid;place-items:center;font-weight:700;font-size:1rem;box-shadow:0 0 0 8px rgba(255,255,255,.12);z-index:3;touch-action:none}
.ba .tg{position:absolute;top:18px;padding:6px 10px;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);border-radius:var(--r);z-index:2}
.ba .tg.a{left:18px}
.ba .tg.b{right:18px}
.ba .hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);text-shadow:0 1px 8px rgba(0,0,0,.6);white-space:nowrap;transition:opacity .5s}
.ba.tocado .hint{opacity:0}
.mapas{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:30px;align-items:center;background:var(--s1)}
.mapas figure{margin:0;display:grid;gap:12px}
.mapas img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.mapas figcaption{font-size:0.84375rem;color:var(--tx2);line-height:1.45}
.mapas figcaption b{display:block;font-family:var(--disp);font-size:1.25rem;font-weight:800;color:var(--tx);margin-bottom:3px}
@media (max-width:640px){
  .shot{aspect-ratio:auto;height:580px}
  .cat{padding:16px}
  .grid8{grid-template-columns:1fr 1fr}
  .grid8 .g8:nth-child(n+7){display:none}
  .cath{flex-direction:column;align-items:start;gap:8px}
  .shot{height:620px}
  .mapas{grid-template-columns:1fr;gap:14px;padding:16px}
  .mapas img{aspect-ratio:16/9}
  .mapas figcaption{font-size:0.75rem}
  .mapas figcaption b{font-size:1rem}
  .ba .tg,.ba .hint{display:none}
}
.tnav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:16px;max-width:1180px;margin:22px auto 0;padding:0 var(--pad)}
.tnav p{text-align:center;color:var(--tx2);font-size:0.9375rem}
.tnav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:var(--glass);color:var(--tx);font-size:1.375rem;line-height:1;cursor:pointer;font-family:var(--body)}
@media (hover:hover){
  .tnav button:hover{background:var(--glass2)}
}
@media (max-width:640px){
  .tabs{flex-wrap:wrap}
  .tabs button{flex:1 1 45%;font-size:0.8125rem;padding:10px 12px}
}
.stack{padding:20px 0 40px}
.scs{max-width:1360px;margin:0 auto;padding:0 var(--pad) 30px}
.scm{display:block;height:0}
.sc{position:sticky;top:110px;margin-bottom:34px;background:var(--s1);overflow:hidden;display:grid;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);transform-origin:50% 0;will-change:transform,opacity}
.sch{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:30px 32px 6px}
.sch h3{font-size:clamp(1.625rem,2.8vw,2.5rem);margin-top:14px;line-height:1.05}
.sch h3 b{font-weight:800;color:var(--acc2)}
.sch p{color:var(--tx2);max-width:64ch;font-size:0.9375rem;margin-top:10px}
.schr{display:grid;gap:8px;justify-items:end;padding-bottom:6px}
.desliza{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.desliza::after{content:" \2194"}
.sch .all{font-family:var(--mono);font-size:0.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);white-space:nowrap}
@media (hover:hover){
  .sch .all:hover{color:var(--tx)}
}
.sc .rw{align-self:start;margin-top:6px;--pad:32px;min-width:0}
.sch{min-width:0}
.sc .track{padding:18px 32px 26px;scroll-snap-type:none;scroll-behavior:auto;--f:84px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 calc(100% - var(--f)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 calc(100% - var(--f)),transparent 100%)}
.sc .track.ini{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--f)),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--f)),transparent 100%)}
.sc .track.fin{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 100%)}
.sc .track.ini.fin{-webkit-mask-image:none;mask-image:none}
@media (max-width:900px){
  .sc .track{--f:36px}
}
.sch p{max-width:86ch}
.scf{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);margin:0 32px;padding:20px 0 26px}
.scf div{padding:0 22px;border-left:1px solid var(--line)}
.scf div:first-child{padding-left:0;border-left:0}
.scf b{display:block;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--acc2);font-weight:600;margin-bottom:6px}
.scf span{display:block;font-size:0.84375rem;line-height:1.45;color:var(--tx2)}
@media (max-height:780px) and (min-width:901px){
  .sc{position:static}
}
.sc .card{width:min(340px,70vw)}
.sc .arr{top:calc(50% - 8px);bottom:auto;transform:translateY(-50%);width:46px;min-width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:1.625rem;line-height:1;opacity:1;display:grid;place-items:center;padding-bottom:4px;transition:background .3s,opacity .3s}
@media (hover:hover){
  .sc .arr:hover{background:var(--glass2)}
}
.sc .arr.l{left:14px}
.sc .arr.r{right:14px}
.sc .rw:has(.track.inicio) .arr.l{opacity:.3}
@media (max-width:900px){
  .scs{padding-bottom:10px}
  .sc{position:static;top:auto;margin-bottom:16px}
  .schr{justify-items:start}
  .scf{grid-template-columns:1fr 1fr;gap:18px 0;margin:0 22px}
  .scf div:nth-child(odd){padding-left:0;border-left:0}
  .sch{flex-direction:column;align-items:start;padding:24px 22px 0}
  .sc .rw{--pad:22px}
  .sc .track{padding:16px 22px 24px}
  .scs.fx .e{opacity:0;transform:translateY(24px);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1);transition-delay:var(--ed,0ms)}
  .scs.fx .e.img{transform:scale(1.08)}
  .scs.fx .e.on{opacity:1;transform:none}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .scs.fx .e{transform:none!important;transition:opacity .75s ease!important;transition-delay:var(--ed,0ms)!important}
}
.vivo{max-width:1180px;margin:0 auto 6px;padding:14px var(--pad) 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:0.875rem;color:var(--tx2);line-height:1.5}
.vivo b{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--acc2);font-weight:600}
.vivo .pt{width:8px;height:8px;border-radius:50%;background:var(--ok,#4fd1a5);align-self:center;flex:0 0 auto}
.vivo{flex-wrap:nowrap}
.vivo .pt{align-self:flex-start;margin-top:7px}
.vivo .its{display:grid;gap:3px}
@media (max-width:640px){
  .vivo{font-size:0.84375rem;flex-wrap:wrap}
}
.pl{align-items:stretch}
.pl .plan{display:flex;flex-direction:column;gap:10px}
.pl .plan>.btn{margin-top:auto;align-self:flex-start}
.card .abierto{font-size:0.6875rem}
.card .badge.cand::before{content:"";display:inline-block;width:9px;height:11px;margin-right:6px;vertical-align:-1px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 14'%3E%3Cpath d='M6 0a4 4 0 0 0-4 4v2H1v8h10V6h-1V4a4 4 0 0 0-4-4zm-2 6V4a2 2 0 1 1 4 0v2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 14'%3E%3Cpath d='M6 0a4 4 0 0 0-4 4v2H1v8h10V6h-1V4a4 4 0 0 0-4-4zm-2 6V4a2 2 0 1 1 4 0v2z'/%3E%3C/svg%3E") center/contain no-repeat}
.antun{max-width:1180px;margin:50px auto 30px;padding:0 var(--pad);display:grid;grid-template-columns:minmax(260px,.78fr) 1.22fr;gap:56px;align-items:center}
.antun .retrato{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:var(--s1);border:1px solid var(--line)}
.antun .retrato img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;will-change:transform,filter}
.antun .retrato{will-change:transform}
.antun .retrato::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),transparent 40%);pointer-events:none}
.antun .ac{position:absolute;left:16px;bottom:14px;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);z-index:1}
.antun.anim p span,.antun.anim .firma,.antun.anim .terms div{opacity:.22;transition:opacity .2s linear}
.antun h2{font-size:clamp(2rem,3.6vw,3.125rem);margin:16px 0 20px;line-height:1.02;letter-spacing:-.03em}
.antun h2 .g{display:block;color:var(--tx2)}
.antun p{color:var(--tx2);margin-bottom:14px;max-width:58ch}
.antun .firma{font-family:var(--disp);font-weight:800;font-size:1.75rem;color:var(--acc2)}
.antun .terms{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:26px}
.antun .terms div{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tx3);padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.antun .terms b{display:block;font-family:var(--disp);font-size:1.125rem;color:var(--tx);font-weight:800;text-transform:none;letter-spacing:-.01em;margin-top:2px}
@media (max-width:900px){
  .antun{grid-template-columns:1fr;gap:24px;margin-top:20px}
  .antun .retrato{aspect-ratio:4/3}
  .antun .retrato img{object-position:50% 25%}
  .antun .terms{grid-template-columns:1fr 1fr}
}
.faqf{padding:90px 0 120px}
.fq{display:grid;grid-template-columns:344px 1fr;gap:28px;max-width:1180px;margin:0 auto;padding:0 var(--pad);align-items:start}
.fcol{position:sticky;top:110px;display:grid;gap:70px}
.fcats{display:grid;gap:6px}
.fcats button{padding:12px 16px;border-radius:999px;border:1px solid transparent;background:none;color:var(--tx2);font-family:var(--body);font-weight:500;font-size:0.9375rem;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
@media (hover:hover){
  .fcats button:hover{color:var(--tx)}
}
.fcats button[aria-selected="true"]{background:var(--s2);border-color:var(--line);color:var(--tx)}
.got{background:var(--s1);border:1px solid var(--line);padding:24px;display:grid;gap:10px;justify-items:start}
.got img{width:52px;height:52px;border-radius:50%;object-fit:cover;object-position:50% 12%;margin-bottom:6px}
.got h4{font-family:var(--disp);font-size:1.5rem;font-weight:800;line-height:1.05}
.got p{font-size:0.90625rem;color:var(--tx2)}
.got a{font-family:var(--mono);font-size:0.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin-top:8px}
.flist .fg{display:none;gap:10px}
.flist .fg.on{display:grid}
.flist details{background:var(--s1);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);border-radius:16px;padding:0 24px}
.flist summary{list-style:none;cursor:pointer;padding:32px 0;font-weight:500;font-size:1rem;display:flex;justify-content:space-between;gap:20px;align-items:center}
.flist summary::-webkit-details-marker{display:none}
.flist summary::after{content:"";width:9px;height:9px;border-right:1.5px solid var(--tx3);border-bottom:1.5px solid var(--tx3);transform:rotate(45deg);transition:transform .3s;flex:0 0 auto;margin:0 6px 4px 0}
.flist details[open] summary::after{transform:rotate(-135deg);margin-bottom:-4px}
.flist details p{padding:0 0 24px;color:var(--tx2);font-size:0.90625rem;max-width:64ch}
@media (max-width:900px){
  .fq{grid-template-columns:1fr}
  .fcol{position:static;gap:24px}
  .fcats{grid-template-columns:1fr 1fr 1fr}
  .fcats button{padding:10px 8px;font-size:0.8125rem}
  .fcol{display:contents}
  .fcats{order:1}
  .flist{order:2}
  .got{order:3;margin-top:8px}
}
:root{--cw:max(100vw,1200px)}
.cierre{position:relative;overflow:hidden;padding:150px 0 0;background:linear-gradient(180deg,var(--bg) 0%,#0d161b 100%);isolation:isolate}
:root[data-theme="light"] .cierre{background:linear-gradient(180deg,var(--bg),#dfe6ea)}
.cin{text-align:center;max-width:1100px;margin:0 auto;padding:0 var(--pad);position:relative;z-index:1}
.cierre h2{font-size:clamp(2rem,4.2vw,3.75rem);margin:16px auto 20px;line-height:1.02;letter-spacing:-.03em}
@media (min-width:760px){
  .cierre h2{white-space:nowrap}
}
.cierre h2 .g{display:block;color:var(--acc2);font-style:italic}
.cin > p{color:var(--tx2);font-size:clamp(1rem,1.25vw,1.125rem);max-width:62ch;margin:0 auto 18px}
.cierre .cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.cierre .cin > .ref{margin:0 auto 22px;max-width:none;font-family:var(--mono);font-size:0.71875rem;letter-spacing:.05em;color:var(--tx3)}
.cap{position:relative;z-index:2;height:calc(var(--cw) * .376);margin-top:-26px;pointer-events:none}
.capa.cierre-capa{top:0;z-index:2;width:var(--cw);filter:brightness(.85) saturate(.9);-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
footer.agua{position:relative;z-index:3;margin-top:calc(var(--cw) * -.26);padding-top:150px;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--s1) 55%,transparent) 30%,color-mix(in srgb,var(--s1) 92%,transparent) 60%,var(--s1) 100%)}
@media (max-width:900px){
  :root{--cw:1100px}
  .cierre{padding:100px 0 0}
  .cap{margin-top:0;height:calc(var(--cw) * .30)}
  .capa.cierre-capa{-webkit-mask-image:linear-gradient(#000 55%,transparent 92%);mask-image:linear-gradient(#000 55%,transparent 92%)}
  footer.agua{margin-top:calc(var(--cw) * -.16);padding-top:70px}
}
.row{padding:26px 0 10px}
.rh{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:0 var(--pad);margin-bottom:14px}
.rh h2{font-size:clamp(1.5rem,2.4vw,2.125rem)}
.vermas{padding:18px var(--pad) 0}
.rw{position:relative}
.track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px var(--pad) 22px;scroll-padding-inline:var(--pad);scrollbar-width:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 calc(var(--pad) * .9),#000 calc(100% - var(--pad) * .9),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 calc(var(--pad) * .9),#000 calc(100% - var(--pad) * .9),transparent 100%)}
.track.inicio{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--pad) * .9),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--pad) * .9),transparent 100%)}
.track::-webkit-scrollbar{display:none}
.card{position:relative;flex:0 0 auto;width:min(300px,64vw);aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:var(--s1);scroll-snap-align:start;border:1px solid var(--line);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .45s;transform-origin:center}
.card.t32{width:min(300px,64vw);aspect-ratio:16/10}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.card:focus-visible{transform:scale(1.07);z-index:3;border-color:var(--line2);box-shadow:var(--shadow)}
@media (hover:hover){
  .card:hover{transform:scale(1.07);z-index:3;border-color:var(--line2);box-shadow:var(--shadow)}
  .card:hover img{transform:scale(1.04)}
}
.card .ci{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;transition:padding .45s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){
  .card:hover .ci{padding-top:64px;background:linear-gradient(to top,rgba(0,0,0,.9) 50%,rgba(0,0,0,0))}
}
.card .d{font-family:var(--body);font-size:0.78125rem;line-height:1.4;color:rgba(255,255,255,.88);max-height:0;overflow:hidden;opacity:0;margin-top:0;transition:max-height .45s cubic-bezier(.2,.8,.2,1),opacity .35s,margin .45s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
@media (hover:hover){
  .card:hover .d{max-height:4.3em;opacity:1;margin-top:6px}
}
.card h3{font-size:1.1875rem;line-height:1.1;color:#fff}
.card .m{font-family:var(--mono);font-size:0.6875rem;color:rgba(255,255,255,.75);margin-top:6px;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s,opacity .4s}
@media (hover:hover){
  .card:hover .m{max-height:40px;opacity:1}
}
.card .m .ab{color:var(--acc2);font-weight:600}
.card .abierto{position:absolute;top:10px;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:var(--r)}
.card .abierto i{width:0;height:0;border-left:7px solid var(--acc2);border-top:4px solid transparent;border-bottom:4px solid transparent}
.arr{position:absolute;top:0;bottom:0;width:var(--pad);min-width:44px;border:none;background:none;color:var(--tx);font-size:2.75rem;cursor:pointer;z-index:4;opacity:0;transition:opacity .3s;font-family:var(--body);line-height:1}
.arr.r{right:0}
.arr.l{left:0}
@media (hover:hover){
  .rw:hover .arr{opacity:1}
}
@media (hover:none){
  .arr{display:none}
  .card .m{max-height:40px;opacity:1}
}
.strip{display:grid;grid-template-columns:1.45fr 1fr;gap:0;margin:0 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip > div{padding:18px var(--pad);font-size:0.9375rem;color:var(--tx2);display:flex;align-items:center;gap:14px}
.strip .dato{border-right:1px solid var(--line)}
.strip .dato{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;align-items:start;padding-top:22px;padding-bottom:22px}
.strip .st b{display:block;font-family:var(--disp);font-weight:700;font-size:2.125rem;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.strip .st b small{font-size:.5em;font-weight:500;margin-left:3px}
.strip .cita{font-family:var(--disp);font-size:1.1875rem;line-height:1.25;color:var(--tx);flex-wrap:wrap}
.strip .cita span{font-family:var(--mono);font-size:0.75rem;color:var(--tx3);white-space:nowrap}
@media (max-width:900px){
  .strip{grid-template-columns:1fr}
  .strip .dato{border-right:none;border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr)}
}
@media (max-width:560px){
  .strip .dato{grid-template-columns:1fr 1fr}
}
.precios{padding:60px var(--pad) 20px}
.precios .hd{margin-bottom:24px}
.precios h2{font-size:clamp(2rem,4vw,3.375rem);margin-top:8px}
.precios .hd p{color:var(--tx2);max-width:60ch}
.pl{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}
.plan{background:var(--s1);border:1px solid var(--line);padding:34px;display:grid;gap:10px;align-content:start}
.plan.s{border-color:var(--acc);background:linear-gradient(160deg,var(--struct2),var(--s1) 60%)}
.plan .k{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);font-weight:600}
.plan.s .k{color:var(--acc2)}
.plan h3{font-size:1.875rem}
.plan .pr{font-family:var(--disp);font-weight:700;font-size:clamp(2.75rem,5vw,4.125rem);line-height:1;font-variant-numeric:tabular-nums}
.plan .pr small{font-family:var(--mono);font-size:0.8125rem;color:var(--tx3);margin-left:8px;font-weight:400}
.bases{color:inherit;text-decoration:underline;text-decoration-color:var(--struct);text-underline-offset:3px}
@media (hover:hover){
  .bases:hover{color:var(--struct)}
}
.plan .prueba{font-family:var(--mono);font-size:0.71875rem;letter-spacing:.04em;color:var(--struct);margin-top:-4px}
.plan .sub{color:var(--tx3);font-size:0.875rem}
.plan ul{list-style:none;display:grid;gap:8px;margin:12px 0 20px;color:var(--tx2);font-size:0.9375rem}
.plan li{display:flex;gap:12px;align-items:flex-start}
.plan li::before{content:"";flex:0 0 14px;height:1px;background:var(--struct);margin-top:12px}
footer{padding:44px var(--pad) 40px;background:var(--s1)}
@media (max-width:640px){
  .nav .cta{padding:9px 13px;font-size:0.8125rem}
  .reveal .tg,.reveal .hint{display:none}
  .reveal .knob{top:16%}
  .hero h1{font-size:clamp(2.375rem,11vw,3rem)}
  .antun{padding:24px;gap:24px}
  .antun .terms{grid-template-columns:1fr 1fr}
  .antun .terms b{font-size:1rem}
  .antun p{max-width:none}
  .bill .in{padding:24px}
}
.tq{flex:0 0 auto;width:min(400px,84vw);scroll-snap-align:start;background:var(--s1);border:1px solid var(--line);padding:0 0 22px;display:grid;gap:14px;align-content:start;overflow:hidden}
.tq .tf{aspect-ratio:3/2;overflow:hidden;background:var(--s2)}
.tq .tf img{width:100%;height:100%;object-fit:cover}
.tq p,.tq .w{padding:0 22px}
.tq p{color:var(--tx2);font-size:0.9375rem;line-height:1.6}
.tq .w{font-family:var(--mono);font-size:0.75rem;color:var(--tx3)}
.tq .w b{display:block;font-family:var(--body);font-size:0.9375rem;color:var(--tx);font-weight:600}
.precios{padding:70px 0 20px}
.precios .sh{margin-bottom:26px;padding:0 var(--pad)}
.pl{max-width:1180px;margin:0 auto;padding:0 var(--pad)}
.plan{border-color:color-mix(in srgb,var(--line) 60%,transparent)}
.plan.s{border-color:color-mix(in srgb,var(--line) 60%,transparent);background:var(--s2);box-shadow:inset 0 2px 0 var(--acc)}
.shot{border-color:rgba(255,255,255,.1);background:#0b1115}
.shot .bg{position:absolute;inset:0}
.shot .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);transition:opacity .9s,transform 1.8s cubic-bezier(.2,.8,.2,1)}
.shot .bg img.on{opacity:1;transform:none}
.shot .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,16,20,.6) 0%,rgba(10,16,20,.22) 32%,rgba(10,16,20,.55) 100%)}
.shoth{position:absolute;left:24px;right:24px;top:20px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:12px}
.shoth .pill{background:rgba(10,16,20,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:rgba(255,255,255,.18);color:#fff}
.shoth .chips button{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(10,16,20,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:rgba(255,255,255,.78);cursor:pointer;transition:background .3s,color .3s}
@media (hover:hover){
  .shoth .chips button:hover{color:#fff}
}
.shoth .chips button[aria-pressed="true"]{background:var(--acc);border-color:transparent;color:var(--acctx);font-weight:600}
.win{position:absolute;left:9%;right:9%;top:78px;bottom:6.5%;border-radius:14px;overflow:hidden;background:rgba(14,19,22,.82);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.1);display:grid;grid-template-rows:auto minmax(0,1fr)}
.win.cristal{background:rgba(12,17,20,.4);-webkit-backdrop-filter:blur(7px) saturate(1.25);backdrop-filter:blur(7px) saturate(1.25)}
.win.cristal .winbar{background:rgba(12,17,20,.35)}
.winbar{display:flex;align-items:center;gap:7px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;color:rgba(255,255,255,.8)}
.winbar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22)}
.winbar span{margin-left:8px}
.winbar b{margin-left:auto;font-weight:500;color:rgba(255,255,255,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.winb{position:relative;min-height:0}
.win .grid8{padding:18px;height:100%;gap:10px}
.win .g8{border-color:rgba(255,255,255,.12)}
@media (min-width:641px){
  .win .grid8{grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch;box-sizing:border-box;padding:24px;gap:16px}
  .win .g8{aspect-ratio:auto;min-height:0}
}
.win .mapas{position:static;height:100%;background:none;padding:22px;gap:22px}
.win .mapas img{border-color:rgba(255,255,255,.14)}
.win .mapas figcaption{color:rgba(255,255,255,.72)}
.win .mapas figcaption b{color:#fff}
@media (max-width:640px){
  .shoth{left:12px;right:12px;top:14px}
  .shoth .chips{display:none}
  .win{left:12px;right:12px;top:58px;bottom:12px}
  .winbar b{display:none}
  .win .grid8{padding:12px}
  .win .mapas{padding:14px;gap:12px}
}
.strip{border-top:0;border-bottom:0;margin:0 auto 10px;max-width:1180px;padding:0 var(--pad)}
.strip > div{padding:44px 0}
.strip .dato{border-right:0;padding-right:40px}
.strip .st b{font-size:1.875rem}
@media (max-width:900px){
  .strip .dato{border-bottom:1px solid var(--line);padding-right:0}
}
@media (max-width:640px){
  .strip .dato{grid-template-columns:repeat(3,1fr);gap:14px}
  .strip .dato .st:nth-child(n+4){display:none}
}
.lmini{display:grid;grid-template-columns:1.25fr 1fr;height:100%;min-height:0}
.lmt{padding:clamp(18px,2.4vw,34px);display:grid;align-content:center;gap:12px;min-width:0}
.lmt .k{font-family:var(--mono);font-size:0.625rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.lmt strong{font-family:var(--disp);font-weight:800;font-size:clamp(1.25rem,2.3vw,2.125rem);line-height:1.06;letter-spacing:-.02em;color:#fff}
.lmt strong em{font-style:normal;display:block;color:rgba(255,255,255,.62)}
.lmt p{font-size:0.84375rem;line-height:1.5;color:rgba(255,255,255,.76);max-width:52ch}
.lmt ol{list-style:none;display:grid;gap:5px;font-family:var(--mono);font-size:0.71875rem;color:rgba(255,255,255,.78)}
.lmt ol b{color:var(--acc);font-weight:600;margin-right:9px}
.lmg span{display:block;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:4px 0 7px}
.lmg div{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.lmg img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px;border:1px solid rgba(255,255,255,.14)}
.lmf{position:relative;margin:0;min-height:0;border-left:1px solid rgba(255,255,255,.1)}
.lmf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.lmf figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 16px 13px;font-size:0.75rem;color:rgba(255,255,255,.86);background:linear-gradient(to top,rgba(0,0,0,.7),transparent)}
.lmf figcaption b{display:block;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:3px}
@media (max-width:760px){
  .lmini{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
  .lmf{order:-1;border-left:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .lmt{align-content:start;gap:9px;padding:16px}
  .lmt p,.lmt .k,.lmt ol li:nth-child(n+3){display:none}
}
.tabs button{white-space:nowrap}
@media (max-width:900px){
  .tabs{flex-wrap:wrap}
  .tabs button{flex:1 1 45%}
  .shoth .chips button:nth-child(n+3){display:none}
}
.sc.liga .sch{align-items:start}
.sc.liga .schr{justify-items:end;gap:12px;padding-top:34px}
.sc.liga .schr .btn{white-space:nowrap}
.lg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:26px;padding:14px 32px 4px;align-items:stretch}
.lgi{display:grid;gap:18px;align-content:space-between;min-width:0}
.lgp{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.lgp li{display:grid;grid-template-columns:34px 1fr;gap:6px;padding:10px 0;border-bottom:1px solid var(--line);font-size:0.90625rem;line-height:1.45;color:var(--tx2)}
.lgp li b{font-family:var(--mono);font-size:0.75rem;font-weight:600;color:var(--acc2);padding-top:2px}
.lgp li strong{color:var(--tx);font-weight:600}
.lgd{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lgd div{padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--s2)}
.lgd b{display:block;font-family:var(--disp);font-weight:800;font-size:1.25rem;letter-spacing:-.01em;color:var(--tx);line-height:1.1}
.lgd span{display:block;font-size:0.78125rem;color:var(--tx3);margin-top:3px}
.lgf{position:relative;margin:0;border-radius:12px;overflow:hidden;min-height:300px;background:var(--s2)}
.lgf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;transition:opacity .45s}
.lgf.cambia img{opacity:0}
.lgf .lgz{position:absolute;inset:0;z-index:2} /* 5/10: toda la foto abre el visor; el icono, arriba a la derecha (abajo va el pie) */
.lgf .lgz .vz-ico{top:12px;right:12px;bottom:auto}
.lgf figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 16px;font-size:0.8125rem;color:rgba(255,255,255,.88);background:linear-gradient(to top,rgba(0,0,0,.7),transparent)}
.lgf figcaption b{display:block;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;font-weight:500;margin-bottom:4px}
.lgs{padding:8px 0 6px}
.lgh{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 32px 0;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3)}
.sc.liga .track{padding:12px 32px 22px;gap:12px}
.sc.liga .ot{flex:0 0 150px;text-align:left;background:none;border:0;padding:0;color:inherit;cursor:pointer;font:inherit}
.sc.liga .ot img{width:150px;height:104px;object-fit:cover;border-radius:9px;display:block;background:var(--s2);border:1px solid var(--line);transition:transform .6s cubic-bezier(.2,.8,.2,1),border-color .3s}
.sc.liga .ot:focus-visible img{transform:translateY(-3px)}
@media (hover:hover){
  .sc.liga .ot:hover img{transform:translateY(-3px)}
}
.sc.liga .ot[aria-pressed="true"] img{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.sc.liga .ot b{display:block;font-family:var(--body);font-weight:600;font-size:0.75rem;color:var(--tx);margin-top:7px;line-height:1.3}
.sc.liga .ot span{display:block;font-family:var(--mono);font-size:0.625rem;line-height:1.35;color:var(--tx3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc.liga .arr{width:38px;min-width:38px;height:38px;font-size:1.375rem;top:64px}
@media (max-width:900px){
  .lg{grid-template-columns:1fr;padding:16px 20px 4px}
  .lgf{min-height:300px;order:-1}
  .sc.liga .schr{padding-top:0;justify-items:start}
  .lgh{padding:10px 20px 0}
  .lgh .desliza{display:none}
  .sc.liga .track{padding:12px 20px 20px}
}
@media (max-width:520px){
  .lgd{grid-template-columns:1fr 1fr}
  .lgd b{font-size:1rem}
}
.voces{padding:70px 0 30px}
.voces .vw{max-width:1360px;margin:0 auto;padding:0 calc(var(--pad) - 8px)}
.voces .track{padding-inline:8px;scroll-padding-inline:8px;--f:84px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 calc(100% - var(--f)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 calc(100% - var(--f)),transparent 100%)}
.voces .track.ini{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--f)),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--f)),transparent 100%)}
.voces .track.fin{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--f),#000 100%)}
.voces .track.ini.fin{-webkit-mask-image:none;mask-image:none}
.voces .rw:has(.track.ini) .arr.l,.voces .rw:has(.track.fin) .arr.r{opacity:0;pointer-events:none}
@media (max-width:900px){
  .voces .track{--f:36px}
}
.voces .vermas{max-width:1360px;margin:0 auto;padding:6px var(--pad) 0}
.voces .tq{border-radius:16px;background:var(--s1);border-color:transparent}
.voces .tq .tf{border-radius:0}
.voces .arr{top:calc(50% - 8px);bottom:auto;transform:translateY(-50%);width:46px;min-width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:1.625rem;line-height:1;opacity:1;display:grid;place-items:center;padding-bottom:4px}
.voces .arr.l{left:10px}
.voces .arr.r{right:10px}
h1{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
h2{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
h3{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.nav .logo{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.g8 .rot{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.mapas figcaption b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.antun .firma{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.antun .terms b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.got h4{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.strip .st b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.strip .cita{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.plan .pr{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
footer .brand{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.lmt strong{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.lgd b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.hero h1{font-weight:500;line-height:1.08}
.hero h1 em,.cierre h2 .g{font-weight:400}
.nav .logo,footer .brand{font-weight:700;letter-spacing:-.03em}
.nav{transition:background .3s,backdrop-filter .3s,border-color .3s}
:root:not([data-theme="light"]) .nav:not(.baja):not(.minima) .logo,:root:not([data-theme="light"]) .nav:not(.baja):not(.minima) a.l{text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 16px rgba(0,0,0,.55)}
.nav .cta{padding:10px 16px;border-radius:999px;background:var(--acc);color:var(--acctx);font-weight:700;font-size:0.875rem;margin-left:6px;white-space:nowrap;text-shadow:none}
@media (max-width:900px){
  .nav:not(.minima){animation-name:navin30;left:12px;right:12px;transform:none;max-width:none;justify-content:flex-start;padding:5px 5px 5px 14px;gap:4px}
  .nav:not(.minima) .logo{margin-right:auto}
  .nav:not(.minima) a.l{display:none}
  .nav:not(.minima) a.l.entrar{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:0.875rem}
  .nav:not(.minima) .tema{display:none}
  .nav:not(.minima) .mbt{display:inline-flex}
  .nav:not(.minima) .cta{min-height:40px;display:inline-flex;align-items:center}
  .nav:not(.minima) .yo{margin-left:0;min-height:44px}
}
@media (max-width:430px){
  .nav:not(.minima){padding-left:12px;gap:2px}
  .nav:not(.minima) .logo{font-size:0.90625rem}
}
@media (max-width:380px){
  .nav:not(.minima){left:6px;right:6px;padding-left:10px;padding-right:4px;gap:1px}
  .nav:not(.minima) .logo{font-size:0.875rem}
}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
:root{--col:1360px;--sec:clamp(76px,8.5vw,124px)}
.sh{max-width:var(--col)}
.strip{max-width:var(--col)}
.tabs{max-width:var(--col)}
.tnav{max-width:var(--col)}
.antun{max-width:var(--col)}
.pl{max-width:var(--col)}
.fq{max-width:var(--col)}
.shot{max-width:calc(var(--col) - 2 * var(--pad))}
footer.agua .cols,footer.agua .bot{max-width:calc(var(--col) - 2 * var(--pad))}
.hero{--sw:min(calc(var(--col) - 2 * var(--pad)),88vw)}
@media (min-width:901px){
  .sh{grid-template-columns:1.45fr .8fr}
}
@media (min-width:641px){
  .hero{padding-top:100px}
  .hero .lab{margin-bottom:14px}
  .hero h1{margin-bottom:14px}
  .hero .meta{margin-bottom:14px}
  .hero p{margin-bottom:20px}
  .stage{margin-top:34px}
}
.intro{padding-top:var(--sec);padding-bottom:calc(var(--sec) * .5)}
.feat{padding:calc(var(--sec) * .5) 0 var(--sec)}
.stack{padding:0 0 calc(var(--sec) * .4)}
.antun{margin:calc(var(--sec) * .8) auto calc(var(--sec) * .6)}
.voces{padding:calc(var(--sec) * .5) 0 0}
.precios{padding:var(--sec) 0 0}
.faqf{padding:var(--sec) 0 calc(var(--sec) * .4)}
.cierre{padding-top:var(--sec)}
.cierre .cin{padding-bottom:36px}
.cap{margin-top:0}
.pill::before{background:var(--struct)}
.scf b{color:var(--struct)}
.lgp li b{color:var(--struct)}
.vivo b{color:var(--struct)}
.plan.s .k{color:var(--struct)}
.lmt ol b{color:var(--struct)}
.sch h3 b{color:var(--tx2)}
.antun .firma{color:var(--tx)}
.plan.s{box-shadow:inset 0 2px 0 var(--struct)}
.card .badge{background:rgba(10,16,20,.62);color:#fff;border:1px solid rgba(255,255,255,.24);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.vivo .pt{background:var(--struct)}
.vivo{max-width:var(--col);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:16px 48px;align-items:center;padding:6px var(--pad) 0;margin:0 auto}
.vivo .vv{display:flex;gap:6px 14px;align-items:baseline;min-width:0}
.vivo .its{display:grid;gap:2px}
.vivo .its span:first-child{font-family:var(--mono);font-size:0.75rem;color:var(--tx3)}
.vliga{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:center;padding:10px 16px 10px 10px;border:1px solid var(--line);border-radius:16px;background:var(--s1);transition:border-color .3s,background .3s}
@media (hover:hover){
  .vliga:hover{border-color:var(--line2);background:var(--s2)}
}
.vliga img{width:104px;height:70px;object-fit:cover;border-radius:10px}
.vliga .vt{display:grid;gap:3px;font-size:0.875rem;line-height:1.45;color:var(--tx2)}
.vliga .vt b{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--struct);font-weight:600}
.vliga .vt em{font-style:normal;font-family:var(--mono);font-size:0.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
@media (max-width:900px){
  .vivo{grid-template-columns:1fr}
}
@media (max-width:640px){
  .vivo .vv{flex-wrap:wrap}
  .vivo .its{flex:1 1 100%}
  .vliga{grid-template-columns:84px 1fr;gap:12px}
  .vliga img{width:84px;height:64px}
}
.per{display:inline-flex;align-self:flex-start;border:1px solid var(--line2);border-radius:999px;padding:3px;gap:2px;margin-top:4px}
.per button{min-height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--tx2);font-family:var(--body);font-size:0.90625rem;font-weight:500;cursor:pointer;transition:background .25s,color .25s}
.per button[aria-pressed="true"]{background:var(--s1);color:var(--tx);box-shadow:inset 0 0 0 1px var(--line2)}
.plan .pr{display:flex;align-items:baseline;gap:10px}
.plan .pr small{font-family:var(--body);font-size:1.125rem;font-weight:500;color:var(--tx2);margin-left:0;letter-spacing:0}
.plan .pr .dsd{font-family:var(--body);font-size:1.125rem;font-weight:500;color:var(--tx2);letter-spacing:0}
.plan .cond{font-size:0.9375rem;color:var(--tx2);margin-top:-4px}
.plan .prueba{margin-top:2px}
.pl{grid-template-columns:1.3fr .7fr}
.pl .plan>.btn{margin-top:0}
.pl .plan ul{margin-bottom:0}
.pl .plan .gar2{margin-top:auto;padding-top:18px;font-size:0.875rem;color:var(--tx3)}
.pl .plan.s ul{margin-bottom:24px}
.pl .plan.s>.btn{margin-top:auto}
@media (max-width:900px){
  .pl{grid-template-columns:1fr}
  .pl .plan .gar2{padding-top:4px}
}
.antun .terms div{display:flex;flex-direction:column;gap:4px}
.antun .terms b{margin-top:auto}
.sc.liga .track{align-items:flex-start}
.sc.liga .ot span{font-size:0.6875rem}
@media (min-width:1181px){
  .screen .reveal .hint{left:22px;top:auto;bottom:20px}
}
:root[data-theme="light"] .hero .foot{color:var(--tx2);text-shadow:0 0 10px rgba(255,255,255,.9),0 1px 2px rgba(255,255,255,.8)}
.lrt{color:rgba(255,255,255,.68)}
.lrf{color:rgba(255,255,255,.74)}
.screen .winbar em{font-size:0.6875rem}
@media (max-width:640px){
  .strip .dato{grid-template-columns:1fr 1fr;gap:18px 16px}
  .strip .dato .st:nth-child(n+4){display:block}
  .strip .dato .st:nth-child(4){display:none}
  .win .grid8{grid-template-rows:repeat(3,minmax(0,1fr));align-content:stretch;height:100%}
  .win .g8{aspect-ratio:auto;min-height:0}
}
.tabs button{min-height:44px}
.sch .all{display:inline-flex;align-items:center;min-height:44px}
.got a{display:inline-flex;align-items:center;min-height:44px}
.sc.liga .arr{width:44px;min-width:44px;height:44px}
@media (max-width:900px){
  .capa.cierre-capa{-webkit-mask-image:linear-gradient(#000 45%,transparent 76%);mask-image:linear-gradient(#000 45%,transparent 76%)}
}
.pl .plan>.btn{margin-top:auto}
.pl .plan ul{margin-bottom:24px}
.pl .gar-comun{grid-column:1/-1;justify-self:center;text-align:center;margin:18px 0 0;font-size:0.9375rem;line-height:1.5;color:var(--tx2)}
.pl .gar-comun a,.pl .gar-card a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.pl .gar-card{display:none}
@media (max-width:900px){
  .pl .gar-comun{display:none}
  .pl .gar-card{display:block;margin:4px 0 0;font-size:0.90625rem;line-height:1.5;color:var(--tx2)}
  .pl .gar-card a{padding:12px 0}
}
.capa.cierre-capa{top:-64px}
.card .badge.enpub{background:var(--struct);color:#0B1A18;border:0}
.cierre .cta{position:relative}
.g8 .badge{position:absolute;top:8px;left:8px;z-index:1;max-width:calc(100% - 16px);font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;line-height:1.25;padding:5px 7px;border-radius:var(--r)}
.g8 .badge.enpub{background:var(--struct);color:#0B1A18;border:0;white-space:nowrap}
.g8{container-type:inline-size}
@container (max-width:210px){
  .g8 .badge.enpub .g8s{display:none}
  .g8 .badge.enpub>span:not(.g8s){display:block}
}
@media (max-width:900px){
  .pl{grid-template-columns:minmax(0,1fr)}
}
.vivo,.vivo *{min-width:0}
.vivo b,.strip .cita span{white-space:normal}
.screen,a.vliga,#shot,.win{border-radius:12px!important}
span.badge,.lmt span.k,figcaption b{font-size:0.6875rem!important}
.abierto,.card .abierto,.badge,.badge.cand,.badge.enpub,.g8 .badge,#lrreset,#lrsol,.lrt,.lrf,figcaption b,.lmg span{font-size:0.6875rem}
/* 4/10 (Antonio): con «Reducir movimiento» los párrafos de la intro también se encienden al pasar, como en fora (decisión del 21/9) */
@media (max-width:900px){
  .nav a.logo,.nav a.cta{min-height:44px!important;display:inline-flex;align-items:center}
  .per{gap:6px}
  .per button{min-height:44px}
}
#precios .plan ul li{flex-wrap:wrap;min-width:0}
.hero h1 .k{display:block;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);font-weight:600;line-height:1.5;margin:0 auto 14px;max-width:34em;white-space:normal}
.hero .gar a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.card .badge.gratis{background:var(--struct);color:#0B1A18;border:0}
:root[data-theme="light"] .card .badge.gratis{color:#fff}
.g8 .rot{background:linear-gradient(to top,rgba(12,20,24,.92) 0,rgba(12,20,24,.84) calc(100% - 28px),rgba(12,20,24,0) 100%)}
.lgf figcaption,.lmf figcaption{background:linear-gradient(to top,rgba(0,0,0,.82) 0,rgba(0,0,0,.74) calc(100% - 40px),rgba(0,0,0,0) 100%)}
.card .abierto{background:rgba(10,16,20,.62)}
.lr{background:rgba(10,16,20,.72)}
.lrf{color:rgba(255,255,255,.86)}
.lrr{color:rgba(255,255,255,.92)}
/* 4/10 (Antonio): con «Reducir movimiento» la pantalla del revelado ya no sube por encima de las montañas del primer plano */
.card .abierto.abierto{background:rgba(10,16,20,.66)}
.cierre .lumi-ci{margin:-4px auto 14px;text-align:center;font-size:0.9375rem;line-height:1.5;color:var(--tx2)}
.cierre .lumi-ci a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent);display:inline-block;padding:10px 0}
.voces .track{align-items:flex-start}
.tq.pl4{cursor:pointer}
.tq .tqx{padding:0 22px;color:var(--tx2);font-size:0.9375rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.tq .tqx p{padding:0;margin:0}
.tq .tqx p+p{margin-top:.7em}
.tq .tqh{padding:0 22px;margin-top:-6px;font-family:var(--mono);font-size:0.6875rem;color:var(--tx3)}
.tq.pl4.abierto .tqx{-webkit-line-clamp:unset;display:block;overflow:visible}
.tq.pl4.abierto .tqh,.tq.pl4.corto .tqh{display:none}
@media (hover:hover){
  .tq.pl4:hover .tqx{-webkit-line-clamp:unset;display:block;overflow:visible}
  .tq.pl4:hover .tqh{visibility:hidden}
}
.tq.pl4:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.strip .cita span a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.hero .gar a,.strip .cita span a{padding:12px 0}
@media (min-width:760px){
  .hero h1 .k{max-width:none;white-space:nowrap}
}
.tq.pl4:not(.abierto) .tqx p{display:inline}
.tq.pl4:not(.abierto) .tqx p+p::before{content:" "}
@media (hover:hover){
  .tq.pl4:hover .tqx p{display:block}
  .tq.pl4:hover .tqx p+p::before{content:none}
}
.plan li{display:block;position:relative;padding-left:26px}
.plan li::before{position:absolute;left:0;top:0;width:14px}
.flist .fmas{margin:18px 0 0;font-size:0.9375rem;line-height:1.5}
.flist .fmas a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent);display:inline-block;padding:12px 0}
.prw-hor img{height:23px;width:auto;max-width:none;display:block}
.prw-hor .prw-hc{display:none}
:root[data-theme="light"] .prw-hor .prw-ho{display:none}
:root[data-theme="light"] .prw-hor .prw-hc{display:block}
:root[data-theme="light"] body:has(.hero.des .fondo img) .nav:not(.baja):not(.minima) .prw-hor .prw-ho{display:block}
:root[data-theme="light"] body:has(.hero.des .fondo img) .nav:not(.baja):not(.minima) .prw-hor .prw-hc{display:none}
:root[data-theme="light"] body:has(.hero.des .fondo img) .nav:not(.baja):not(.minima) a.l{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6),0 0 16px rgba(0,0,0,.55)}
:root[data-theme="light"] body:has(.hero.des .fondo img) .nav:not(.baja):not(.minima) .prw-hor .prw-ho{filter:drop-shadow(0 1px 2px rgba(0,0,0,.6)) drop-shadow(0 0 10px rgba(0,0,0,.45))}
:root[data-theme="light"] footer .ffoto::after{background:linear-gradient(to bottom,var(--bg) 0,color-mix(in srgb,var(--bg) 55%,transparent) 22px,transparent 64px),linear-gradient(to bottom,rgba(8,12,14,.62) 64px,rgba(8,12,14,.5) 520px,rgba(8,12,14,.3) 70%,rgba(8,12,14,.55) 100%)}
:root[data-theme="light"] .nav.minima{background:color-mix(in srgb,var(--bg) 96%,transparent)}

/* prw3: grupo C. El símbolo del logotipo sobre el titular (en la maqueta viene de la hoja del logo, que no entra en el tema) */
.hero .lab .prw-sim{height:30px;width:auto;aspect-ratio:58/56.77;display:block}
:root{--prw-r1:#1569AF;--prw-r2:#1F8DE2;--prw-r3:#31A8FF;--prw-r4:#5FBBFF;--prw-r5:#8FCBF5;--prw-r6:#A9D7F8;--prw-r7:#BFE1F7}
:root[data-theme="light"]{--prw-r1:#0B3A63;--prw-r2:#0E4A80;--prw-r3:#1569AF;--prw-r4:#1F8DE2;--prw-r5:#31A8FF;--prw-r6:#5FBBFF;--prw-r7:#8FCBF5}

/* prw3: grupo C. comun.css trae .hero .fondo{inset:0} de las otras cabeceras y aquí pisaría a la capa de fondo del paisaje (img.capa.fondo) */
.hero .capa.fondo{right:auto;bottom:auto;left:50%}

/* prw3: grupo C ter (1/10). Pies de tarjeta de las tiras a una columna en el teléfono: la regla de la maqueta quedó en comun.css y aquí la pisaba la de 900 px */
@media (max-width:560px){
  #catalogo .scf{grid-template-columns:1fr;gap:14px 0}
  #catalogo .scf div,#catalogo .scf div:nth-child(odd){padding:0;border-left:0}
}
/* prw3: grupo C ter (1/10). Botones del héroe a 15 px en todos los anchos (en la maqueta .btn.btn:not(.s) va después del recorte de 389 px) */
.hero .cta .btn.btn:not(.s){font-size:0.9375rem;line-height:1.25}
/* prw3: grupo C ter (1/10). La insignia «Gratis» de Luminar: comun.css pone .card .badge:not(.ok):not(.st) (más fuerte) con borde y cristal; como la del catálogo, sin borde: 64 × 28 */
.card.lumi .badge.gratis.gratis.gratis{background:var(--struct);color:#0b1a18;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}

/* prw3: grupo I bis (1/10, gen-rediseno.py, CSS_R4M): «Gratis» blanco en claro sobre el petróleo oscuro (2,76 -> 6,48); texto sobre foto a
   4,5:1 con velos plenos detrás del texto y el cristal oscuro de las etiquetas */
:root[data-theme="light"] .card .badge.gratis{color:#fff}
.g8 .rot{background:linear-gradient(to top,rgba(12,20,24,.92) 0,rgba(12,20,24,.84) calc(100% - 28px),rgba(12,20,24,0) 100%)}
.lgf figcaption,.lmf figcaption{background:linear-gradient(to top,rgba(0,0,0,.82) 0,rgba(0,0,0,.74) calc(100% - 40px),rgba(0,0,0,0) 100%)}
.card .abierto{background:rgba(10,16,20,.62)}
.lr{background:rgba(10,16,20,.72)}
.lrf{color:rgba(255,255,255,.86)}
.lrr{color:rgba(255,255,255,.92)}
/* 4/10 (Antonio): con «Reducir movimiento» la pantalla del revelado ya no sube por encima de las montañas del primer plano */
.card .abierto.abierto{background:rgba(10,16,20,.66)}
:root[data-theme="light"] .card.lumi .badge.gratis.gratis.gratis{color:#fff}
/* prw3: grupo I bis (1/10). El pie «agua» de la portada no lleva foto: los colores de texto sobre foto que comun.css pone a todo
   <footer> (--tx #EEF3F4…) aquí no van (construir-css.py no devuelve las variables a su valor). En claro daban 1,2:1 */
footer.agua{--tx:inherit;--tx2:inherit;--tx3:inherit;--line:inherit}

/* prw3: grupo I bis, R6 (FABLE R6-4, hallazgo 1). Portada en claro: la cabecera no lleva foto sino el paisaje de capas, con el cielo
   entre #A4B9C9 y #BCCAD4, y las reglas de texto sobre foto no la tocan. Textos más oscuros, calculados sobre #A4B9C9: rótulo,
   párrafos y precio #2F3B42 (5,68), la cifra en verde #0C4744 (5,18) y el enlace #0B4577 (4,86). El pie «agua»: títulos en --tx2. */
:root[data-theme="light"] header.hero .in h1 .k,:root[data-theme="light"] header.hero .in>p,:root[data-theme="light"] header.hero .in .meta .box{color:#2F3B42}
:root[data-theme="light"] header.hero .in .meta .new{color:#0C4744}
:root[data-theme="light"] header.hero .in p.gar a{color:#0B4577;text-decoration-color:currentColor}
:root[data-theme="light"] footer.agua h4{color:var(--tx2)}
/* prw3: D9 (ronda 7, DISEÑADOR): rótulos del pie (Catálogo, Cuenta, Ayuda, Legal) con el interlineado de la maqueta, 17,6 px (11 × 1,6); heredaban el 1,05 de los títulos */
footer h4{line-height:1.6}
/* prw3: FABLE R6-04 h8 (R7-02, 5). Tiradores de comparar: anillo doble, claro y oscuro, que se ve sobre cualquier foto (antes 1,3 a 2,5) */
.reveal .knob:focus-visible,.ba .knob:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #101518}
/* prw3: DR7-1 (firma de la ronda 7 del DISEÑADOR): la regla .ac de la ventana «Entrar» (acceso-ventana.css) no toca el pie del retrato. */
.antun .retrato span.ac{padding:0;min-height:0}
/* 4/10 (iPad T-02): sin panel de deslizadores, la barra no pide moverlos */
@media (max-width:1180px){.screen .winbar .con-panel{display:none}} /* solo la frase de la barra: #reveal también lleva .con-panel */

/* Cabecera en ordenador (Vanesa, 5/10, a 1600): al bajar, las montañas del primer plano subían por encima de la ventana y tapaban el pie del
   panel «Iguala el revelado» (la ayuda, «Restablecer» y «Ver la solución»). Desde 1181 px, que es donde se ve el panel, la ventana va por
   encima de las montañas; por debajo (tableta y móvil, sin panel) las montañas siguen por delante. Y fuera, en la maqueta, la regla de
   reduce que subía la ventana a 6 también en el móvil (en portada.css ya no está desde el 4/10). */
@media (prefers-reduced-motion:reduce){.screen{z-index:3}}
/* 5/10 (Antonio): las montañas van SIEMPRE por delante de la ventana del revelado, aunque tapen los deslizadores. Fuera la regla .screen{z-index:6} desde 1181. */
/* ===== 5/10 b, SUSTITUYE ENTERO al bloque de entrega-portada.css v1 (Cómo funciona 2 x 2, ¿Por dónde empiezo?, botones y lección). Solo piezas nuevas:
   sin la capa común de la maqueta ni el logotipo. No usa selectores de tema: todo va con las variables del tema, o con color fijo sobre foto.
   Si quitasteis o no pegasteis el z-index de .screen de la v1, bien: ya no va. ===== */
/* ================= CÓMO FUNCIONA Y ¿POR DÓNDE EMPIEZO? (5/10, MARKETING; gen-rediseno.py, capa cf) =================
   Cuatro tarjetas de foto con número, título, una línea y «Ver →»; en ordenador la 2 al doble de ancho; en el móvil en columna,
   una pantalla cada una, sin carrusel. El texto va sobre velo oscuro en los dos temas (paleta de texto sobre foto).
   Con «Reducir movimiento» no se oculta nada: sin .rv, sin opacidad de partida, y solo se quita el zum de la foto al pasar el ratón. */
.cf{padding:var(--sec,110px) 0 0}
.cf .sh{margin-bottom:28px}
.cf-g{list-style:none;max-width:var(--col,1360px);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:clamp(18px,2.6vw,36px)}
.cf-b{min-width:0;display:flex}
.cf-b>a{position:relative;isolation:isolate;flex:1;display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(460px,42vw,600px);border-radius:var(--r,12px);overflow:hidden;background:#0d1418;color:#fff;text-decoration:none}
.cf-f{position:absolute;inset:0;z-index:-1}
.cf-f img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.cf-mos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;height:100%}
.cf-mos img{min-height:0;object-position:22% 50%}
.cf-f::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(6,10,13,.74) 0,rgba(6,10,13,.5) 96px,rgba(6,10,13,0) 190px)}
.cf-n{padding:16px 20px 0;font-family:var(--disp);font-weight:700;font-size:clamp(3rem,4.6vw,4.5rem);line-height:1;letter-spacing:-.045em;color:#fff;text-shadow:0 1px 18px rgba(0,0,0,.35)}
.cf-x{display:grid;gap:8px;padding:56px 20px 14px;background:linear-gradient(to top,rgba(6,10,13,.9) 0,rgba(6,10,13,.82) calc(100% - 48px),rgba(6,10,13,0) 100%)}
.cf-x h3{margin:0;font-family:var(--disp);font-size:clamp(1.25rem,1.55vw,1.5rem);font-weight:700;line-height:1.12;letter-spacing:-.02em;color:#fff}
.cf-x p{margin:0;font-size:.9375rem;line-height:1.5;color:rgba(255,255,255,.9)}
.cf-v{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-family:var(--mono);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8FCBF5}
.cf-b>a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
@media (hover:hover){.cf-b>a:hover .cf-f img{transform:scale(1.045)}.cf-b>a:hover .cf-v{color:#BFE1F7}}
@media (prefers-reduced-motion:reduce){.cf-f img{transition:none}.cf-b>a:hover .cf-f img{transform:none}}
@media (max-width:640px){.cf-g{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:18px}.cf-b>a{min-height:clamp(440px,76svh,600px)}.cf-x{padding:56px 18px 12px}.cf-n{padding:14px 18px 0}}
/* La 2, «La foto, desde dentro»: el fotograma del Atomos entero (4:3, sin recortar), porque la fila de datos de abajo (4", F11, -1,3,
   ISO 100) es lo que cuenta la historia. Nada encima de la foto: el número va arriba y el texto abajo, sobre negro. */
.cf-2>a{background:#000;justify-content:space-between}
.cf-2 .cf-f{position:relative;z-index:auto;inset:auto;order:2;flex:1 1 0;min-height:200px;background:#000}
.cf-2 .cf-f::after{content:none}
.cf-2 picture{position:absolute;inset:0}
.cf-2 .cf-f img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.cf-2 .cf-n{order:1;padding-bottom:14px}
.cf-2 .cf-x{order:3;background:none;padding-top:14px}
@media (hover:hover){.cf-2>a:hover .cf-f img{transform:none}}
/* ¿Por dónde empiezo? */
.pde{max-width:var(--col,1360px);margin:0 auto;padding:calc(var(--sec,110px) * .5) var(--pad) 0;scroll-margin-top:84px}
.pde-in{border:1px solid var(--line);border-radius:var(--r,12px);background:var(--s1);padding:clamp(24px,4vw,44px)}
.pde h2{margin:0;font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.05;letter-spacing:-.03em}
.pde-s{margin:10px 0 24px;max-width:40em;font-size:1.0625rem;line-height:1.5;color:var(--tx2)}
.pde-b{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:16px}
.pde-b li{display:flex;min-width:0}
.pde-o{flex:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:44px;padding:20px 22px;border:1px solid var(--line2);border-radius:var(--rbtn,12px);background:var(--glass);color:var(--tx);font-family:var(--body);text-decoration:none;transition:border-color .25s,background .25s}
.pde-o:hover{border-color:var(--acc);background:var(--glass2,var(--glass))}
.pde-o:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pde-tx{display:grid;gap:6px;align-content:start;min-width:0}
.pde-t{font-size:1.1875rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--tx)}
.pde-st{font-size:.9375rem;line-height:1.45;color:var(--tx2)}
.pde-a{flex:0 0 auto;font-size:1.25rem;line-height:1.25;color:var(--acc)}
.pde-c{margin:18px 0 0;font-size:.9375rem;line-height:1.5;color:var(--tx2)}
.pde-c a{display:inline-block;padding:12px 0;color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent)}
@media (max-width:640px){.pde-b{grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;gap:12px}.pde-o{padding:16px 18px}.pde-t{font-size:1.0625rem}}

/* ===== 5/10, entrega v3 del DISEÑADOR 3.0 (capa cf3 de la maqueta, REDISENO-OPUS55/capa-cf3.py). Va al FINAL de assets/css/portada.css.
   Solo piezas nuevas, con las variables del tema; sin selectores de tema ni capa común. Lo que deja de usarse y se puede borrar de portada.css:
   todo el bloque .cf / .cf-* (Cómo funciona 2 x 2), .pde-o, .pde-tx, .pde-a y .pde-c (los botones de un solo enlace y la línea de Capture One)
   y .tnav p (el pie #tcap). .pde, .pde-in, .pde-s y .pde-b se quedan como están. ===== */
/* ================= CF3 (5/10): #dentro asume «Cómo funciona»; intro numerada; pestaña 02 con Atomos y antes y después; hover; ¿Por dónde empiezo? con píldoras ================= */
/* Párrafos que se iluminan: el número y el nombre en azul de acento y seminegrita */
.intro .rt-n{font-weight:600;color:var(--acc2)}
/* El párrafo de la derecha del título, que cambia con la pestaña. Los cuatro textos se apilan invisibles en la misma celda (.dtx-m):
   la caja mide siempre lo que el más largo, a cualquier ancho, y no salta al cambiar. */
#dentro .sh>.dtx{display:grid;max-width:42ch;color:var(--tx2);font-size:15.5px;line-height:1.55}
.dtx>*,.dtx-m>span{grid-area:1/1;margin:0}
.dtx-m{display:grid;visibility:hidden}
.dtx-p{transition:opacity .2s ease}
.dtx-p.fuera{opacity:0}
@media (min-width:901px){#dentro .sh>.dtx{padding-bottom:12px}}
@media (prefers-reduced-motion:reduce){.dtx-p{transition:none}.dtx-p.fuera{opacity:1}}
/* Pestañas con su número encima */
.tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.2}
.tabs button .tn{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;line-height:1;color:var(--tx3)}
.tabs button[aria-selected="true"] .tn{color:var(--acc2)}
/* Rótulos de las ventanas que quedaban por debajo de 4,5 sobre el cristal (medido: «Solo para socios» 4,44 y 3,81) */
.shot .winbar b{color:rgba(255,255,255,.74)}
.lmt .k{color:rgba(255,255,255,.8)}
/* Dentro de las ventanas el fondo es siempre oscuro: el petróleo del tema claro (#146965) daba 2,7 en los 01, 02 y 03 de la Liga a 820 */
.shot .win{--struct:#4FB5AC}
/* Sin el pie, las flechas van juntas en el centro */
.tnav{grid-template-columns:44px 44px;justify-content:center}
/* Pestaña 02: dos bloques 4:3 del mismo tamaño (el Atomos entero, sin recortar, y el antes y después), centrados en la ventana.
   El ancho de cada bloque sale del alto de la ventana (unidades de contenedor), para que nunca se salga por abajo. */
.fpv-w .winb{container-type:size}
.fpv{height:100%;box-sizing:border-box;padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-content:center;justify-items:center}
.fpv figure{margin:0;min-width:0;width:min(100%,calc((100cqh - 40px - 26px) * 1.3356));display:grid;gap:8px;align-content:start}
.fpv-m{position:relative;aspect-ratio:800/599;border-radius:10px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.14)}
.fpv-a picture{position:absolute;inset:0}
.fpv-a img{display:block;width:100%;height:100%;object-fit:contain}
.fpv .ba{position:relative;inset:auto}
.fpv figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:18px;color:#C3CFD3}
.fpv .ba .tg{display:block;top:10px;padding:4px 8px;font-size:11px;letter-spacing:.1em;background:rgba(8,12,15,.72)}
.fpv .ba .tg.a{left:10px}.fpv .ba .tg.b{right:10px;left:auto}
.fpv .ba .knob{box-shadow:0 0 0 2px #fff,0 0 0 4px #0B1013,0 2px 10px rgba(0,0,0,.35)}
@property --dx{syntax:'<length>';inherits:true;initial-value:0px}
.fpv .ba .rawi{clip-path:inset(0 calc(100% - var(--x,50%) - var(--dx,0px)) 0 0)}
.fpv .ba .bah,.fpv .ba .knob{left:calc(var(--x,50%) + var(--dx,0px))}
@keyframes fpv-vaiven{0%{--dx:0px}30%{--dx:12px}65%{--dx:-8px}100%{--dx:0px}}
@media (min-width:641px) and (max-width:1100px){.win.fpv-w{left:3%;right:3%}.fpv{padding:14px;gap:12px}.fpv figure{width:min(100%,calc((100cqh - 28px - 26px) * 1.3356))}}
@media (max-width:640px){.fpv{grid-template-columns:minmax(0,1fr);align-content:start;padding:12px;gap:10px}
  .fpv figure{gap:4px;width:min(100%,calc((100cqh - 34px) / 2 * 1.3356 - 30px))}.fpv figcaption{line-height:16px}}
/* Hover de las ventanas: sube 4 px y la sombra se hace más honda (250 ms); en Cursos el play crece un 8 % y se ilumina el capítulo en curso;
   en Fotografías el tirador hace un vaivén de 12 px una vez al entrar (no si ya se ha arrastrado); en Descargas y la Liga, brillo en el borde.
   Solo con ratón y sin «Reducir movimiento». */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .shot .win{transition:translate .25s ease,box-shadow .25s ease,border-color .25s ease}
  .shot .pan.on .win:hover{translate:0 -4px;box-shadow:0 44px 110px rgba(0,0,0,.66),0 14px 34px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.12)}
  .lmv-play{transition:scale .25s ease}
  .shot .pan.on .win:hover .lmv-play{scale:1.08}
  .lmv-s li.aqui{transition:background-color .25s ease,box-shadow .25s ease}
  .shot .pan.on .win:hover .lmv-s li.aqui{background:rgba(79,181,172,.3);box-shadow:inset 3px 0 0 #4FB5AC}
  .shot .pan.on .win.fpv-w:hover .ba:not(.tocado){animation:fpv-vaiven .9s ease-in-out 1}
  .shot .pan.on .win.cf3-brillo:hover{border-color:rgba(143,203,245,.5);box-shadow:0 44px 110px rgba(0,0,0,.66),0 14px 34px rgba(0,0,0,.34),0 0 0 1px rgba(143,203,245,.22),0 0 30px rgba(95,187,255,.16),inset 0 1px 0 rgba(255,255,255,.14)}
}
/* ¿Por dónde empiezo?: cada tarjeta con título, subtítulo y sus programas como píldoras con logo (44 px de alto como mínimo) */
.pde-b li.pde-k{flex-direction:column;gap:6px;padding:20px 22px;border:1px solid var(--line2);border-radius:var(--rbtn,12px);background:var(--glass)}
.pde-k .pde-t{margin:0;font-family:var(--body);font-size:1.1875rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--tx)}
.pde-k .pde-st{margin:0;font-size:.9375rem;line-height:1.45;color:var(--tx2)}
.pde-ps{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px}
.pde-p{display:inline-flex;align-items:center;gap:9px;min-height:44px;box-sizing:border-box;padding:0 16px 0 11px;border:1px solid var(--line2);border-radius:999px;background:var(--s1);color:var(--tx);font-family:var(--body);font-size:.9375rem;font-weight:500;line-height:1.2;text-decoration:none;transition:border-color .25s,background .25s}
.pde-p img,.pde-p svg{flex:0 0 22px;width:22px;height:22px;object-fit:contain}
.pde-p svg{color:var(--tx2)}
.pde-p:hover{border-color:var(--acc);background:var(--glass2,var(--glass))}
.pde-p:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media (max-width:640px){.pde-b li.pde-k{padding:16px 18px}.pde-k .pde-t{font-size:1.0625rem}}
/* 5/10 v3: «¿Por dónde empiezo?» va ahora antes del catálogo, que no trae aire arriba: el mismo hueco que entre secciones */
.pde+.stack{padding-top:calc(var(--sec,110px) * .8)}
/* 5/10 (Antonio): el número de la pestaña en la misma línea que el nombre, algo más grande y siempre en azul */
.tabs button{flex-direction:row;flex-wrap:wrap;gap:4px 9px;line-height:1.25}
.tabs button .tn{font-size:14px;color:var(--acc2);opacity:.75}
.tabs button[aria-selected="true"] .tn{opacity:1}
/* 5/10 (Antonio): la ventana de la Liga, como la de Cursos: el cristal se ve alrededor y la foto ganadora va en su propio bloque redondeado */
.lmini{padding:20px;gap:16px;box-sizing:border-box}
.lmf{border-left:0;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.lmt{border-radius:10px;background:rgba(10,15,18,.55)}
@media (max-width:900px){.lmini{padding:14px;gap:12px}}
@media (max-width:640px){.lmini{padding:12px;gap:10px}.lmf{border-bottom:1px solid rgba(255,255,255,.14)}}
@media (max-width:640px){.tabs button{flex-direction:column;gap:3px}}
/* 5/10, firma v3 del DISEÑADOR (FIRMA-V3.md) */
@media (min-width:641px) and (max-width:1100px){.shot{aspect-ratio:auto;height:560px}} /* DV3-9: la Liga y la 03 no se cortan */
@media (prefers-reduced-motion:reduce){.intro p.rt{opacity:1!important}} /* DV3-4: con reduce, los párrafos encendidos siempre */
.tabs button .tn{opacity:1} /* DV3-3: contraste del número (sigue en azul, decisión de Antonio) */
@media (max-width:640px){.fpv figure{width:min(100%,calc((100cqh - 112px) / 2 * 1.3356))}.pde-ps{margin-top:0}} /* DV3-5 y DV3-6 */
@media (min-width:1101px) and (max-width:1150px){.lmv-s li:last-child{display:none}} /* DV3-7 */
/* ===== «¿Por dónde empiezo?», versión «El camino» (5/10, propuesta de diseño, CODIGO_3.0/diseno-pde/).
   Va al FINAL de assets/css/portada.css. Solo variables del tema; lo que va sobre la foto usa los claros fijos de «texto sobre foto»
   de la guía, porque la foto es siempre oscura en los dos temas.
   Una misma foto de Lofoten recorre los cuatro caminos: la pantalla de la cámara, el revelado, las capas de Photoshop y el vídeo (v2, 5/10).
   El estado por defecto es el FINAL: sin JS, sin IntersectionObserver o con «Reducir movimiento» se ve todo hecho y nada parte de opacidad 0.
   El estado de partida solo existe con .pdc-js (lo pone entrega.js) y hasta que cada paso recibe .pdc-on.
   Al montarlo se pueden borrar de portada.css las reglas .pde-in, .pde h2, .pde-s, .pde-b, .pde-o, .pde-tx, .pde-t, .pde-st, .pde-a, .pde-c,
   .pde-k, .pde-ps, .pde-p y .pde-cam. Se quedan .pde (márgenes y scroll-margin) y .pde+.stack. ===== */

/* Sin caja dentro de caja: la sección respira como las demás y la cabecera sigue el patrón de .sh */
.pde{padding-top:calc(var(--sec,110px) * .8)}
.pdc-h{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:14px 60px;align-items:end;margin:0 0 clamp(30px,4vw,52px)}
.pdc-h h2{margin:0;font-size:clamp(2rem,3.6vw,3.125rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.pdc-h p{margin:0;max-width:42ch;padding-bottom:6px;color:var(--tx2);font-size:1rem;line-height:1.55}
@media (max-width:900px){.pdc-h{grid-template-columns:minmax(0,1fr)}.pdc-h p{padding-bottom:0}}

/* Cuatro pasos en fila, unidos por un raíl de petróleo. Con subgrid, títulos y píldoras quedan alineados al píxel entre columnas. */
.pdc-b{--gap:24px;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:0}
.pdc-k{--i:0;--d:0s;position:relative;min-width:0;display:grid;grid-template-rows:auto auto auto auto auto;align-content:start}
.pdc-k:nth-child(2){--i:1}.pdc-k:nth-child(3){--i:2}.pdc-k:nth-child(4){--i:3}
@supports (grid-template-rows:subgrid){.pdc-k{grid-row:span 5;grid-template-rows:subgrid}}

/* La imagen de cada paso */
.pdc-f{position:relative;margin:0;aspect-ratio:3/2;border-radius:var(--r,12px);overflow:hidden;isolation:isolate;background:#0B1115;border:1px solid var(--line)}
.pdc-f img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}

/* El raíl: un tramo por paso, del punto propio al del siguiente */
.pdc-n{position:relative;display:block;height:12px;margin:22px 0 18px}
.pdc-n i{position:absolute;left:0;top:0;z-index:1;width:12px;height:12px;box-sizing:border-box;border-radius:50%;border:2px solid var(--struct);background:var(--struct);box-shadow:0 0 0 5px var(--bg)}
.pdc-n::before,.pdc-n::after{content:"";position:absolute;left:6px;top:5px;width:calc(100% + var(--gap));height:2px;border-radius:2px}
.pdc-n::before{background:var(--line2)}
.pdc-n::after{background:var(--struct);transform-origin:left center}
.pdc-k:last-child .pdc-n::before,.pdc-k:last-child .pdc-n::after{content:none}

.pdc-t{margin:0 0 8px;font-family:var(--body);font-size:1.1875rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--tx)}
.pdc-st{margin:0;font-size:.9375rem;line-height:1.5;color:var(--tx2)}

/* Píldoras: lo único que se pulsa; el azul solo aparece aquí */
.pdc-ps{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding-top:16px}
.pdc-p{display:inline-flex;align-items:center;gap:9px;min-height:44px;box-sizing:border-box;padding:0 14px 0 11px;border:1px solid var(--line2);border-radius:999px;background:var(--s1);color:var(--tx);font-family:var(--body);font-size:.9375rem;font-weight:500;line-height:1.2;text-decoration:none;transition:border-color .25s,background-color .25s}
.pdc-p img,.pdc-p svg{flex:0 0 22px;width:22px;height:22px;object-fit:contain}
.pdc-p svg{color:var(--tx2)}
.pdc-p .pdc-a{color:var(--tx3);transition:transform .25s ease,color .25s}
.pdc-p:hover{border-color:var(--acc);background:var(--glass2,var(--glass))}
.pdc-p:hover .pdc-a{color:var(--acc);transform:translateX(3px)}
.pdc-p:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* Paso 1, la toma: la pantalla de la cámara (referencia: el monitor Atomos de Antonio). El RAW tal cual, con el cuadro de enfoque
   en verde sobre las luces del pueblo, el horizonte virtual y la barra negra de parámetros. Todo en un SVG de 300 × 200 (3:2),
   así el texto de la barra escala con la imagen y nunca se deforma. */
.pdc-f1 img{inset:0 0 auto;height:84%}
.pdc-cam{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pdc-cam text{font-family:var(--disp);font-size:15.5px;font-weight:500;letter-spacing:-.01em;fill:#F4F6F6;font-variant-numeric:tabular-nums}
.pdc-cam .b{font-weight:700;letter-spacing:-.04em}
.pdc-cam-hz{transform-origin:150px 84px}
.pdc-cam-tri{fill:#37D35B}
.pdc-cam-g{stroke:#37D35B}
.pdc-cam-af{transform-origin:189px 54px;stroke:#37D35B}

/* Paso 2, el revelado: el RAW a la izquierda y el revelado a la derecha, con la línea de corte */
.pdc-dev{clip-path:inset(0 0 0 50%)}
.pdc-cut{position:absolute;top:0;bottom:0;left:50%;z-index:1;width:2px;margin-left:-1px;background:#EEF3F4;box-shadow:0 0 14px rgba(0,0,0,.55)}
.pdc-cut::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#EEF3F4;box-shadow:0 0 0 3px rgba(11,17,21,.55)}

/* Paso 3, a fondo: las capas del documento de Photoshop, de la de fondo (el RAW) a la de arriba (la foto final), con las tres
   máscaras de luminosidad en medio (sombras, medios tonos y altas luces), en perspectiva como una baraja abierta.
   Encima, la pestaña del documento. Las medidas van en unidades del contenedor: todo escala con la tarjeta. */
.pdc-f3{container-type:inline-size;background:radial-gradient(110% 80% at 60% 60%,#1D2529 0%,#0E1316 75%)}
.pdc-psd{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;align-items:center;gap:8px;height:12%;padding:0 4%;background:#1B1F22;border-bottom:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:max(11px,3.7cqw);letter-spacing:.02em;color:#C3CFD3;white-space:nowrap;overflow:hidden}
.pdc-psd b{font-weight:500;color:#EEF3F4;overflow:hidden;text-overflow:ellipsis}
.pdc-psd span{margin-left:auto}
.pdc-psd::before{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#4FB5AC}
.pdc-mz{position:absolute;inset:12% 0 0;perspective:220cqw;perspective-origin:50% 45%}
.pdc-l{--n:0;--g:11cqw;--x:calc((var(--n) - 2) * var(--g));position:absolute;left:47%;top:50%;width:52cqw;aspect-ratio:3/2;margin:-17.33cqw 0 0 -26cqw;border-radius:3px;overflow:hidden;outline:1px solid rgba(255,255,255,.3);outline-offset:-1px;box-shadow:-14px 12px 26px rgba(0,0,0,.6);transform:translateX(var(--x)) rotateY(-34deg);transform-origin:center}
.pdc-l1{--n:0}.pdc-l2{--n:1}.pdc-l3{--n:2}.pdc-l4{--n:3}.pdc-l5{--n:4}
.pdc-l::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 55%)}
.pdc-l5::after{background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 40%)}
.pdc-l5{outline-color:rgba(143,203,245,.55)}

/* Paso 4, el vídeo: el vídeo de Antonio en panorámica de cine, con la línea de tiempo y el cabezal sincronizados (--t, de 0 a 1,
   lo pone entrega.js mientras el vídeo corre). Sin vídeo, el póster quieto con el cabezal a medio recorrido. */
.pdc-f4 video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:#0B1115}
.pdc-f4::before,.pdc-f4::after{content:"";position:absolute;left:0;right:0;z-index:1;height:11%;background:#05080A}
.pdc-f4::before{top:0}.pdc-f4::after{bottom:0}
.pdc-tl{--t:.5;position:absolute;left:7%;right:7%;bottom:5%;z-index:2;height:2px;border-radius:2px;background:rgba(238,243,244,.3)}
.pdc-tl::before{content:"";position:absolute;inset:0;border-radius:2px;background:#4FB5AC;transform-origin:left center;transform:scaleX(var(--t))}
.pdc-tl i{position:absolute;left:calc(var(--t) * 100%);top:-5px;width:2px;height:12px;margin-left:-1px;border-radius:1px;background:#EEF3F4}

/* De 1.024 hacia abajo: el camino en vertical, con el raíl a la izquierda */
@media (max-width:1024px){
  .pdc-b{--gapv:40px;grid-template-columns:minmax(0,1fr)}
  .pdc-k,.pdc-k:nth-child(n){grid-row:auto;grid-template-rows:none;grid-template-columns:24px minmax(0,.9fr) minmax(0,1fr);grid-template-areas:"n f t" "n f st" "n f ps" "n f .";column-gap:22px;padding-bottom:var(--gapv)}
  .pdc-k:last-child{padding-bottom:0}
  .pdc-f{grid-area:f;align-self:start}
  .pdc-n{grid-area:n;height:auto;margin:0}
  .pdc-n i{left:6px;top:6px}
  .pdc-n::before,.pdc-n::after{left:11px;top:12px;width:2px;height:auto;bottom:calc(-1 * var(--gapv) - 12px)}
  .pdc-n::after{transform-origin:center top}
  .pdc-t{grid-area:t;margin-top:2px}.pdc-st{grid-area:st}.pdc-ps{grid-area:ps}
}
@media (max-width:640px){
  .pdc-b{--gapv:36px}
  .pdc-k,.pdc-k:nth-child(n){grid-template-columns:20px minmax(0,1fr);grid-template-areas:"n f" "n t" "n st" "n ps";column-gap:14px}
  .pdc-n i{left:4px;top:4px}
  .pdc-n::before,.pdc-n::after{left:9px;top:10px;bottom:calc(-1 * var(--gapv) - 10px)}
  .pdc-t{margin:16px 0 6px;font-size:1.0625rem}
  .pdc-ps{padding-top:14px}
}

/* ===== Animación. Solo con movimiento permitido, solo con .pdc-js y paso a paso según entra en pantalla (.pdc-on).
   En escritorio los cuatro entran a la vez y se encadenan de izquierda a derecha (--d); en vertical cada uno arranca al aparecer. ===== */
@keyframes pdc-engancha{0%,100%{opacity:1}25%{opacity:.15}50%{opacity:1}75%{opacity:.15}}
@keyframes pdc-engancha-2{0%,100%{opacity:1}25%{opacity:.15}50%{opacity:1}75%{opacity:.15}}
@keyframes pdc-enciende{0%{filter:brightness(.25)}55%{filter:brightness(1.55)}100%{filter:none}}
@media (prefers-reduced-motion:no-preference){
  @media (min-width:1025px){.pdc-js .pdc-k{--d:calc(var(--i) * 1.6s)}} /* 5/10 (Antonio): el camino, a la mitad de velocidad */
  .pdc-js .pdc-n::after{transition:transform 1.6s linear calc(var(--d) + .25s)}
  .pdc-js .pdc-n i{transition:background-color .3s ease var(--d),border-color .3s ease var(--d),transform .4s cubic-bezier(.3,1.6,.5,1) var(--d)}
  /* 1: el foco entra grande y blanco, se cierra y «engancha» en verde con dos parpadeos; luego el horizonte se nivela y sus triángulos pasan a verde */
  .pdc-js .pdc-cam-af{transition:scale .5s cubic-bezier(.3,1.3,.5,1) calc(var(--d) + .15s),stroke .15s linear calc(var(--d) + .65s)}
  .pdc-js .pdc-k.pdc-on .pdc-cam-af{animation:pdc-engancha .45s linear calc(var(--d) + .65s) 1 both}
  .pdc-js .pdc-cam-hz{transition:rotate 1.1s cubic-bezier(.3,1.25,.45,1) calc(var(--d) + .7s)}
  .pdc-js .pdc-cam-tri{transition:fill .2s linear calc(var(--d) + 1.55s)}
  .pdc-js .pdc-cam-g{transition:stroke .2s linear calc(var(--d) + 1.55s)}
  /* 2: la línea de corte revela el RAW */
  .pdc-js .pdc-dev{transition:clip-path 1s cubic-bezier(.65,0,.35,1) calc(var(--d) + .15s)}
  .pdc-js .pdc-cut{transition:left 1s cubic-bezier(.65,0,.35,1) calc(var(--d) + .15s)}
  /* 3: la baraja se abre desde la capa de arriba y cada capa se «enciende» por orden, del RAW a la foto final */
  .pdc-js .pdc-l{transition:transform .9s cubic-bezier(.2,.8,.2,1) calc(var(--d) + (4 - var(--n)) * .06s)}
  .pdc-js .pdc-k.pdc-on .pdc-l{animation:pdc-enciende .55s ease-out calc(var(--d) + .7s + var(--n) * .22s) 1 backwards}

  /* Estado de partida: nada se oculta; la foto está ahí, solo cambia de fase */
  .pdc-js .pdc-k:not(.pdc-on) .pdc-n::after{transform:scaleX(0)}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-n i{background:var(--bg);border-color:var(--line2);transform:scale(.8)}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-cam-af{scale:1.8;stroke:#F4F6F6}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-cam-hz{rotate:-9deg}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-cam-tri{fill:#F4F6F6}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-cam-g{stroke:#F4F6F6}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-dev{clip-path:inset(0 0 0 100%)}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-cut{left:100%}
  .pdc-js .pdc-k:not(.pdc-on) .pdc-l{transform:translateX(calc(2 * var(--g))) rotateY(-34deg)}
  @media (max-width:1024px){.pdc-js .pdc-k:not(.pdc-on) .pdc-n::after{transform:scaleY(0)}}

  /* Al terminar la entrada (.pdc-fin) se quitan los retardos, para que el paso del ratón responda al momento */
  .pdc-k.pdc-fin *,.pdc-k.pdc-fin *::before,.pdc-k.pdc-fin *::after{transition-delay:0s!important}

  /* Ratón o teclado sobre un paso: el paso «va un poco más allá» */
  @media (hover:hover){
    .pdc-f img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
    .pdc-f .pdc-dev{transition:clip-path .7s cubic-bezier(.65,0,.35,1)}
    .pdc-cut{transition:left .7s cubic-bezier(.65,0,.35,1)}
    .pdc-l{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
    .pdc-cam-hz{transition:rotate .9s cubic-bezier(.3,1.25,.45,1)}
    .pdc-n i{transition:transform .3s ease,background-color .3s,border-color .3s}
    .pdc-k:is(:hover,:focus-within) .pdc-n i{transform:scale(1.35)}
    .pdc-k1:is(:hover,:focus-within) .pdc-f img{transform:scale(1.04)}
    .pdc-k1.pdc-fin:is(:hover,:focus-within) .pdc-cam-af{animation:pdc-engancha-2 .45s linear 1}
    .pdc-k2:is(:hover,:focus-within) .pdc-dev{clip-path:inset(0 0 0 22%)}
    .pdc-k2:is(:hover,:focus-within) .pdc-cut{left:22%}
    .pdc-k3:is(:hover,:focus-within) .pdc-l{--g:12.5cqw;transform:translateX(var(--x)) rotateY(-26deg)}
  }
}
/* 5/10 (Antonio): el número y el nombre de cada paso, para que la línea se lea como un camino de la toma al vídeo */
.pdc-t .pdc-et{display:block;margin-bottom:8px;font-family:var(--mono);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--struct)}
/* 5/10 (Antonio): todas las píldoras de «¿Por dónde empiezo?» del mismo tamaño, a lo ancho de su columna, con la flecha al final */
.pdc-ps{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.pdc-p{width:100%;box-sizing:border-box}
.pdc-p .pdc-a{margin-left:auto}
.pdc-p svg{flex:0 0 22px;color:var(--tx2)}
/* 5/10 (Antonio): los nombres de los mapas, en la letra de los pies de la pestaña de fotografías: monoespaciada y en mayúsculas, algo más grande */
.win .mapas figcaption b{font-family:var(--mono);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;margin-bottom:6px}
@media (max-width:640px){.win .mapas figcaption b{font-size:.75rem}}
/* 5/10 (Antonio): «Elige tu propio camino para aprender.» en gris debajo, como el resto de titulares de la portada */
.pdc-h h2 .g{display:block;color:var(--tx2)}
/* 5/10 (Antonio): al pasar el ratón por un paso, su rótulo (01 La toma…) se pone en negrita y crece un poco */
.pdc-t .pdc-et{transition:font-size .25s ease,font-weight .25s ease,letter-spacing .25s ease}
@media (hover:hover){.pdc-k:is(:hover,:focus-within) .pdc-et{font-size:.875rem;font-weight:800;letter-spacing:.11em}}
@media (prefers-reduced-motion:reduce){.pdc-t .pdc-et{transition:none}}
/* 5/10 (MARKETING): línea del capítulo gratis bajo «¿Por dónde empiezo?» */
.pdc-gratis{margin:clamp(28px,3.5vw,44px) auto 0;max-width:62ch;text-align:center;font-size:.9375rem;line-height:1.55;color:var(--tx2)}
.pdc-gratis a{display:inline;padding-block:12px;color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent)}

/* ===== Portada, cabecera en CLARO (5/10, CODIGO_3.0/diseno-hero-claro/). Va al FINAL de assets/css/portada.css.
   Solo claro: todo cuelga de :root[data-theme="light"]. El oscuro no cambia: sus reglas (.hero::after, .capa.frente, .hero .foot)
   quedan igual y estas no le aplican.
   El tema arranca siempre en oscuro (header.php: <html data-theme="dark">) y el claro solo llega por data-theme="light"
   (el botón del menú y localStorage «prw3-tema», comun.js). No hay ninguna regla prefers-color-scheme en el tema, así que no hace
   falta un bloque para el claro del sistema.
   Solución «niebla corta»: el velo deja de ocupar el 30 % de la cabecera (hasta 420 px) y se queda en los últimos 96 px (64 en el
   teléfono), con un primer tramo de niebla fría en lugar de blanco; la roca y la montaña del primer plano llegan a contraste completo
   hasta casi el borde. Las capas del frente recuperan brillo y contraste (en claro el brightness .78 del oscuro las dejaba grises).
   El pie de foto «Lofoten · Noruega» sube por encima del velo y va en claro sobre la roca, como en el oscuro. ===== */
:root[data-theme="light"] .hero::after{height:96px;background:linear-gradient(180deg,transparent 0,rgba(196,207,213,.38) 45%,color-mix(in srgb,var(--bg) 85%,transparent) 80%,var(--bg) 100%)}
:root[data-theme="light"] .capa.frente,:root[data-theme="light"] .capa.casitas{filter:brightness(.97) contrast(1.06) saturate(.96)}
:root[data-theme="light"] .hero .foot{bottom:112px;color:rgba(255,255,255,.8);text-shadow:0 1px 6px rgba(0,0,0,.6)}
@media (max-width:640px){
  :root[data-theme="light"] .hero::after{height:64px}
  :root[data-theme="light"] .hero .foot{bottom:76px}
}
/* 5/10 (Antonio): también en OSCURO el velo del pie de la cabecera, más corto (subía hasta 420 px y apagaba la roca). Mismo
   criterio que la «niebla corta» del claro: solo los últimos 140 px (80 en el teléfono), para que el primer plano se vea entero. */
:root:not([data-theme="light"]) .hero::after{height:140px;background:linear-gradient(180deg,transparent 0,color-mix(in srgb,var(--bg) 45%,transparent) 45%,color-mix(in srgb,var(--bg) 88%,transparent) 80%,var(--bg) 100%)}
@media (max-width:640px){:root:not([data-theme="light"]) .hero::after{height:80px}}

/* 6/10 (A1, Antonio Márquez): el tirador del antes y después, más claro. Flechas más grandes y, al llegar, tres pulsos
   suaves que dicen «arrástrame»; paran en cuanto se toca o se hace scroll. Sin pulsos con movimiento reducido. */
.reveal .knob,.ba .knob{font-size:1.5rem;letter-spacing:.06em;line-height:1}
@keyframes prw3-knob-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 70%,transparent),0 0 0 8px rgba(255,255,255,.12)}100%{box-shadow:0 0 0 22px transparent,0 0 0 8px rgba(255,255,255,.12)}}
@media (prefers-reduced-motion:no-preference){.reveal:not(.tocado) .knob{animation:prw3-knob-pulso 1.6s ease-out 1.4s 3}}
/* 6/10 (M2, Mario): en el cierre, el botón secundario sobre los tejados rojos, con fondo propio para que se lea */
.cierre .cta .btn:not(.p){background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

/* 6/10 (Antonio, vídeo): al pasar el ratón por «01 La toma», la cámara vuelve a enfocar de verdad: el recuadro busca
   (grande y blanco, se cierra, rebota y se pone verde con su parpadeo) y el horizonte se inclina y se nivela.
   Solo con ratón y movimiento permitido, y cuando la entrada del paso ya ha terminado (.pdc-on). */
@keyframes pdc-af-busca{0%{scale:1.8;stroke:#F4F6F6}55%{scale:.9;stroke:#F4F6F6}75%{scale:1.05}100%{scale:1;stroke:#37D35B}}
@keyframes pdc-hz-nivela{0%{rotate:-9deg}100%{rotate:0deg}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .pdc-k1.pdc-on:is(:hover,:focus-within) .pdc-cam-af{animation:pdc-af-busca .7s cubic-bezier(.3,1.3,.5,1) both,pdc-engancha-2 .45s linear .72s 1}
  .pdc-k1.pdc-on:is(:hover,:focus-within) .pdc-cam-hz{animation:pdc-hz-nivela .9s cubic-bezier(.3,1.25,.45,1) both}
}

/* 6/10 (Antonio, vídeo): en «02 El revelado» la línea iba detrás del revelado al pasar el ratón: «.pdc-js .pdc-cut»
   (1 s y con retardo) ganaba por especificidad a la «.pdc-cut» de .7 s, y la máscara sí iba a .7 s. Mismo ritmo para las dos. */
@media (hover:hover) and (prefers-reduced-motion:no-preference){.pdc-f .pdc-cut{transition:left .7s cubic-bezier(.65,0,.35,1)}}
/* prw3: 6/10 (Antonio), «Quién soy» con la foto del trípode: cuadrada y entera; el marco se adapta a la foto */
.retrato.cuadrado{aspect-ratio:1/1}
.retrato.cuadrado img{object-fit:cover;object-position:50% 50%}

/* prw3: 6/10 (Antonio), «¿Te queda alguna duda?» con la foto del portátil entera (2:3) en lugar del avatar redondo */
.got .got-foto{margin:0 0 6px;width:100%;aspect-ratio:800/1198;border-radius:calc(var(--r) - 4px);overflow:hidden;background:var(--s2)}
.got .got-foto img{width:100%;height:100%;border-radius:0;object-fit:cover;object-position:50% 50%;margin:0}
@media (max-width:760px){.got .got-foto{max-width:320px}}

/* ===== 7/10, entrega v5 del DISEÑADOR 3.0: «Vídeos de la portada 3.0» (maqueta https://claude.ai/artifact/MvNaRxmx3y1pMsEN1ZxwGf v5,
   capa maquetas-opus/ajustes/video-monitor.py, portada()). Va al FINAL de assets/css/portada.css, tal cual.
   Solo piezas nuevas o que cambian: las cuatro ventanas de «Por dentro» con la misma caja (16:9 por encima de 640 px, 3:4 por debajo),
   el vídeo que llena la ventana en las pestañas 02 y 03, el botón de reproducir con «Reducir movimiento», los pósteres y la tarjeta
   animada de la 01. Sin selectores de tema: --ok, --crit y --critbg ya están en comun.css y dentro de las ventanas se fijan con los
   valores del tema oscuro (el fondo de la ventana es siempre oscuro), como --struct.
   Deja de usarse en portada.css (se puede borrar cuando esté firmado, no antes): .fpv, .fpv-*, .fpv .ba y su hover fpv-vaiven
   (líneas 1023 a 1040, 1051 y 1082 de hoy), .win .mapas y .mapas (201 a 216, 502 a 505, 512, 618, 1254 y 1255) y los altos fijos de
   .shot (207, 212 y 1079), que quedan anulados por #dentro .shot{height:auto}. ===== */

/* Vídeo sobre póster (común a portada, catálogo y fotografías): el vídeo, transparente hasta su primer fotograma */
.pvid-p,.pvid-v{position:absolute;inset:0;display:block;width:100%;height:100%}
.pvid-p img{display:block;width:100%;height:100%;object-fit:cover}
.pvid-v{object-fit:cover;background:transparent;opacity:0;transition:opacity .3s}
.pvid-v.pvid-on{opacity:1}
/* Con «Reducir movimiento» el vídeo solo se ve si lo ha puesto la persona con el botón (encargo 4, 6/10 noche) */
@media (prefers-reduced-motion: reduce){.pvid-v:not(.pvid-manual){display:none}.pvid-v{transition:none}}
.pvid-b{position:absolute;left:50%;top:50%;z-index:2;width:60px;height:60px;margin:-30px 0 0 -30px;padding:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  color:#fff;background:rgba(8,12,15,.66);border:1px solid rgba(255,255,255,.6);box-shadow:0 6px 18px rgba(0,0,0,.35)}
.pvid-b[hidden]{display:none}
.pvid-b .pvid-b-play{margin-left:3px}
.pvid-b .pvid-b-pausa,.pvid-b.pvid-pausa .pvid-b-play{display:none}
.pvid-b.pvid-pausa .pvid-b-pausa{display:block}
.pvid-b:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #0B1013}
@media (hover:hover){.pvid-b:hover{background:rgba(8,12,15,.82)}}

/* ===== v5 (7/10): la misma caja para las cuatro ventanas de «Por dentro» =====
   Las pestañas se apilan en una rejilla (antes, en posición absoluta sobre un alto fijo): el alto de la sección sale de la ventana,
   y como todas las ventanas miden lo mismo, no salta al cambiar de pestaña. Interior: 16:9 por encima de 640 px, 3:4 por debajo. */
#dentro .shot{display:grid;height:auto;aspect-ratio:auto}
#dentro .shot>.pan{position:relative;inset:auto;grid-area:1 / 1;padding:78px 9% 40px;box-sizing:border-box;min-width:0}
#dentro .shot>.pan>.win{position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;margin:0;height:auto;grid-template-rows:42px auto}
#dentro .shot .winbar{height:42px;box-sizing:border-box;padding-block:0;white-space:nowrap;min-width:0}
#dentro .shot .winbar span{overflow:hidden;text-overflow:ellipsis;min-width:0}
#dentro .shot .winb{aspect-ratio:16 / 9;min-height:0;overflow:hidden}
@media (min-width:641px) and (max-width:1100px){#dentro .shot>.pan{padding:78px 3% 36px}}
@media (max-width:640px){#dentro .shot>.pan{padding:58px 12px 12px}#dentro .shot .winb{aspect-ratio:3 / 4}}
/* Pestañas 02 y 03: el vídeo llena la ventana entera */
.pvid-full{position:absolute;inset:0;background:#0B1013}
.pvid-full .pvid-p img,.pvid-full .pvid-v{object-fit:cover}
.pvid-full .pvid-p,.pvid-full .pvid-v{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px)} /* 7/10: franja de 1 px en retina con ancho decimal */
/* 7/10 noche, margen interior 02 y 03 (Antonio, en su iPad): el vídeo ya no llega al borde de la ventana. Va en un bloque redondeado
   con el margen de la 01 (.lmv: 20 px; 14 hasta 1100; 12 hasta 640), su radio de 10 px y su borde fino, y alrededor se ve el cristal.
   El bloque tiene la proporción exacta del vídeo, que es la de .winb (16:9; 3:4 hasta 640): se ajusta al alto y queda un poco más de
   margen a los lados (en el móvil, al ancho, y un poco más arriba y abajo). Nada se recorta. El borde va en ::after, por encima del
   vídeo, y clip-path redondea también la capa del vídeo en Safari. */
.pvid-full{--pm:20px;inset:0;margin:auto;width:calc(100% - var(--pm) * 32 / 9);height:calc(100% - var(--pm) * 2);border-radius:10px;overflow:hidden;clip-path:inset(0 round 10px);isolation:isolate}
.pvid-full::after{content:"";position:absolute;inset:0;z-index:3;border:1px solid rgba(255,255,255,.14);border-radius:inherit;pointer-events:none}
@media (max-width:1100px){.pvid-full{--pm:14px}}
@media (max-width:640px){.pvid-full{--pm:12px;width:calc(100% - var(--pm) * 2);height:calc(100% - var(--pm) * 8 / 3)}}
/* ===== 7/10, entrega v5c del DISEÑADOR 3.0: «02 secuencia con cristal» (maqueta https://claude.ai/artifact/MvNaRxmx3y1pMsEN1ZxwGf,
   capa maquetas-opus/ajustes/video-monitor.py, SEQ_CSS). Va al FINAL de assets/css/portada.css, tal cual, después del margen 02/03.
   Sin selectores de tema: dentro de la ventana todo es oscuro. Usa --disp y --mono de comun.css y .pvid-b y .pvid-p de la v5. ===== */
/* ===== v5c (7/10): la pestaña 02 como secuencia (A vídeo 16:9, B vídeo 4:3, C antes y después en HTML) =====
   El bloque va centrado en .winb con el margen de la 01 (20 px; 14 hasta 1100; 12 hasta 640), su radio de 10 px y su borde fino, como
   el .pvid-full de la v5. Su proporción (--q) cambia con el plano y se anima en 0,5 s; .winb no cambia, así que la sección tampoco.
   Por encima de 640 px el bloque se ajusta al ALTO (los huecos quedan a los lados); en el móvil, al ANCHO (arriba y abajo). */
.pseq{position:absolute;inset:0;container-type:size;--pm:20px;--q:1.7778}
.pseq[data-plano="b"]{--q:1.3333}
.pseq[data-plano="c"]{--q:1.3774}
.pseq-k{position:absolute;inset:0;margin:auto;height:calc(100cqh - var(--pm) * 2);width:calc((100cqh - var(--pm) * 2) * var(--q));border-radius:10px;overflow:hidden;
  clip-path:inset(0 round 10px);isolation:isolate;background:#0B1013;transition:width .5s cubic-bezier(.45,.05,.25,1),height .5s cubic-bezier(.45,.05,.25,1)}
.pseq-k::after{content:"";position:absolute;inset:0;z-index:5;border:1px solid rgba(255,255,255,.14);border-radius:inherit;pointer-events:none}
/* las capas sangran 1 px bajo el borde (la franja de 1 px de los anchos decimales, ver «Borde derecho 1 px») */
.pseq-k>.pvid-p,.pseq-v,.pseq-c{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block}
.pseq-v{object-fit:cover;background:transparent;opacity:0;z-index:1}
.pseq-vb{z-index:2}
.pseq-c{z-index:3;opacity:0}
.pseq[data-plano="a"] .pseq-va.pvid-on,.pseq[data-plano="b"] .pseq-vb,.pseq[data-plano="c"] .pseq-c{opacity:1}
.pseq:not([data-plano="a"]) .pseq-k>.pvid-p{visibility:hidden}
.pseq.vuelta .pseq-c{opacity:var(--cv,1)}
/* C: la foto sin revelar debajo, la revelada encima recortada por la cortina (--x de 0 a 1), la línea y el tirador (--ak) */
.pseq-c picture,.pseq-c img{position:absolute;inset:0;display:block;width:100%;height:100%}
.pseq-c img{object-fit:cover}
.pseq-d{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--x,0) * 100%) 0 0)}
.pseq-l{position:absolute;top:0;bottom:0;left:calc(var(--x,0) * 100%);width:2px;margin-left:-1px;background:#E6ECEE;opacity:var(--ak,0)}
.pseq-t{--d:max(34px,calc((100cqh - var(--pm) * 2) * .13));position:absolute;left:50%;top:30%;width:var(--d);height:var(--d);margin:calc(var(--d) / -2) 0 0 calc(var(--d) / -2);
  border-radius:50%;background:#5FBBFF;color:#0B2236;display:grid;place-items:center;font:600 calc(var(--d) * .46)/1 var(--disp);letter-spacing:.02em;
  box-shadow:0 0 0 calc(var(--d) * .13) rgba(95,187,255,.25)}
/* Los rótulos, en el hueco de cristal: a los lados del bloque C, centrados en su hueco y a media altura */
.pseq-r{position:absolute;z-index:4;top:0;bottom:0;width:calc((100cqw - (100cqh - var(--pm) * 2) * 1.3774) / 2);display:flex;align-items:center;justify-content:center;
  pointer-events:none;opacity:0}
.pseq-rr{left:0}
.pseq-rs{right:0}
.pseq:not([data-plano="c"]):not(.vuelta) .pseq-r{visibility:hidden}
.pseq-r>span{--fr:clamp(10px,calc(1.85cqw + var(--pm) * .23 - 4px),22px);font:500 var(--fr)/1.12 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#E6ECEE;
  background:rgba(16,21,24,.84);padding:.225em .3em .175em;border-radius:.2em;text-align:center;white-space:nowrap}
.pseq>.pvid-b{z-index:6}
@media (max-width:1100px){.pseq{--pm:14px}}
@media (max-width:640px){
  .pseq{--pm:12px;--q:.75}
  .pseq-k{width:calc(100cqw - var(--pm) * 2);height:calc((100cqw - var(--pm) * 2) / var(--q))}
  .pseq-t{--d:max(30px,calc((100cqw - var(--pm) * 2) * .0944))}
  /* los rótulos, en una línea debajo de la foto: «Revelada» a la izquierda y «Sin revelar» a la derecha */
  .pseq-r{top:calc(50% + (100cqw - var(--pm) * 2) * .363 + 12px);bottom:auto;width:auto;justify-content:flex-start}
  .pseq-rr{left:var(--pm)}
  .pseq-rs{right:var(--pm);left:auto}
  .pseq-r br{display:none}
  .pseq-r>span{--fr:clamp(11px,4.2cqw,18px)}
}

/* prw3: 7/10 (reparto de retratos del DISEÑADOR 3.0, filas 1 y 2). Fotos de Antun ENTERAS: el hueco toma la proporción de
   la foto (1200x802) y la imagen va con contain sobre fondo, así que nunca recorta. Gana también al 4/3 del móvil. */
.antun .retrato.apaisado{aspect-ratio:1200/802;background:var(--s2)}
.antun .retrato.apaisado img{object-fit:contain;object-position:50% 50%;background:var(--s2)}
/* 7/10 DR-2 (DISEÑADOR): sin velo sobre la foto; el pie va en una pastilla ajustada, como la placa P1 */
.antun .retrato.apaisado::after{content:none}
.antun .retrato.apaisado .ac{color:#fff;background:rgba(8,12,15,.62);-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2);padding:5px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);text-shadow:none;left:12px;bottom:12px}
.got .got-foto.apaisada{aspect-ratio:1200/802}
.got .got-foto.apaisada img{object-fit:contain;object-position:50% 50%}
@media (max-width:900px){.got .got-foto.apaisada{max-width:420px}} /* entre 760 y 900 la columna de dudas va a todo el ancho: sin tope, la foto salía de 704 */

/* prw3: 7/10, firma de retratos del DISEÑADOR 3.0. DR-1: la animación escala la caja (portada.js), no la foto; crece desde el centro.
   DR-2: el pie del frontal («Stokksnes · Islandia») se lee sobre la roca iluminada: velo más denso abajo y sombra en el texto. */
.antun .retrato{transform-origin:50% 50%}
.antun .retrato img{will-change:filter}
/* DR-2, medido el 7/10 a 375: con el velo de arriba el peor punto se queda en 3,7 (la roca iluminada ocupa más del pie en el móvil).
   El pie va en blanco pleno en todos los anchos y, en el móvil, con el velo algo más denso: 5,3 en el peor píxel. */
