/* BioPurity — capítulos (todo lo que hay debajo de la portada) y ajustes de rendimiento.
   Se carga la última. Lenguaje editorial: capítulos numerados, serif Fraunces para los
   titulares, DM Mono para rótulos y cifras, filetes finos en lugar de tarjetas. */

@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url('../../fonts/fraunces-normal-300-600.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 600;font-display:swap;src:url('../../fonts/fraunces-italic-300-600.woff2') format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../../fonts/dm-mono-normal-400.woff2') format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../../fonts/dm-mono-normal-500.woff2') format('woff2')}

:root{
  --tinta:#0a2a47;
  --tinta-suave:#56708a;
  --filete:rgba(10,42,71,.16);
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --mono:'DM Mono',ui-monospace,Menlo,monospace;
  --margen:max(24px,6vw);
}

/* ================================================================ rendimiento
   Menos modos de fusión y desenfoques de fondo: son lo que más cuesta al pintar cada
   fotograma, sobre todo en móviles. El aspecto se mantiene con colores equivalentes. */
.sol::before,.rayos,.flare,.destello{mix-blend-mode:normal}
.rayos{width:120vmax;height:120vmax;left:-60vmax;top:-60vmax;opacity:.22;will-change:transform}
.sol::before{opacity:.8}
.grano{mix-blend-mode:normal;opacity:.035;will-change:transform}
@media (pointer:coarse){.grano{display:none}}
.medidor{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.88)}
.pista-cursor{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(3,28,60,.45)}
.cine .sonido{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.94)}
.topbar.solida{background:rgba(255,255,255,.95);backdrop-filter:none;-webkit-backdrop-filter:none}
@media (pointer:fine){.topbar.solida{background:rgba(255,255,255,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}
/* Los iones flotaban con variables que JS reescribía en <html> cada fotograma (recalculaba
   el estilo de toda la página). Ahora flotan solo con CSS. */
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(8px,-6px) scale(.96)}66%{transform:translate(-6px,5px) scale(1.03)}}
.smog-sat,.smog-bruma,.aire,.fx{contain:strict}

/* ================================================================ la parte de abajo
   Sigue el cuento de la portada: el mismo cielo, las mismas nubes, hojas, iones y molinillo,
   con acabado de cuaderno — papel, celo, trazos de rotulador y notas escritas a mano.
   Las inclinaciones usan la propiedad `rotate` (no `transform`) para no chocar con GSAP. */
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('../../fonts/caveat-400-700.woff2') format('woff2')}
:root{
  --tinta:#0b2f52;
  --tinta-suave:#50698a;
  --papel:#fffcf4;
  --mano:'Caveat','Segoe Print','Bradley Hand',cursive;
  --textura:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .28 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
}
.defs-mano{position:absolute;width:0;height:0;overflow:hidden}
.capitulos{position:relative;color:var(--tinta)}
.cap{position:relative;padding:clamp(110px,14vw,200px) var(--margen) clamp(90px,11vw,160px);overflow-x:clip}
.cap > *{max-width:1280px;margin-left:auto;margin-right:auto}
.cap > .motas{max-width:none;margin:0}
.trazo{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;filter:url(#aMano)}

/* Cabecera de capítulo: número rodeado a mano y rótulo manuscrito */
.cap-cab{position:relative;z-index:2;display:flex;align-items:center;gap:14px;margin-bottom:clamp(36px,5vw,72px)}
.cap-num{position:relative;display:grid;place-items:center;width:58px;height:58px;font:italic 400 22px/1 var(--serif);color:var(--tinta)}
.cap-num svg{position:absolute;inset:-4px;width:66px;height:66px;color:var(--verde);overflow:visible}
.cap-tit{font:600 30px/1 var(--mano);color:var(--tinta-suave);rotate:-2deg}
.titulo-serif{position:relative;z-index:2;margin:0;font-family:var(--serif);font-weight:340;font-size:clamp(46px,7vw,110px);line-height:.95;letter-spacing:-.035em;color:var(--tinta);font-variation-settings:'opsz' 144}
.titulo-serif em,.titulo-gigante em{font-style:italic;font-weight:300;color:var(--azul)}
.linea-m{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.linea-i{display:block;will-change:transform}
.nota-mano{margin:0;font:600 clamp(24px,2.2vw,30px)/1.1 var(--mano);color:var(--azul)}
.nota-mano svg{width:84px;height:64px;color:currentColor;overflow:visible;vertical-align:middle}

/* Hojas reales de la portada flotando por la página */
.hoja-deco{position:absolute;z-index:1;width:clamp(70px,9vw,140px);height:auto;pointer-events:none;filter:drop-shadow(0 10px 14px rgba(18,93,28,.2))}
.hd-1{right:6%;top:12%;rotate:-28deg}
.hd-2{left:-2%;top:48%;width:clamp(90px,12vw,190px);rotate:36deg;filter:blur(2px) drop-shadow(0 10px 14px rgba(18,93,28,.15))}
.hd-3{left:44%;bottom:-2%;width:clamp(50px,6vw,90px);rotate:120deg}

/* Nubes de la portada como borde entre capítulos */
.nubes-borde{position:absolute;z-index:1;left:-12%;right:-12%;top:clamp(-150px,-11vw,-70px);pointer-events:none;max-width:none!important;margin:0!important}
.nubes-borde img{display:block;width:100%;height:auto;opacity:.95;
  /* Se funden por los lados y por abajo: sin cortes rectos */
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 18%,#000 82%,transparent 100%),linear-gradient(to bottom,#000 45%,transparent 92%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 18%,#000 82%,transparent 100%),linear-gradient(to bottom,#000 45%,transparent 92%);
  mask-composite:intersect}
.nubes-noche img{filter:brightness(.26) saturate(.5) contrast(1.1);opacity:1}
.nubes-alba img{filter:sepia(.2) saturate(1.3) brightness(1.03)}

/* ---------------------------------------------------------------- 01 · manifiesto */
.manifiesto-texto{position:relative;z-index:2;margin:0;max-width:1120px;font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.2vw,62px);line-height:1.14;
  letter-spacing:-.02em;font-variation-settings:'opsz' 96;color:var(--tinta)}
.marca{position:relative;display:inline-block;font-style:italic;color:var(--verde)}
.subrayado{position:absolute;left:-4%;bottom:-.16em;width:108%;height:.34em;color:var(--verde);overflow:visible}
.subrayado .trazo{stroke-width:3.2}
.glifo{display:inline-flex;gap:.08em;vertical-align:middle;margin:0 .06em;translate:0 -.06em}
.glifo i{display:inline-grid;place-items:center;width:.62em;height:.62em;border-radius:50%;font:500 .36em/1 var(--mono);font-style:normal;color:#fff}
.g-mas{background:radial-gradient(circle at 35% 30%,#fff6cf 0 10%,#ffd36b 35%,#e0932a 100%)}
.g-menos{background:radial-gradient(circle at 35% 30%,#e5fbff 0 10%,#3fd0ff 35%,#0a6fd6 100%)}
.nota-man{position:relative;z-index:2;display:flex;align-items:flex-end;gap:6px;margin:clamp(40px,5vw,70px) 0 0 min(12%,140px);rotate:-3deg}
.nota-man svg{order:-1;scale:-1 1}

.pegatinas{position:relative;z-index:2;list-style:none;margin:clamp(56px,7vw,90px) auto 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,60px)}
.pegatina{position:relative;padding:62px clamp(22px,2.4vw,34px) 34px;border-radius:3px;background:var(--textura),var(--papel);
  box-shadow:0 1px 0 rgba(11,47,82,.05),0 22px 36px -22px rgba(11,47,82,.45);rotate:var(--r);transition:rotate .5s cubic-bezier(.2,.8,.2,1),translate .5s cubic-bezier(.2,.8,.2,1)}
.pegatina::before{content:"";position:absolute;top:-15px;left:50%;width:112px;height:30px;margin-left:-56px;rotate:-3deg;
  background:rgba(255,244,205,.78);box-shadow:0 1px 2px rgba(0,0,0,.08);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
.p1{--r:-2.2deg}.p2{--r:1.8deg;margin-top:44px}.p3{--r:-1deg;margin-top:14px}
.pegatina-img{position:absolute;top:-48px;right:-22px;width:128px;height:auto;filter:drop-shadow(0 12px 14px rgba(11,47,82,.25));transition:rotate .7s cubic-bezier(.2,.8,.2,1),scale .7s cubic-bezier(.2,.8,.2,1)}
.pegatina-img.gira{width:108px;top:-44px}
.ion-bola{display:grid;place-items:center;width:92px;height:92px;top:-38px;right:-14px;border-radius:50%;color:#fff;font:300 56px/1 var(--serif);
  background:radial-gradient(circle at 36% 28%,#e5fbff 0 8%,#3fd0ff 26%,#0a6fd6 62%,#083e9a 100%);box-shadow:0 0 30px rgba(63,208,255,.5)}
.pegatina-num{font:700 34px/1 var(--mano);color:var(--verde)}
.pegatina h3{margin:10px 0 12px;font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1;letter-spacing:-.02em;color:var(--tinta)}
.pegatina p{margin:0;font-size:16px;line-height:1.6;color:var(--tinta-suave)}
@media (hover:hover){
  .pegatina:hover{rotate:0deg;translate:0 -10px}
  .pegatina:hover .pegatina-img{rotate:-16deg;scale:1.08}
  .pegatina:hover .pegatina-img.gira{rotate:220deg}
}

/* ---------------------------------------------------------------- 02 · diferencia */
.dif-cabecera{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:32px 6vw;align-items:end}
.dif-texto{margin:0 0 .4em;max-width:36ch;font-size:18px;line-height:1.65;color:var(--tinta-suave)}
.polaroid{position:relative;z-index:2;margin:clamp(56px,7vw,96px) auto 0;max-width:1100px;padding:18px 18px 70px;border-radius:2px;background:var(--textura),var(--papel);
  box-shadow:0 2px 0 rgba(11,47,82,.05),0 50px 80px -44px rgba(11,47,82,.55);rotate:-1.2deg}
.polaroid .comparador{margin:0;border-radius:1px;box-shadow:inset 0 0 0 1px rgba(11,47,82,.1)}
.polaroid figcaption{position:absolute;left:0;right:0;bottom:18px;text-align:center;font:600 30px/1 var(--mano);color:var(--tinta)}
.polaroid figcaption small{display:block;margin-top:6px;font:400 12px/1 var(--mono);color:var(--tinta-suave)}
.celo{position:absolute;z-index:3;width:130px;height:34px;background:rgba(255,244,205,.8);box-shadow:0 1px 2px rgba(0,0,0,.08);pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}
.polaroid .celo-a{top:-12px;left:-38px;rotate:-38deg}
.polaroid .celo-b{top:-12px;right:-38px;rotate:36deg}
.polaroid .etq{top:16px;padding:2px 12px 4px;border-radius:1px;font:700 26px/1 var(--mano);letter-spacing:0;text-transform:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.polaroid .etq-sucio{left:16px;color:var(--papel);background:rgba(40,30,18,.55);rotate:-3deg}
.polaroid .etq-limpio{right:16px;color:var(--tinta);background:rgba(255,252,244,.92);rotate:2deg}
.polaroid .tirador{width:56px;height:56px;margin:-28px;border:1px solid rgba(11,47,82,.12)}
.nota-arrastra{position:absolute;z-index:4;right:clamp(-150px,-9vw,-60px);top:-74px;display:flex;flex-direction:column;align-items:flex-start;rotate:5deg;pointer-events:none}
.nota-arrastra svg{margin:2px 0 0 10px;scale:-1 1;rotate:10deg}

/* ---------------------------------------------------------------- cinta */
.cine .cinta,.cinta{position:relative;z-index:2;border:0;background:transparent;padding:clamp(34px,5vw,70px) 0}
.cinta-pista{gap:.3em;align-items:center;font-family:var(--serif);font-style:italic;font-weight:300;letter-spacing:-.035em;font-size:clamp(64px,11vw,176px)}
.cinta-pista span,.cinta-pista span.llena{color:var(--tinta);-webkit-text-stroke:0;background:none}
.cinta-hoja{flex:none;height:.55em;width:auto;rotate:-24deg;filter:drop-shadow(0 8px 10px rgba(18,93,28,.25))}
.cinta-hoja:nth-of-type(2n){rotate:30deg}
.ion-g{display:inline-grid;place-items:center;flex:none;width:.42em;height:.42em;border-radius:50%;font:400 .22em/1 var(--mono);font-style:normal;color:#fff}
.ion-g.mas{background:radial-gradient(circle at 35% 30%,#fff6cf 0 10%,#ffd36b 35%,#e0932a 100%)}
.ion-g.menos{background:radial-gradient(circle at 35% 30%,#e5fbff 0 10%,#3fd0ff 35%,#0a6fd6 100%)}

/* ---------------------------------------------------------------- 03 · tecnología (de noche, a tiza) */
.tecno{color:#d4e6f5;isolation:isolate;overflow-x:clip;
  background:radial-gradient(900px 600px at 80% 10%,rgba(11,143,229,.2),transparent 60%),radial-gradient(700px 500px at 5% 90%,rgba(53,173,44,.12),transparent 60%),#041426}
.tecno .nubes-borde{z-index:0}
.luna{position:absolute;z-index:0;top:clamp(120px,14vw,200px);right:8vw;width:86px;height:86px;border-radius:50%;max-width:none!important;margin:0!important;
  background:radial-gradient(circle at 38% 36%,#fffdf0 0,#f6efcf 45%,#e2d7a8 100%);box-shadow:0 0 40px 8px rgba(255,248,210,.25),0 0 120px 30px rgba(255,248,210,.1)}
.luna::after{content:"";position:absolute;width:18px;height:18px;left:22px;top:44px;border-radius:50%;background:rgba(190,178,130,.35);box-shadow:26px -18px 0 -4px rgba(190,178,130,.3),30px 10px 0 -6px rgba(190,178,130,.3)}
.tecno .cap-num,.tecno .titulo-serif{color:#fff}
.tecno .cap-num svg{color:#9df07a}
.tecno .cap-tit{color:rgba(212,230,245,.7)}
.tecno .titulo-serif em{color:#3fd0ff}
.tecno-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,110px);margin-top:clamp(40px,6vw,80px);align-items:start}
.diagrama-wrap{position:sticky;top:12vh}
.diagrama{display:block;width:100%;height:auto;max-height:76vh;overflow:visible}
.diagrama-pie{margin:8px 0 0;font:500 22px/1.2 var(--mano);color:rgba(212,230,245,.55);rotate:-1deg}
.diagrama .tiza{filter:url(#tiza)}
.diagrama .carcasa{fill:none;stroke:rgba(255,255,255,.62);stroke-width:2.2}
.diagrama .carcasa-2{stroke:rgba(255,255,255,.18);stroke-width:1.5}
.diagrama .rejilla{fill:none;stroke:rgba(255,255,255,.7);stroke-width:2.6;stroke-linecap:round}
.diagrama .ruta{fill:none;stroke-linecap:round;stroke-linejoin:round}
.diagrama .ruta-base{stroke:rgba(255,255,255,.16);stroke-width:3}
.diagrama .ruta-luz{stroke:url(#gradRuta);stroke-width:3.2;filter:drop-shadow(0 0 5px rgba(63,208,255,.8))}
.diagrama .ruta-cometa{stroke:#fff;stroke-width:4;opacity:0;filter:drop-shadow(0 0 6px #3fd0ff)}
.diagrama .fase-aro{fill:none;stroke:rgba(255,255,255,.35);stroke-width:1.8;filter:url(#aMano);transition:stroke .6s}
.diagrama .fase.activa .fase-aro{stroke:#3fd0ff}
.diagrama .ventilador{fill:rgba(255,255,255,.6);transform-box:fill-box;transform-origin:50% 50%;animation:ventila 5s linear infinite;transition:fill .6s}
.diagrama .fase-1.activa .ventilador{fill:#3fd0ff;animation-duration:.9s}
@keyframes ventila{to{transform:rotate(360deg)}}
.diagrama .campo{fill:none;stroke:rgba(63,208,255,.25);stroke-width:1.4;stroke-dasharray:6 6;animation:campo 3s linear infinite}
.diagrama .fase-2.activa .campo{stroke:rgba(63,208,255,.75);animation-duration:.8s}
@keyframes campo{to{stroke-dashoffset:-48}}
.diagrama .io circle{fill:rgba(255,255,255,.06);stroke-width:1.6}
.diagrama .io.mas circle{stroke:#ffd36b}.diagrama .io.menos circle{stroke:#3fd0ff}
.diagrama .io text{fill:#fff;font:500 13px var(--mono);text-anchor:middle}
.diagrama .io{transform-box:fill-box;transform-origin:50% 50%;animation:ionD 2.6s ease-in-out infinite}
.diagrama .io:nth-child(2){animation-delay:-.7s}.diagrama .io:nth-child(3){animation-delay:-1.4s}.diagrama .io:nth-child(4){animation-delay:-2s}
.diagrama .fase-2.activa .io circle{fill:rgba(63,208,255,.25)}
@keyframes ionD{0%,100%{transform:translate(0,0)}50%{transform:translate(4px,-6px)}}
.diagrama .guia{fill:none;stroke:rgba(255,255,255,.45);stroke-width:1.4;stroke-linecap:round;filter:url(#aMano)}
.diagrama text{fill:#fff;font:700 30px var(--mano)}
.diagrama .t-sub{fill:rgba(255,255,255,.7);font:500 24px var(--mano)}
.diagrama .t-izq{text-anchor:end}
.diagrama .fase text{transition:fill .6s}
.diagrama .fase.activa text{fill:#3fd0ff}
.diagrama .part-sucias circle{fill:#c9ab7c;opacity:.9}
.diagrama .part-limpias circle{fill:#e4faff;filter:drop-shadow(0 0 4px #3fd0ff)}
.etapas{list-style:none;margin:0;padding:0}
.etapa{min-height:58vh;display:flex;flex-direction:column;justify-content:center;padding-left:clamp(20px,3vw,40px);border-left:2px dashed rgba(255,255,255,.14);transition:opacity .6s,border-color .6s}
.cine .etapa{opacity:.3}
.cine .etapa.activa{opacity:1;border-left-color:#3fd0ff}
.etapa-num{font:700 60px/.8 var(--mano);color:#9df07a}
.etapa h3{margin:10px 0 14px;font-family:var(--serif);font-weight:340;font-size:clamp(36px,3.6vw,56px);line-height:1;letter-spacing:-.03em;color:#fff}
.etapa p{margin:0;max-width:34ch;font-size:18px;line-height:1.65;color:#a9c6dd}

/* ---------------------------------------------------------------- 04 · contacto (amanece) */
.titulo-gigante{position:relative;z-index:2;margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(60px,11vw,184px);line-height:.9;letter-spacing:-.05em;color:var(--tinta);font-variation-settings:'opsz' 144}
.marca-circulo{position:relative;display:inline-block;margin-left:.18em;font-style:italic;color:var(--verde)}
.marca-circulo svg{position:absolute;left:-14%;top:-8%;width:128%;height:122%;color:var(--azul);overflow:visible}
.marca-circulo .trazo{stroke-width:3}
.contacto .contacto-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,7vw,120px);margin-top:clamp(56px,7vw,100px);align-items:start}
.contacto-intro{margin:0 0 36px;max-width:28ch;font-family:var(--serif);font-weight:300;font-size:clamp(22px,2vw,28px);line-height:1.3;color:var(--tinta)}
.contacto .datos{display:block;margin:0}
.contacto .dato{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:baseline;padding:14px 0;border:0;border-bottom:1.5px dashed rgba(11,47,82,.2);border-radius:0;background:none;box-shadow:none}
.contacto .dato dt{font:700 26px/1 var(--mano);color:var(--verde)}
.contacto .dato dd{margin:0;font-size:18px;font-weight:600;color:var(--tinta);overflow-wrap:anywhere}
.contacto .dato a{color:inherit;text-decoration:none}
.molinillo-deco{position:relative;height:300px;margin-top:40px;max-width:260px}
.md-palo{position:absolute;left:92px;bottom:0;width:70px;height:210px;object-fit:fill;rotate:4deg;transform-origin:50% 0;
  -webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.md-rotor{position:absolute;left:34px;top:0;width:190px;height:auto;animation:windSpin 7s linear infinite;filter:drop-shadow(0 12px 12px rgba(22,67,87,.22))}

.hoja-papel{position:relative;padding:58px clamp(22px,4vw,54px) 40px!important;border-radius:3px!important;background:var(--textura),var(--papel)!important;
  box-shadow:0 2px 0 rgba(11,47,82,.05),0 40px 70px -40px rgba(11,47,82,.5)!important;rotate:.6deg}
.hoja-papel .celo-a{top:-16px;left:50%;margin-left:-65px;rotate:-4deg}
.nota-form{margin:0 0 18px;rotate:-2deg}
.contacto .fila{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.contacto .campo{position:relative;display:block;margin:0 0 26px}
.contacto .campo input,.contacto .campo textarea{display:block;width:100%;padding:24px 0 10px;border:0;border-bottom:1.5px solid rgba(11,47,82,.25);border-radius:0;
  background:transparent;font-family:inherit;font-size:19px;font-weight:500;line-height:1.4;color:var(--tinta);box-shadow:none;transition:border-color .3s}
.contacto .campo textarea{min-height:110px;resize:vertical}
.contacto .campo input:focus,.contacto .campo textarea:focus{outline:none;border-bottom-color:var(--azul);box-shadow:none}
.contacto .campo label{position:absolute;left:0;top:24px;font-size:17px;font-weight:500;color:var(--tinta-suave);pointer-events:none;transform-origin:0 0;transition:transform .35s cubic-bezier(.2,.8,.2,1),color .3s}
.contacto .campo input:focus + label,.contacto .campo input:not(:placeholder-shown) + label,
.contacto .campo textarea:focus + label,.contacto .campo textarea:not(:placeholder-shown) + label{transform:translateY(-24px) scale(.72);color:var(--azul)}
.contacto .campo input:user-invalid,.contacto .campo textarea:user-invalid{border-bottom-color:#d9534f}
.chips{border:0;margin:4px 0 30px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips legend{padding:0;margin-bottom:12px;font:700 26px/1 var(--mano);color:var(--verde)}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:9px 16px;border:1.5px solid rgba(11,47,82,.22);border-radius:999px;font-size:15px;font-weight:600;color:var(--tinta);transition:background .25s,color .25s,border-color .25s}
.chips label:hover span{border-color:var(--tinta)}
.chips input:checked + span{background:var(--tinta);border-color:var(--tinta);color:#fff}
.chips input:focus-visible + span{outline:3px solid var(--cian);outline-offset:3px}
.enviar-fila{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:8px}
.contacto .consentimiento{margin:0;max-width:32ch;font-size:13px}
/* Botón como un sello */
.contacto .boton{position:relative;flex:none;width:128px;height:128px;padding:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:var(--tinta);box-shadow:0 24px 44px -22px rgba(11,47,82,.9);font:700 32px/1 var(--mano);letter-spacing:0;text-transform:none;rotate:-6deg}
.contacto .boton::after{content:"";position:absolute;inset:8px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.4)}
.contacto .boton svg{width:22px;height:22px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.contacto .boton:hover{background:var(--verde);filter:none}
.contacto .boton:hover svg{transform:translateX(5px)}
.contacto .boton.enviado{background:var(--verde)}
.contacto .form-estado{text-align:left;margin-top:16px}

/* ---------------------------------------------------------------- pie: el horizonte */
.pie{position:relative;overflow:hidden;padding:0;background:#dcebf6;color:#fff}
.pie-paisaje{position:absolute;inset:0;background:url('../../images/hd/landscape-clean.webp') 30% 72%/cover no-repeat}
.pie-paisaje::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgb(236,246,255) 0%,rgba(236,246,255,.6) 20%,rgba(236,246,255,0) 42%,rgba(4,20,38,0) 60%,rgba(4,20,38,.6) 100%)}
.pie-contenido{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(120px,14vw,200px) var(--margen) 28px;min-height:min(92vh,760px)}
.pie .pie-logo{width:min(560px,82vw);height:auto;padding:0;background:none;border-radius:0;filter:drop-shadow(0 2px 18px rgba(255,255,255,.9))}
.pie-lema{margin:18px 0 0;font:300 clamp(20px,2vw,28px)/1.2 var(--serif);color:var(--tinta)}
.pie-lema em{font-style:italic;color:var(--azul)}
.pie-nav{margin-top:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;padding-top:120px}
.pie a{color:#fff;text-decoration:none;font-size:15px;font-weight:600;text-shadow:0 1px 8px rgba(4,20,38,.6);background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .4s}
.pie a:hover{background-size:100% 1.5px;text-decoration:none}
.pie-sep{opacity:.6}
.pie-arriba{margin-top:22px;font:700 28px/1 var(--mano)!important;rotate:-2deg}
.pie-base{margin-top:26px;font:400 12px/1.4 var(--mono);color:rgba(255,255,255,.75);text-shadow:0 1px 6px rgba(4,20,38,.6)}

/* ---------------------------------------------------------------- móvil */
@media (max-width:900px){
  .pegatinas{grid-template-columns:1fr;gap:56px;max-width:460px}
  .p2,.p3{margin-top:0}
  .dif-cabecera{grid-template-columns:1fr}
  .polaroid{padding:10px 10px 62px;rotate:-.6deg}
  .polaroid .celo-a{left:-26px}.polaroid .celo-b{right:-26px}
  .nota-arrastra{display:none}
  .tecno-grid{grid-template-columns:1fr;gap:0}
  .diagrama-wrap{top:64px;z-index:3;padding:10px 0 6px;background:linear-gradient(#041426 86%,rgba(4,20,38,0))}
  .diagrama{max-height:38vh}
  .diagrama-pie{display:none}
  .etapa{min-height:46vh}
  .luna{width:56px;height:56px;right:6vw}
  .contacto .contacto-grid{grid-template-columns:1fr}
  .molinillo-deco{display:none}
  .contacto .fila{grid-template-columns:1fr}
  .enviar-fila{flex-direction:column;align-items:flex-start}
  .contacto .boton{width:112px;height:112px}
  .hoja-deco.hd-2{display:none}
}
