:root{--background:#050a07;--text:#edf5ed;--muted:#a0b2a3;--accent:#80ff55;--border:#1c3424;--radius:0;--max-width:1120px;--font:Arial,Helvetica,sans-serif}

/* Base y ritmo */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:radial-gradient(ellipse at 82% 19%,#12311a29,transparent 36%),var(--background);color:var(--text);font-family:var(--font);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}::selection{background:#80ff55;color:#050a07}:focus-visible{outline:2px solid var(--accent);outline-offset:7px}main:focus{outline:none}.shell{width:min(var(--max-width),calc(100% - 112px));margin-inline:auto}.skip{position:absolute;left:20px;top:-100px;z-index:10;padding:12px 18px;background:var(--accent);color:#050a07}.skip:focus{top:12px}
/* Firma y navegación */
.header{height:100px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #213426;position:relative}.header:after{content:'';position:absolute;bottom:-1px;left:0;width:32px;height:1px;background:var(--accent);box-shadow:0 0 12px #80ff5540}.brand{display:flex;align-items:center;gap:14px;line-height:1.1;font-weight:650;letter-spacing:3.4px;font-size:22px}.brand .brand-symbol{width:54px;height:54px;object-fit:contain;mask-image:radial-gradient(ellipse,#000 48%,transparent 76%)}.brand small{display:block;font:8px monospace;font-weight:400;color:#8eaa92;letter-spacing:1px;margin-top:9px}nav{display:flex;gap:36px;font-size:12px;color:#b3c2b6}nav a{padding-block:12px;position:relative;transition:color .2s}nav a:after{content:'';position:absolute;bottom:6px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover,nav a:focus-visible{color:var(--text)}nav a:hover:after{transform:scaleX(1)}
/* Portada */
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center;padding-block:52px 66px}.hero-copy{padding-bottom:8px;position:relative;z-index:1}.eyebrow{font:9px monospace;letter-spacing:2px;color:#93b294;margin:0 0 28px}.signal{display:inline-block;width:5px;height:5px;vertical-align:middle;border-radius:50%;background:var(--accent);box-shadow:0 0 9px #80ff5545;margin-right:10px;flex-shrink:0}h1{font-size:clamp(48px,5.65vw,76px);font-weight:500;line-height:1.07;letter-spacing:-3.8px;margin:0 0 27px}h1 em{font-family:inherit;font-weight:500;font-style:normal;color:#80ff55;text-shadow:0 0 32px #80ff550d}.neon-period{color:var(--text)}.intro{font-size:15px;line-height:1.95;color:#a6b8a9;margin:0 0 31px}.hero-link{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;min-height:44px;font-size:12px;color:#e2eddf;padding:6px 0;border-bottom:1px solid #4b753d;transition:color .2s,border-color .2s}.hero-link span{font-size:21px;color:var(--accent);transition:transform .2s}.hero-link:hover{color:var(--accent);border-color:var(--accent)}.hero-link:hover span{transform:translate(3px,3px)}.hero-art{position:relative;min-width:0;margin:0 -24px 0 0}.hero-art:before{content:'';position:absolute;inset:9%;border-radius:50%;background:#42c8350b;filter:blur(45px);pointer-events:none}.art-image{position:relative;aspect-ratio:1;isolation:isolate}.art-image picture{display:block;width:100%;height:100%}.art-image img{display:block;width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse 69% 66% at 51% 48%,#000 39%,#000d 58%,transparent 83%)}figcaption{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:-5px 28px 0;font:8px monospace;letter-spacing:1.6px;color:#829d87}figcaption span:first-child{color:#b0d0a8;letter-spacing:2.5px}figcaption:before{content:'';width:18px;height:1px;background:#4a783f;position:absolute;left:0;bottom:4px}
/* Proyectos: lista breve y áreas de selección amplias */
.work{padding-block:40px 70px;position:relative}.work:before{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,#80ff5550,#80ff551c 35%,#80ff5509)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:31px}.section-heading .eyebrow{margin-bottom:15px}.section-caption{font-size:12px;color:#94aa99;margin-bottom:5px}h2{font-size:34px;line-height:1.22;font-weight:450;letter-spacing:-1.1px;margin:0}.project-row{display:grid;grid-template-columns:40px minmax(0,1fr) 132px 120px;gap:22px;align-items:center;position:relative;padding:29px 4px;border-top:1px solid #1e3224;transition:background .22s,border-color .22s}.project-row:last-child{border-bottom:1px solid #1e3224}.project-row:before{content:'';position:absolute;top:50%;left:-15px;width:2px;height:0;background:var(--accent);transform:translateY(-50%);transition:height .22s;box-shadow:0 0 9px #80ff5540}.project-row:hover,.project-row:focus-within{background:linear-gradient(90deg,#80ff5506,transparent 75%);border-color:#3d5c38}.project-row:hover:before,.project-row:focus-within:before{height:26px}.project-number{font:10px monospace;letter-spacing:1px;color:#6f9b72}.project-identity{min-width:0}.project-identity h3{font-size:24px;line-height:1.3;letter-spacing:-.6px;font-weight:450;margin:0 0 7px;transition:color .22s}.project-identity p{font:10px monospace;color:#869e8d;margin:0;overflow-wrap:anywhere}.project-type{font-size:10px;color:#91a897}.project-link,.pending{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#b9cfb6;min-height:44px}.project-link>span:last-child,.pending>span{width:35px;height:35px;border:1px solid #2c4930;border-radius:50%;display:grid;place-items:center;color:#a2dc8a;font:19px Arial;transition:background .22s,border-color .22s,transform .22s}.project-link:after{content:'';position:absolute;inset:0}.project-row:hover .project-link>span:last-child,.project-row:focus-within .project-link>span:last-child{border-color:#75b55b;background:#80ff550b;transform:rotate(5deg)}.project-row:hover h3{color:#d0edc6}.pending{color:#7d9481}.pending>span{opacity:.4}.next-project{display:flex;align-items:center;gap:12px;font:10px monospace;color:#a2b7a4;margin-top:25px;padding:12px 0}.next-project .signal{margin:0;width:4px;height:4px}.next-project>span:nth-child(2){color:#92bc83}.next-project p{margin:0 0 0 auto;color:#b9cbb9}.next-project p span{color:#7e9785}
/* Origen y pie de página */
.about{display:grid;grid-template-columns:1fr 1fr;gap:88px;border-top:1px solid #213426;padding-block:65px 76px}.about .eyebrow{margin-bottom:25px}.about h2{font-size:35px;line-height:1.28;letter-spacing:-1.2px}.about h2 em{font-family:inherit;font-style:normal;font-weight:400;color:#a7cb9b}.about-copy{padding-top:36px;max-width:460px}.about-copy p{font-size:14px;line-height:1.95;color:#a4b7a8;margin:0 0 15px}.about-signature{display:block;font:10px monospace;letter-spacing:.6px;color:#a1c991;margin-top:25px}.footer{border-top:1px solid #213426;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:27px 32px;color:#87a08e;font-size:10px}.footer>span:first-child{color:#d4e0cf;font-size:11px;letter-spacing:2px}.footer-year{font-size:9px;color:#7b9481;letter-spacing:0;margin-left:10px}.footer a{min-height:36px;display:flex;align-items:center;gap:20px;color:#a5baaa}.footer a span{color:#a4d68e}.footer a:hover{color:var(--text)}
/* Tabletas */
@media(min-width:1500px){.hero{padding-block:70px 85px}}
@media(max-width:1000px){.shell{width:calc(100% - 72px)}.hero{gap:15px;grid-template-columns:1.1fr 1fr}h1{font-size:clamp(44px,6vw,62px);letter-spacing:-2.8px}.hero-art{margin-right:-12px}.project-row{grid-template-columns:32px minmax(0,1fr) 110px;gap:18px}.project-type{display:none}.project-identity h3{font-size:22px}.about{gap:42px}.about h2{font-size:31px}}
/* Móviles: contenido esencial visible */
@media(max-width:640px){.shell{width:calc(100% - 40px)}.header{height:88px}.brand{font-size:19px;letter-spacing:2.7px;gap:9px}.brand .brand-symbol{width:45px;height:45px}.brand small{font-size:6px;letter-spacing:.65px;margin-top:7px}nav{gap:20px;font-size:11px}.hero{grid-template-columns:1fr;gap:13px;padding-block:48px 40px}.hero-copy{padding:0}.eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:25px}h1{font-size:clamp(40px,10.6vw,66px);letter-spacing:-2.5px;margin-bottom:22px}.intro{font-size:14px;line-height:1.85;margin-bottom:21px}.desktop-break{display:none}.hero-link{font-size:11px;gap:47px}.hero-art{margin:0 -12px}.art-image{max-width:430px;margin:auto}figcaption{margin:-13px 25px 0;font-size:7px;letter-spacing:1.2px}figcaption:before{display:none}.work{padding-block:32px 43px}.section-heading{margin-bottom:24px}.section-heading .eyebrow{margin-bottom:12px}.section-caption{display:none}h2{font-size:30px}.project-row{grid-template-columns:22px minmax(0,1fr) 36px;gap:12px;padding:24px 0}.project-number{font-size:9px;align-self:start;margin-top:6px}.project-identity h3{font-size:20px;letter-spacing:-.4px;line-height:1.35;margin-bottom:8px}.project-identity p{font-size:9px;line-height:1.5}.project-link>span:first-child,.pending{font-size:0}.project-link{justify-content:center}.project-link>span:last-child,.pending>span{width:32px;height:32px;font-size:18px}.project-row:before{left:-9px}.next-project{font-size:9px;gap:9px;flex-wrap:wrap;margin-top:17px}.next-project p{width:100%;margin-left:13px}.about{grid-template-columns:1fr;gap:24px;padding-block:43px 48px}.about .eyebrow{margin-bottom:20px}.about h2{font-size:31px}.about-copy{padding-top:0}.about-copy p{font-size:14px}.footer{flex-wrap:wrap;gap:16px;padding-block:23px 28px;font-size:9px}.footer>span:nth-child(2){order:3;width:100%}.footer a{margin-left:auto}}
@media(max-width:360px){.shell{width:calc(100% - 32px)}.brand small{font-size:5px}.brand{font-size:17px;gap:6px}nav{gap:14px;font-size:10px}h1{font-size:37px;letter-spacing:-2.5px}.project-identity h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}


/* Firma tipográfica digital vinculada a la luz de la ilustración. */
.brand-signature{display:block}.brand .brand-wordmark{display:block;width:177px;height:32px;object-fit:contain;object-position:left;filter:drop-shadow(0 0 7px #80ff5526);mask-image:none}.brand small{font-size:7px;letter-spacing:.8px;margin-top:6px}
/* Marcas primero; las capturas aparecen al desplegar cada proyecto. */
.project-card{border-top:1px solid #213728}.project-card:last-child{border-bottom:1px solid #213728}.project-card>summary{display:grid;grid-template-columns:24px 116px minmax(0,1fr) 124px;gap:25px;align-items:center;padding:25px 4px;cursor:pointer;list-style:none;position:relative;transition:background .2s}.project-card>summary::-webkit-details-marker{display:none}.project-card>summary:hover,.project-card[open]>summary{background:linear-gradient(90deg,#80ff5505,transparent 75%)}.project-card>summary:focus-visible{outline:2px solid #80ff55;outline-offset:4px}.project-card .project-number{font:10px monospace;color:#6f9b72;align-self:center;margin:0}.project-logo{display:flex;align-items:center;justify-content:center;min-height:86px;padding:8px;border:1px solid #26392b;background:#0d1510;border-radius:8px}.project-logo img{display:block;width:100%;height:66px;object-fit:contain;filter:none}.project-card .project-identity{display:block;min-width:0}.project-sector{display:block;font:8px monospace;letter-spacing:1.2px;text-transform:uppercase;color:#80a679;margin-bottom:8px}.project-name{display:block;font-size:22px;line-height:1.3;font-weight:450;letter-spacing:-.5px;color:#e5efe0}.project-summary{display:block;font-size:13px;line-height:1.75;color:#9db3a4;margin-top:9px;max-width:510px}.project-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:11px;color:#b4cbb1}.toggle-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #365237;border-radius:50%;font:20px monospace;color:#a5d88e;transition:transform .2s,border-color .2s}.toggle-close{display:none}.project-card[open] .toggle-open{display:none}.project-card[open] .toggle-close{display:inline}.project-card[open] .toggle-icon{transform:rotate(45deg);border-color:#75aa5b}.project-expanded{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:35px;align-items:center;padding:5px 0 30px 49px}.project-screenshot{margin:0;min-width:0}.project-screenshot>img{display:block;width:100%;height:auto;border:1px solid #334638;border-radius:5px}.project-screenshot figcaption{display:block;font:8px monospace;color:#799781;margin:10px 0 0;letter-spacing:.5px}.project-screenshot figcaption:before{display:none}.project-notes h3{font-size:14px;font-weight:500;margin:0 0 13px;color:#d6e5d0}.project-notes ul{padding-left:15px;color:#9db3a4;font-size:12px;line-height:1.9;margin:0 0 22px}.project-notes li::marker{color:#6ba254}.project-visit{display:inline-flex;gap:30px;align-items:center;min-height:42px;font-size:12px;color:#c9e7bc;border-bottom:1px solid #436338}.project-visit span{color:#80ff55;font-size:18px}.project-domain{display:block;font:9px monospace;color:#7c9883;margin-top:12px;overflow-wrap:anywhere}
@media(max-width:1000px){.project-card>summary{grid-template-columns:20px 95px minmax(0,1fr) 36px;gap:18px}.project-logo{min-height:78px}.project-logo img{height:58px}.project-name{font-size:20px}.project-toggle>span:not(.toggle-icon){display:none!important}.project-expanded{padding-left:38px;gap:25px}}
@media(max-width:640px){.brand .brand-wordmark{width:144px;height:26px}.brand small{font-size:5.5px;letter-spacing:.5px}.project-card>summary{grid-template-columns:72px minmax(0,1fr) 28px;gap:14px;padding:23px 0;align-items:start}.project-card .project-number{display:none}.project-logo{min-height:70px;padding:7px;border-radius:6px}.project-logo img{height:54px}.project-sector{font-size:7px;letter-spacing:.7px;margin-bottom:8px}.project-name{font-size:18px;line-height:1.4}.project-summary{font-size:12px;line-height:1.75;margin-top:9px}.project-toggle{padding-top:17px}.toggle-icon{width:28px;height:28px;font-size:18px}.project-expanded{grid-template-columns:1fr;padding:0 0 25px;gap:23px}.project-notes ul{margin-bottom:15px}.project-notes h3{font-size:13px}.project-visit{min-height:44px}.project-domain{font-size:9px}}
@media(max-width:360px){.brand .brand-wordmark{width:125px;height:24px}.brand small{font-size:5px}.project-card>summary{grid-template-columns:60px minmax(0,1fr) 26px;gap:11px}.project-logo{min-height:61px;padding:5px}.project-logo img{height:49px}.project-name{font-size:17px}.project-summary{font-size:12px}}
/* Oferta local compacta; sin duplicar páginas por localidad. */
.hero .intro{max-width:405px}.services-overview{border-top:1px solid #213426;padding-block:52px 58px}.services-overview .section-heading{margin-bottom:20px}.services-overview h2{max-width:620px;font-size:32px}.services-intro{max-width:650px;font-size:14px;line-height:1.9;color:#a4b7a8;margin:0 0 30px}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.services-grid article{padding-top:20px;border-top:1px solid #29402e}.service-number{font:9px monospace;color:#78a767}.services-grid h3{font-size:17px;font-weight:450;color:#dcebd6;margin:10px 0}.services-grid p{font-size:13px;line-height:1.9;color:#98ae9e;margin:0}.services-process{font-size:12px;line-height:1.9;color:#9ab09e;max-width:770px;margin:32px 0 0;padding-left:15px;border-left:1px solid #436a38}@media(max-width:640px){.services-overview{padding-block:40px 44px}.services-overview h2{font-size:29px}.services-grid{grid-template-columns:1fr;gap:23px}.services-grid article{padding-top:16px}.services-grid h3{font-size:18px}.services-intro{font-size:14px;margin-bottom:25px}.services-grid p{font-size:13px}.services-process{font-size:12px}}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px}.contact-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:46px;padding:11px 17px;font-size:12px;color:#071005;background:#a0ee83;border:1px solid #a0ee83;border-radius:3px;transition:background .2s,border-color .2s}.contact-button span{font-size:18px}.contact-button:hover{background:#bcffa1;border-color:#bcffa1}.about-contact{margin-top:28px}.about-contact>span{display:block;font:9px monospace;color:#8fac96;margin-top:12px}@media(max-width:640px){.hero-actions{gap:16px}.contact-button{font-size:11px;gap:17px;padding-inline:14px}.hero-actions .hero-link{gap:20px}.about-contact{margin-top:25px}}
/* Lluvia digital ambiental: detrás del contenido, sin capturar interacción. */
body{isolation:isolate}body>header,body>main,body>footer{position:relative;z-index:1}.site-atmosphere{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none;background:radial-gradient(ellipse at 82% 20%,#205f1926,transparent 48%),radial-gradient(ellipse at 8% 80%,#174b2317,transparent 42%)}.site-atmosphere>span{position:absolute;top:-560px;text-align:center;color:#68c96b;font:10px/2.2 monospace;letter-spacing:3px;opacity:.085;mask-image:linear-gradient(transparent,#000 65%);animation:code-rain 44s linear infinite;will-change:transform}.code-stream i{display:block;font-style:normal}.code-stream i:nth-last-child(-n+4){color:#9bff9a;text-shadow:0 0 8px #5de95d80}.code-stream i:last-child{color:#daffd1;text-shadow:0 0 9px #9aff87}.site-atmosphere>.code-stream-1{font-size:8px;opacity:.045;filter:blur(.5px)}.site-atmosphere>.code-stream-2{font-size:12px;opacity:.065}.site-atmosphere:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#050a0799 30%,#050a0780 60%,transparent),linear-gradient(0deg,#050a0766,transparent 30%,transparent 80%,#050a0744)}@keyframes code-rain{from{transform:translateY(-100px)}to{transform:translateY(calc(100vh + 650px))}}.hero-art:before{inset:0 -4%;background:radial-gradient(ellipse,#215b1d20,transparent 67%);filter:blur(35px)}.art-image img{mask-image:radial-gradient(ellipse 65% 65% at 52% 47%,#000 30%,#000e 49%,transparent 81%)}.nav-contact{color:#b3dc9d}
/* Contacto */
.contact-page{padding-block:30px 78px}.contact-back{display:inline-block;font-size:11px;color:#8da792;padding:7px 0}.contact-back:hover{color:#d1e7c8}.contact-layout{display:grid;grid-template-columns:.9fr 1.15fr;gap:68px;align-items:start;padding-top:43px}.contact-intro{position:sticky;top:35px}.contact-intro h1{font-size:clamp(40px,4vw,55px);letter-spacing:-2.5px;line-height:1.13;margin-bottom:25px}.contact-intro h1 em{color:#a2e987}.contact-intro>p:not(.eyebrow){font-size:14px;line-height:1.95;color:#a2b6a5;max-width:345px}.contact-local{margin-top:34px;padding-top:22px;border-top:1px solid #28402d;max-width:340px}.contact-local>span{font:8px monospace;letter-spacing:1.1px;color:#8eb17f}.contact-local p{font-size:12px;line-height:1.8;color:#8ba391;margin-top:12px}.contact-direct{display:block;margin-top:35px;max-width:360px}.contact-direct>span{display:block;font-size:11px;color:#92a996;margin-bottom:9px}.contact-direct strong{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:400;color:#c2e6b5}.contact-direct strong span{color:#80ff55;font-size:19px}.contact-form-panel{padding:29px;border:1px solid #2b4331;border-radius:7px;background:#08110bde;box-shadow:0 20px 70px #00000020}.contact-form-panel>.eyebrow{font-size:8px;margin-bottom:16px}.contact-form-panel h2{font-size:25px;letter-spacing:-.8px;margin-bottom:27px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 17px}.project-contact-form label{display:block;font-size:12px;color:#c4d5c2;line-height:1.6}.project-contact-form label>span{color:#92d778;margin-left:3px}.project-contact-form label>small{font-size:9px;color:#8ba38e;margin-left:7px}.project-contact-form input,.project-contact-form select,.project-contact-form textarea{display:block;width:100%;max-width:100%;min-width:0;border:1px solid #324c39;border-radius:3px;background:#080f0a;color:#e4eee1;font:13px/1.6 var(--font);padding:11px 12px;margin-top:8px;min-height:44px}.project-contact-form select option{background:#080f0a;color:#e4eee1}.project-contact-form input::placeholder,.project-contact-form textarea::placeholder{color:#728879;opacity:1}.project-contact-form input:focus,.project-contact-form select:focus,.project-contact-form textarea:focus{border-color:#92d778;outline:2px solid #80ff5530;outline-offset:2px}.project-contact-form textarea{resize:vertical;min-height:145px}.project-contact-form .field-wide{grid-column:1/-1}.project-contact-form label #description-help{display:block;font-size:9px;line-height:1.7;margin:8px 0 0;color:#819b88}.contact-form-note{font-size:11px;line-height:1.8;color:#91ab98;margin:21px 0 19px}.form-submit{width:100%;cursor:pointer;min-height:46px;font:12px var(--font)}.form-status{font-size:12px;color:#b8dca9;line-height:1.7;margin:13px 0 0}.form-status:empty{display:none}
@media(max-width:1000px){.contact-layout{gap:35px;grid-template-columns:.85fr 1.15fr}.contact-form-panel{padding:23px}.contact-intro h1{font-size:43px}.form-fields{grid-template-columns:1fr}}
@media(max-width:640px){.header{height:auto;min-height:88px;flex-wrap:wrap;gap:10px;padding-block:15px 10px}.header nav{width:100%;max-width:335px;justify-content:space-between;gap:18px}.header nav a{padding-block:7px}.contact-page{padding-block:22px 45px}.contact-layout{grid-template-columns:1fr;padding-top:29px;gap:30px}.contact-intro{position:static}.contact-intro h1{font-size:43px;letter-spacing:-2px}.contact-intro>p:not(.eyebrow){font-size:14px;max-width:none}.contact-local{margin-top:22px;padding-top:18px;max-width:none}.contact-direct{margin-top:24px}.contact-form-panel{padding:23px 18px}.contact-form-panel h2{font-size:24px}.form-fields{gap:18px}.project-contact-form input,.project-contact-form select,.project-contact-form textarea{font-size:16px}.contact-form-note{font-size:11px}.site-atmosphere>span{font-size:9px;opacity:.055}.site-atmosphere>span:nth-child(even){display:none}}
@media(prefers-reduced-motion:reduce){.site-atmosphere>span{animation:none;top:15%;opacity:.02;will-change:auto}}


.footer-story{line-height:1.8}.footer-story small{display:block;margin-top:5px;color:#87a08e;font-size:10px}.footer .footer-story a{display:inline-flex;min-height:24px;gap:3px;margin:0;color:#b2cba8;text-decoration:underline;text-decoration-color:#526a48;text-underline-offset:3px}.footer .footer-story a:hover{color:#c9f5b7}@media(max-width:640px){.footer-story small{max-width:285px;font-size:10px}}
/* Cierre: identidad principal y agradecimiento en su propio renglón. */
.footer{display:grid;grid-template-columns:1fr auto 1fr;gap:12px 28px;padding-block:28px 26px}.footer .footer-top{justify-self:end}.footer-story{text-align:center}.footer-thanks{grid-column:1/-1;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 10px;border-top:1px solid #1c2b20;padding-top:17px;margin:3px 0 0;color:#819789;font-size:10px;line-height:1.9;letter-spacing:0}.footer-thanks>span{display:inline}.footer .footer-thanks a{display:inline-flex;align-items:center;gap:4px;min-height:28px;margin:0 3px;color:#d4714f;font-size:15px;font-weight:500;letter-spacing:-.4px}.footer .footer-thanks a span{color:inherit;font-size:10px}.footer .footer-thanks a:hover{color:#df8a6b}.footer .footer-thanks a:focus-visible{outline:2px solid #d4714f;outline-offset:4px;border-radius:2px}
/* Una luz difusa se desplaza lentamente detrás del código. */
.site-atmosphere:before{content:'';position:absolute;inset:-15%;background:radial-gradient(ellipse at 76% 28%,#39802716,transparent 37%),radial-gradient(ellipse at 18% 75%,#2468490e,transparent 34%);animation:ambient-tide 36s ease-in-out infinite alternate;pointer-events:none}.code-stream i:nth-child(5n){opacity:.45}.code-stream i:nth-child(7n){opacity:.7}.site-atmosphere>.code-stream-1{filter:none;color:#4a9d68}.site-atmosphere>.code-stream-2{letter-spacing:4px}@keyframes ambient-tide{from{transform:translate3d(-2%,-1%,0);opacity:.5}to{transform:translate3d(2%,3%,0);opacity:1}}
@media(max-width:640px){.footer{grid-template-columns:1fr auto;gap:12px}.footer>.footer-story{grid-column:1/-1;grid-row:2;order:initial;width:auto;text-align:left}.footer .footer-top{grid-column:2;grid-row:1}.footer-thanks{justify-content:flex-start;gap:2px 8px;padding-top:14px;margin-top:2px}.footer-thanks>span{max-width:300px}.site-atmosphere:before{animation-duration:48s}}
@media(prefers-reduced-motion:reduce){.site-atmosphere:before{animation:none}.site-atmosphere>.code-stream{animation:none;top:10%;opacity:.025;will-change:auto}}
/* Contacto directo reconocible, sin pulsos que distraigan. */
.whatsapp-float{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));z-index:20;width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 5px 22px #0006;border:1px solid #ffffff35;transition:transform .2s,background .2s}.whatsapp-float:hover{transform:translateY(-3px);background:#20bd5a}.whatsapp-float:focus-visible{outline:3px solid white;outline-offset:4px}.whatsapp-tip{position:absolute;right:calc(100% + 12px);padding:8px 12px;white-space:nowrap;background:#112318;color:#e4efdf;border:1px solid #35513a;border-radius:5px;font-size:11px;opacity:0;visibility:hidden;transition:opacity .2s}.whatsapp-float:hover .whatsapp-tip,.whatsapp-float:focus-visible .whatsapp-tip{opacity:1;visibility:visible}
/* Effacer le bord haut sans voiler la coque et les vagues. */
.art-image img{mask-image:linear-gradient(to bottom,transparent 0%,#000 19%,#000 78%,transparent 100%);mask-composite:intersect;mask-image:linear-gradient(to bottom,transparent 0%,#000 19%,#000 78%,transparent 100%),radial-gradient(ellipse 65% 65% at 52% 47%,#000 30%,#000e 49%,transparent 81%)}
@media(max-width:640px){.whatsapp-float{width:54px;height:54px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}.footer{padding-bottom:88px}.whatsapp-tip{display:none}}
@media(prefers-reduced-motion:reduce){.whatsapp-float,.whatsapp-tip{transition:none}.whatsapp-float:hover{transform:none}}

.whatsapp-float{padding:0;line-height:1}.whatsapp-float>svg{display:block;width:28px;height:28px;flex:0 0 28px;transform:translate(.5px,-.5px)}@media(max-width:640px){.whatsapp-float>svg{width:27px;height:27px;flex-basis:27px}}
/* Proporciones y colores compartidos con los botones de referencia. */
.whatsapp-float{width:48px;height:48px;background:#128c4a;border:1.5px solid #25d366;box-shadow:0 5px 22px #0007}.whatsapp-float>svg{width:26px;height:26px;flex-basis:26px;transform:none}.whatsapp-float:hover{background:#107b41;transform:translateY(-2px);border-color:#6aefa0}@media(max-width:640px){.whatsapp-float{width:44px;height:44px;right:12px}.whatsapp-float>svg{width:24px;height:24px;flex-basis:24px}}@media(prefers-reduced-motion:reduce){.whatsapp-float:hover{transform:none}}
