
:root{
  --bg:#EFE8D8; --bg2:#E8DFCC; --grad1:#F3EDE0; --ink:#211A12; --ink2:#574C3D; --muted:#988A6E; --line:#DFD4BD;
  --card:#E9E1CE; --spice:#A8854A; --spice-2:#C2A062; --header-bg:rgba(241,235,222,.86);
  --btn-hi:#FBF6EC; --btn-lo:#D9C8A4; --btn-glow:rgba(168,133,74,.32); --core-plate:rgba(54,42,24,.07); --spark:#D6AD52;
  --display:'Jost',system-ui,sans-serif;
  --dune:'Dune Rise','Jost',system-ui,sans-serif;
  --sans:'Satoshi','Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
html[data-theme="noche"]{
  --bg:#110E0A; --bg2:#16130E; --grad1:#141009; --ink:#ECE2CC; --ink2:#C7BBA2; --muted:#8C8068; --line:#2A2520;
  --card:#1A1611; --spice:#CBA45D; --spice-2:#E4C384; --header-bg:rgba(17,14,10,.82);
  --btn-hi:#FBEFD6; --btn-lo:#C9A45D; --btn-glow:rgba(255,230,184,.42); --core-plate:rgba(251,239,214,.055); --spark:#FBEFD6;
}
*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased}
body{margin:0;color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.65;position:relative;
  background:linear-gradient(180deg,var(--grad1) 0%,var(--bg) 42%,var(--bg2) 100%);background-attachment:fixed;transition:color .3s}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
html[data-theme="noche"] body::after{mix-blend-mode:screen;opacity:.05}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.i18{display:none}
html[data-lang="es"] .i18.es{display:revert}
html[data-lang="en"] .i18.en{display:revert}
header.site,footer.site{display:flex;align-items:center;justify-content:space-between;padding:26px clamp(20px,5vw,64px)}
header.site{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--header-bg);backdrop-filter:saturate(110%) blur(8px);z-index:50;padding-top:12px;padding-bottom:12px}
.navwrap{display:flex;align-items:center;gap:6px}
.wordmark{font-family:var(--dune);font-size:11.5px;letter-spacing:.2em;font-weight:400;text-transform:uppercase}
.wordmark span{color:var(--spice);font-weight:500}
nav a{font-family:var(--display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-left:26px;transition:color .2s}
nav a:hover,nav a.on{color:var(--spice)}
.langsw{display:flex;align-items:center;gap:7px;margin-left:30px;font-family:var(--mono)}
.langsw button{background:none;border:none;cursor:pointer;font:inherit;font-size:11px;letter-spacing:.14em;color:var(--muted);padding:0}
.langsw button.on{color:var(--spice)}
.langsw i{color:var(--line);font-style:normal}
.themesw{display:flex;align-items:center;gap:7px;margin-left:18px;font-family:var(--mono)}
.themesw button{background:none;border:none;cursor:pointer;font:inherit;font-size:11px;letter-spacing:.06em;color:var(--muted);padding:0}
.themesw button.on{color:var(--spice)}
.themesw i{color:var(--line);font-style:normal}
.navctl{display:flex;align-items:center;gap:6px}
.navcore-wrap{position:relative;display:flex;flex-direction:column;align-items:center;flex:1}
/* núcleo del header: centrado real a la página (alineado al de Home) y al medio vertical de la barra */
#nav-core-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);flex:0 0 auto}
/* plate sutil detrás del núcleo del header para que no se pierda en la interfaz */
#nav-core-wrap .navcore{border-radius:50%;background:radial-gradient(circle,var(--core-plate) 58%,transparent 73%)}
.navcore{background:none;border:none;cursor:pointer;color:var(--muted);width:38px;height:38px;padding:0;transition:color .25s,filter .25s,transform .2s}
.navcore:hover,.navcore[aria-expanded="true"]{color:var(--spice);filter:drop-shadow(0 0 7px rgba(228,195,132,.6))}
.navcore:active{transform:scale(.94)}
.ncore-svg{width:100%;height:100%;display:block;overflow:visible}
.ncore-ring{fill:none;stroke:currentColor;stroke-width:.7;opacity:.45}
.ncore-btn{fill:url(#ncbtn);filter:drop-shadow(0 0 2.5px var(--btn-glow));transition:filter .3s}
.navcore:hover .ncore-btn,.navcore[aria-expanded="true"] .ncore-btn{filter:drop-shadow(0 0 7px var(--btn-glow)) drop-shadow(0 0 2px var(--btn-glow))}
.ncore-spark{fill:none;stroke:var(--spark);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:12 88;opacity:.9;animation:ncoreSpark 4.6s linear infinite}
.navcore:hover .ncore-spark,.navcore[aria-expanded="true"] .ncore-spark{stroke-width:2.1;filter:drop-shadow(0 0 4px var(--spark))}
@keyframes ncoreSpark{to{stroke-dashoffset:-100}}
@media(prefers-reduced-motion:reduce){.ncore-spark{animation:none;opacity:.5}}
/* menú del header: tira horizontal que sale del núcleo hacia un lado */
.navmenu{position:absolute;top:calc(100% + 13px);left:50%;display:flex;flex-direction:row;align-items:center;
  gap:clamp(16px,2vw,30px);white-space:nowrap;background:var(--header-bg);backdrop-filter:saturate(115%) blur(10px);
  border:1px solid var(--line);border-radius:30px;padding:9px clamp(18px,2.4vw,28px);box-shadow:0 14px 30px rgba(0,0,0,.22);
  opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-6px);transform-origin:top center;
  transition:opacity .24s ease,transform .3s cubic-bezier(.2,.8,.2,1),visibility .24s;z-index:60}
.navcore-wrap.open .navmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.navmenu a{margin:0;padding:2px 0;font-family:var(--dune);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  opacity:0;transform:translateY(-5px);transition:color .2s,opacity .25s ease,transform .25s ease}
.navcore-wrap.open .navmenu a{opacity:1;transform:none}
.navmenu a:hover,.navmenu a.on{color:var(--spice);text-shadow:0 0 9px var(--btn-glow)}
/* páginas internas: el menú queda abierto pero atenuado; al acercar el mouse, tono pleno */
.navcore-wrap.peek .navmenu{opacity:.4;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);transition:opacity .3s ease}
.navcore-wrap.peek .navmenu a{opacity:1;transform:none;transition-delay:0s}
.navcore-wrap.peek:hover .navmenu,.navcore-wrap.peek.open .navmenu{opacity:1}
.navcore-wrap.open .navmenu a:nth-child(1){transition-delay:.04s}
.navcore-wrap.open .navmenu a:nth-child(2){transition-delay:.08s}
.navcore-wrap.open .navmenu a:nth-child(3){transition-delay:.12s}
.navcore-wrap.open .navmenu a:nth-child(4){transition-delay:.16s}
.navcore-wrap.open .navmenu a:nth-child(5){transition-delay:.20s}
.navcore-wrap.open .navmenu a:nth-child(6){transition-delay:.24s}
@media(max-width:760px){
  .navmenu{flex-wrap:wrap;max-width:78vw;justify-content:center}
  .navcore-wrap.peek .navmenu{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(-6px)}
  .navcore-wrap.open .navmenu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
    background:var(--header-bg);backdrop-filter:saturate(120%) blur(10px);padding:15px 22px;border-radius:16px;
    border:1px solid var(--line);box-shadow:0 14px 36px rgba(0,0,0,.5);gap:13px 20px;z-index:70}
}
.hero-core{display:flex;flex-direction:column;align-items:center;text-align:center}
/* Inicio: núcleo central con menú radial (despliegue como nodos) */
.hero-core-wrap.radial{position:relative;flex:none;width:min(480px,90vw);height:min(480px,90vw);margin:clamp(20px,5vw,56px) auto clamp(30px,5vw,64px)}
.hero-core-wrap.radial .navcore-lg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:31.25%;height:31.25%;color:var(--ink2);z-index:3}
.hero-core-wrap.radial .navcore-lg:active{transform:translate(-50%,-50%) scale(.95)}
.radial-menu{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.hero-core-wrap.radial.open .radial-menu{opacity:1;visibility:visible;pointer-events:auto}
/* despliegue asimétrico: cada ítem escala desde el núcleo central con su propio delay */
.radial-menu .ritem{cursor:pointer;opacity:0;transform:scale(.3);transform-box:view-box;transform-origin:240px 240px;
  transition:opacity var(--dur,.5s) ease var(--d,0s),transform var(--dur,.6s) cubic-bezier(.18,.85,.25,1) var(--d,0s)}
.hero-core-wrap.radial.open .radial-menu .ritem{opacity:1;transform:scale(1)}
.radial-menu .sys-line{stroke:var(--spice);stroke-width:1.1;fill:none;opacity:.5}
.mring{fill:none;stroke:var(--spice);stroke-width:1.3;opacity:.85;transition:stroke-width .2s,opacity .2s}
.mring2{opacity:.5}
.mcore{fill:var(--spice)}
.ritem-t{font-family:var(--dune);font-size:15.5px;letter-spacing:.12em;text-transform:uppercase;fill:var(--muted);transition:fill .2s,filter .2s}
.ritem:hover .ritem-t{fill:var(--spice);filter:drop-shadow(0 0 4px var(--btn-glow))}
.ritem:hover .mring{stroke-width:2.2;opacity:1}
.ritem:hover .mring2{opacity:.85}
.radial-menu .mhit{fill:none;pointer-events:all}
.radial-menu .lab-under{display:none}
.obra-radial{width:min(430px,90vw);height:min(430px,90vw);margin:clamp(6px,2vw,20px) auto clamp(18px,3vw,36px)}
.obra-radial .ritem.sel .mring{stroke-width:2.6;opacity:1}
.obra-radial .ritem.sel .mring2{opacity:.9}
.obra-radial .ritem.sel .ritem-t{fill:var(--spice);filter:drop-shadow(0 0 5px var(--btn-glow))}
.colsec{scroll-margin-top:96px}
.colsec .collection summary{pointer-events:none}
.colsec .collection summary::-webkit-details-marker{display:none}
.hero-core-wrap.radial .core-hint{position:absolute;left:50%;top:calc(50% + clamp(64px,9vw,88px));transform:translateX(-50%);
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  margin:0;white-space:nowrap;transition:opacity .35s;z-index:3}
.hero-core-wrap.radial.open .core-hint{opacity:0;pointer-events:none}
.hero-list{display:none}
@media(max-width:640px){
  .hero-core-wrap.radial{width:min(350px,94vw);height:min(350px,94vw)}
  .radial-menu .ritem-t{font-size:17px}
  .radial-menu .lab-side{display:none}
  .radial-menu .lab-under{display:inline}
}
main{padding:clamp(40px,7vw,96px) clamp(20px,5vw,64px);max-width:1240px;margin:0 auto;position:relative;z-index:2}
footer.site{border-top:1px solid var(--line);color:var(--muted);font-size:11px;letter-spacing:.04em;margin-top:80px;font-family:var(--mono)}
footer.site a:hover{color:var(--spice)}
.hero h1{font-family:var(--dune);font-weight:400;text-transform:uppercase;font-size:clamp(22px,3.2vw,38px);line-height:1.1;margin:.1em 0 .3em;letter-spacing:.14em}
.hero-core h1{margin-top:14px}
.hero{text-align:center}
.nucleo{width:44px;height:44px;color:var(--spice);opacity:.92;display:block;margin:0 auto 26px}
.hero .indice{margin-left:auto;margin-right:auto}
.hero .sub{font-family:var(--mono);color:var(--muted);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 1.8em}
.lede{max-width:50ch;color:var(--ink2);font-size:clamp(16px,1.5vw,19px);margin:0 auto 2.4em;line-height:1.7}
.indice{display:block;max-width:560px;border-top:1px solid var(--line)}
.indice a{display:flex;align-items:baseline;gap:22px;padding:20px 2px;border-bottom:1px solid var(--line);transition:padding .25s,color .2s}
.indice a:hover{padding-left:14px;color:var(--spice)}
.indice .n{font-family:var(--mono);font-size:13px;color:var(--spice);min-width:34px;letter-spacing:.04em}
.indice .t{font-family:var(--dune);text-transform:uppercase;letter-spacing:.08em;font-size:clamp(18px,2.2vw,26px);font-weight:400;flex:1}
.indice .arw{color:var(--muted);opacity:0;transition:opacity .25s}
.indice a:hover .arw{opacity:1;color:var(--spice)}
.hero-fig{margin:clamp(48px,8vw,100px) 0 0}
.hero-fig img{width:100%;max-height:78vh;object-fit:contain;background:var(--card)}
figcaption{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.01em;margin-top:14px;line-height:1.75}
figcaption em{font-style:normal;color:var(--ink);font-weight:700;font-size:11.5px;letter-spacing:.03em}
.section-title{font-family:var(--dune);font-weight:400;text-transform:uppercase;font-size:clamp(26px,3.6vw,42px);margin:0 0 1em;letter-spacing:.1em}
.obra .section-title{text-align:center}
.bio .section-title{text-align:center}
.bio8 .g8{color:var(--spice)}
.statement{max-width:680px;margin-left:auto;margin-right:auto;text-align:center}
.statement .section-title{text-align:center}
.collection{border-top:1px solid var(--line)}
.collection:last-of-type{border-bottom:1px solid var(--line)}
.collection summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;justify-content:center;padding:26px 2px;gap:18px}
.collection summary::-webkit-details-marker{display:none}
.cname{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;font-size:clamp(17px,2.1vw,25px);font-weight:400}
.ccount{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--spice);white-space:nowrap}
.collection[open] summary .cname{color:var(--spice)}
.cnote{font-family:var(--sans);font-style:italic;font-size:clamp(14px,1.5vw,16px);color:var(--ink2);max-width:66ch;margin:2px auto 22px;line-height:1.6;text-align:center}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(30px,3.6vw,60px);padding:8px 0 56px}
.card{margin:0;cursor:pointer}
.card .ph{background:var(--card);aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:box-shadow .3s}
.card .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform .6s ease}
.card:hover .ph{box-shadow:0 0 0 1px var(--spice)}
.card:hover .ph img{transform:scale(1.19)}
.sysfig{margin:8px auto 30px;width:70%}
.syssvg{width:100%;height:auto;display:block;overflow:visible}
.sys-line{fill:none;stroke:var(--spice);stroke-width:1.1;opacity:.5;stroke-linecap:round}
/* luz (huso degradé) inyectada por glow_css() */
.sys-ring{fill:var(--card);stroke:var(--spice);stroke-width:1.4}
.sys-bevel{fill:none;stroke:var(--ink2);stroke-width:1;opacity:.3}
.sys-hole{fill:var(--bg);stroke:var(--spice);stroke-width:.6}
.collfig{margin:4px 0 66px;width:100%}
.coll-svg{width:100%;height:auto;display:block;overflow:visible}
.coll-svg .node{cursor:pointer}
.nd-art{transition:transform .28s ease;filter:drop-shadow(0 4px 7px rgba(0,0,0,.26))}
.coll-svg .node:hover .nd-art{filter:drop-shadow(0 7px 12px rgba(0,0,0,.34))}
.coll-svg .node:hover .nd-art{transform:scale(1.13)}
.cl-ring{fill:none;stroke:var(--spice);stroke-width:1.6;opacity:.95;transition:stroke-width .2s}
.cl-ring2{fill:none;stroke:var(--spice);stroke-width:1;opacity:.55}
.coll-svg .node:hover .cl-ring{stroke-width:3.2}
.coll-svg .node:hover .cl-ring2{opacity:.85}
.cl-t,.cl-s{paint-order:stroke fill;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round;
  text-shadow:0 0 4px var(--bg),0 0 4px var(--bg),0 1px 1px rgba(0,0,0,.32)}
.cl-t{font-family:var(--mono);font-size:12.5px;fill:var(--ink);letter-spacing:.09em;text-transform:uppercase}
.cl-s{font-family:var(--mono);font-size:12px;fill:var(--muted)}
.cl-sold{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;fill:var(--spice);text-transform:uppercase;font-weight:700;
  paint-order:stroke;stroke:var(--bg);stroke-width:2.5px;stroke-linejoin:round}
.modal-info dd.sold{color:var(--spice-2);font-weight:700;letter-spacing:.22em;text-transform:uppercase;margin-top:6px}
.card .noimg{color:var(--muted);font-family:var(--mono);font-size:11px}
.card figcaption{margin-top:16px;text-align:center}
.modal{position:fixed;inset:0;background:rgba(24,18,10,.96);z-index:100;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px)}
.modal[hidden]{display:none}
.modal .close{position:absolute;top:14px;right:14px;width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.5);border:1px solid rgba(226,214,188,.45);color:#E2D6BC;font-size:26px;line-height:1;cursor:pointer;opacity:.95;z-index:112;display:flex;align-items:center;justify-content:center;padding:0}
.modal .close:hover{opacity:1;color:var(--spice-2);background:rgba(0,0,0,.72)}
.navarw{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;
  background:rgba(20,15,9,.42);border:1px solid rgba(226,214,188,.28);color:#E2D6BC;font-size:30px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.82;z-index:110;
  transition:opacity .2s,background .2s,color .2s}
.navarw:hover{opacity:1;background:var(--spice);color:#fff;border-color:transparent}
.navarw.prev{left:clamp(10px,3vw,36px)}
.navarw.next{right:clamp(10px,3vw,36px)}
@media(max-width:760px){.navarw{width:40px;height:40px;font-size:24px}}
.modal-inner{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(24px,4vw,60px);max-width:1200px;width:100%;align-items:center}
.modal-img{display:flex;flex-direction:column;gap:14px}
.modal-img img#m-img{width:100%;max-height:78vh;object-fit:contain}
.m-strip{display:flex;gap:9px;flex-wrap:wrap}
.m-strip img{width:54px;height:54px;object-fit:cover;border-radius:50%;cursor:pointer;opacity:.5;transition:opacity .2s,box-shadow .2s}
.m-strip img:hover{opacity:.85}
.m-strip img.on{opacity:1;box-shadow:0 0 0 1px var(--spice-2)}
.modal-info{color:#E2D6BC}
.modal-info h3{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.6vw,32px);margin:0 0 .8em;color:#fff;letter-spacing:.03em}
.modal-info h3 em{font-style:normal}
.modal-info dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:13px;font-family:var(--mono)}
.modal-info dt{color:var(--spice-2);text-transform:uppercase;letter-spacing:.12em;font-size:10px;padding-top:3px}
.modal-info dd{margin:0;color:#E2D6BC}
.prose{max-width:66ch}
.prose p{margin:0 0 1.3em}
.prose .reserved{font-family:var(--mono);font-style:italic;font-size:clamp(15px,1.8vw,19px);color:var(--ink2)}
.prose .muted,.muted{color:var(--muted)}
.prose.bio{max-width:1080px}
.bio-top{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,4vw,56px);align-items:start;margin-bottom:8px}
.bio-text p{margin:0 0 1.2em}
.portrait{margin:0;display:flex;flex-direction:column;gap:14px}
.portrait img{width:100%;filter:grayscale(.15) contrast(1.02)}
.cvblock{margin-top:30px}
.cv-grid{max-width:760px;margin:28px auto 0;text-align:center}
.cv-item h3.cv{margin-top:20px}
.cv-item:first-child h3.cv{margin-top:0}
@media(max-width:760px){.bio-top{grid-template-columns:1fr}}
.prose h3.cv{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-top:1px solid var(--line);padding-top:22px;margin:34px 0 12px}
.cvlist{list-style:none;padding:0;margin:0 0 8px}
.cvlist li{padding:6px 0;color:var(--ink2);border-bottom:1px solid var(--line)}
.cvlist li:last-child{border-bottom:none}
.contacto .big{font-family:var(--mono);font-size:clamp(15px,1.5vw,19px);margin:.4em 0}
.contacto .big a{border-bottom:1px solid var(--spice)}
.contacto .big a:hover{color:var(--spice)}
.contacto .ig{font-family:var(--mono);font-size:13px;margin:.3em 0;color:var(--muted)}
.contacto .ig a{border-bottom:1px solid var(--line)}
.contacto .ig a:hover{color:var(--spice)}
.empty{color:var(--muted);font-family:var(--mono)}
/* Filipinas: subtítulo de la colección + 4 sub-sistemas (exploraciones) */
.cname .csub{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-top:5px;font-weight:400}
.fil-multi{width:100%;height:auto;display:block;overflow:visible}
.fil-backbone{fill:none;stroke:var(--line);stroke-width:1;opacity:.6;stroke-dasharray:2 6}
.fil-corebtn{fill:var(--spice)}
.fil-core-t{font-family:var(--dune);font-size:15px;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted);
  paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}
.hoverprev{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s}
.hoverprev.show{opacity:1;visibility:visible}
.hp-backdrop{position:absolute;inset:0;background:rgba(16,12,7,.30);backdrop-filter:blur(11px) saturate(106%);-webkit-backdrop-filter:blur(11px) saturate(106%)}
.hoverprev img{position:relative;max-width:62vw;max-height:64vh;object-fit:contain;box-shadow:0 26px 64px rgba(0,0,0,.5);border-radius:2px;transform:scale(.965);transition:transform .3s ease}
.hoverprev.show img{transform:scale(1)}
@media(hover:none){.hoverprev{display:none}}
.res-intro{max-width:62ch;color:var(--ink2);margin:0 0 2em}
/* Residencias dentro de Bio: nodos desplegables con estética de núcleo */
.residencias-bio{margin:24px 0 10px;text-align:left}
.residencias-bio>.cv{text-align:center;margin:20px 0 16px}
.residencias-bio>.res-intro{text-align:center;margin:0 auto 1.6em}
.resn-list{border-top:1px solid var(--line)}
.resn{border-bottom:1px solid var(--line)}
.resn-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 2px}
.resn-sum::-webkit-details-marker{display:none}
.resn-ic{width:30px;height:30px;flex:0 0 auto;color:var(--muted);overflow:visible;transition:color .25s}
.resn[open] .resn-ic,.resn-sum:hover .resn-ic{color:var(--spice)}
.resn-h{display:flex;flex-direction:column;gap:3px;flex:1}
.resn-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:clamp(15px,1.8vw,19px);font-weight:400;color:var(--ink)}
.resn[open] .resn-name{color:var(--spice)}
.resn-meta{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--spice)}
.resn-plus{position:relative;width:13px;height:13px;flex:0 0 auto}
.resn-plus::before,.resn-plus::after{content:"";position:absolute;background:var(--muted);transition:transform .25s,background .25s}
.resn-plus::before{left:0;top:6px;width:13px;height:1.5px}
.resn-plus::after{left:6px;top:0;width:1.5px;height:13px}
.resn[open] .resn-plus::after{transform:scaleY(0)}
.resn[open] .resn-plus::before,.resn[open] .resn-plus::after{background:var(--spice)}
.resn-body{padding:2px 0 26px 46px;display:grid;grid-template-columns:1.5fr .9fr;gap:clamp(20px,4vw,46px);align-items:start}
.resn-body .res-text p{margin:0 0 1em;max-width:58ch}
@media(max-width:760px){.resn-body{grid-template-columns:1fr;padding-left:0}}
.res-item{border-top:1px solid var(--line);padding:34px 0}
.res-item:last-of-type{border-bottom:1px solid var(--line)}
.res-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.res-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:clamp(17px,2.1vw,24px);font-weight:400;margin:0}
.res-meta{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--spice);white-space:nowrap}
.res-body{display:grid;grid-template-columns:1.5fr .9fr;gap:clamp(24px,4vw,52px);align-items:start}
.res-text p{margin:0 0 1.1em;max-width:60ch}
.res-link{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--spice);border-bottom:1px solid var(--spice);padding-bottom:1px}
.res-link:hover{color:var(--spice-2)}
.res-proc{display:flex;flex-direction:column;gap:12px;width:100%;text-align:left;background:none;border:1px solid var(--line);border-radius:4px;padding:14px;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}
.res-proc.card:hover{border-color:var(--spice);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.14)}
.res-proc.empty{cursor:default;align-items:center;justify-content:center;min-height:90px;text-align:center}
.res-proc-strip{display:flex;gap:8px;flex-wrap:wrap}
.res-proc-strip img{width:56px;height:56px;object-fit:cover;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.2)}
.res-proc-cta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--spice)}
.res-proc-cta.muted{color:var(--muted)}
@media(max-width:760px){.res-body{grid-template-columns:1fr}}
@media(max-width:760px){
  .modal-inner{grid-template-columns:1fr;overflow:auto;max-height:90vh}
  header.site{flex-direction:column;gap:12px;align-items:center}
  #nav-core-wrap{position:static;transform:none;align-self:center}
  .navwrap{flex-wrap:wrap}
  nav a{margin:0 20px 0 0}
  .langsw{margin-left:0}
}
.lzL0,.lzL1,.lzL2,.lzL3,.lzL4,.lzL5,.lzL6,.lzL7,.lzL8,.lzL9,.lzL10,.lzL11,.lzL12{fill:none;stroke-linecap:round;opacity:0;stroke:var(--spark)}
.lzL0{stroke-width:1.1;stroke-dasharray:58.0 120.0;animation:lzk0 7s linear infinite}
@keyframes lzk0{0%{stroke-dashoffset:178.0;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-0.0;opacity:0}}
.lzL1{stroke-width:1.36;stroke-dasharray:53.8 124.2;animation:lzk1 7s linear infinite}
@keyframes lzk1{0%{stroke-dashoffset:175.9;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-2.1;opacity:0}}
.lzL2{stroke-width:1.62;stroke-dasharray:49.7 128.3;animation:lzk2 7s linear infinite}
@keyframes lzk2{0%{stroke-dashoffset:173.8;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-4.2;opacity:0}}
.lzL3{stroke-width:1.88;stroke-dasharray:45.5 132.5;animation:lzk3 7s linear infinite}
@keyframes lzk3{0%{stroke-dashoffset:171.8;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-6.2;opacity:0}}
.lzL4{stroke-width:2.13;stroke-dasharray:41.4 136.6;animation:lzk4 7s linear infinite}
@keyframes lzk4{0%{stroke-dashoffset:169.7;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-8.3;opacity:0}}
.lzL5{stroke-width:2.39;stroke-dasharray:37.2 140.8;animation:lzk5 7s linear infinite}
@keyframes lzk5{0%{stroke-dashoffset:167.6;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-10.4;opacity:0}}
.lzL6{stroke-width:2.65;stroke-dasharray:33.1 144.9;animation:lzk6 7s linear infinite}
@keyframes lzk6{0%{stroke-dashoffset:165.5;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-12.5;opacity:0}}
.lzL7{stroke-width:2.91;stroke-dasharray:28.9 149.1;animation:lzk7 7s linear infinite}
@keyframes lzk7{0%{stroke-dashoffset:163.4;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-14.6;opacity:0}}
.lzL8{stroke-width:3.17;stroke-dasharray:24.7 153.3;animation:lzk8 7s linear infinite}
@keyframes lzk8{0%{stroke-dashoffset:161.4;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-16.6;opacity:0}}
.lzL9{stroke-width:3.43;stroke-dasharray:20.6 157.4;animation:lzk9 7s linear infinite}
@keyframes lzk9{0%{stroke-dashoffset:159.3;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-18.7;opacity:0}}
.lzL10{stroke-width:3.68;stroke-dasharray:16.4 161.6;animation:lzk10 7s linear infinite}
@keyframes lzk10{0%{stroke-dashoffset:157.2;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-20.8;opacity:0}}
.lzL11{stroke-width:3.94;stroke-dasharray:12.3 165.7;animation:lzk11 7s linear infinite}
@keyframes lzk11{0%{stroke-dashoffset:155.1;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-22.9;opacity:0}}
.lzL12{stroke-width:4.2;stroke-dasharray:8.1 169.9;animation:lzk12 7s linear infinite}
@keyframes lzk12{0%{stroke-dashoffset:153.1;opacity:0}15%{opacity:.1}83%{opacity:.1}100%{stroke-dashoffset:-24.9;opacity:0}}
@media (prefers-reduced-motion: reduce){.lzL0,.lzL1,.lzL2,.lzL3,.lzL4,.lzL5,.lzL6,.lzL7,.lzL8,.lzL9,.lzL10,.lzL11,.lzL12{display:none}}
