:root{--paper:#f2f1ed;--ink:#171714;--muted:#77766f;--line:#cfcec7;--accent:#ff5a36}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}header{height:88px;padding:0 3.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.35);position:absolute;inset:0 0 auto;z-index:3;color:#fff}.logo{font-size:1.2rem;font-weight:500;letter-spacing:-.05em}.logo span{display:block;font-size:.42rem;letter-spacing:.22em;margin-top:2px}nav{display:flex;gap:34px;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}nav a:hover{opacity:.55}.cover{min-height:100svh;background:#23241f;color:#fff;position:relative;overflow:hidden;padding:150px 3.5vw 50px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center}.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,14,11,.9),rgba(13,14,11,.4) 48%,rgba(13,14,11,.06) 75%);z-index:0}.cover-photo,.cover-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.cover-placeholder{background:linear-gradient(115deg,#1d1e1a 0 48%,#67685e 48.2% 52%,#2c2d28 52.2%)}.cover-copy{position:relative;z-index:1}.kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;margin:0 0 42px}.cover h1,.author h2{font:400 clamp(4rem,8vw,8.3rem)/.84 "Instrument Serif",serif;letter-spacing:-.045em;margin:0}.cover h1 em,.author h2 em{font-weight:400}.cover-intro{font-size:1rem;line-height:1.6;max-width:390px;margin:50px 0 0;color:rgba(255,255,255,.72)}.cover-index{position:absolute;z-index:1;right:3.5vw;top:120px;display:flex;gap:70px;text-transform:uppercase;font-size:.65rem;letter-spacing:.16em}.scroll{position:absolute;z-index:1;bottom:45px;right:3.5vw;width:110px;height:110px;border-radius:50%;border:1px solid rgba(255,255,255,.65);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;text-transform:uppercase;font-size:.65rem;letter-spacing:.14em;transition:.3s}.scroll:hover{background:#fff;color:#111}.gallery-section{padding:120px 3.5vw 160px}.section-head{display:flex;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--line);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.section-head p{margin:0}.section-head span{color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(12,1fr);column-gap:2.3vw;row-gap:110px;padding-top:70px}.artwork{appearance:none;border:0;background:none;padding:0;text-align:left;cursor:pointer;grid-column:span 4}.artwork:nth-child(5n+1),.artwork:nth-child(5n+4){grid-column:span 7}.artwork:nth-child(5n+2),.artwork:nth-child(5n+5){grid-column:span 5;margin-top:130px}.frame{display:block;background:#e0dfd9;overflow:hidden;aspect-ratio:4/5}.artwork:nth-child(5n+1) .frame,.artwork:nth-child(5n+4) .frame{aspect-ratio:7/5}.frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.artwork:hover img{transform:scale(1.025)}.caption{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;padding-top:14px;border-top:1px solid var(--line);margin-top:14px}.caption strong{font-size:.84rem;font-weight:500}.caption small{font-size:.74rem;line-height:1.45;color:var(--muted)}.empty-gallery{height:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-bottom:1px solid var(--line)}.empty-gallery p{font:400 2rem "Instrument Serif",serif}.empty-gallery span{font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.author{padding:150px 3.5vw;background:#20211d;color:#f2f1ed;display:grid;grid-template-columns:1fr 3fr}.author>div{display:grid;grid-template-columns:2fr 1fr;align-items:end;gap:8vw}.author h2{font-size:clamp(3.5rem,7vw,7.5rem)}.author div>p{color:#aaa9a2;line-height:1.7;margin:0 0 10px}.contact{padding:120px 3.5vw 80px;background:var(--accent);color:#151512}.contact>p{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em}.contact a{display:flex;justify-content:space-between;align-items:center;font:400 clamp(4.5rem,12vw,12rem)/1 "Instrument Serif",serif;letter-spacing:-.04em}.contact a span{font:400 .45em "DM Sans",sans-serif;transition:.3s}.contact a:hover span{transform:translate(10px,-10px)}footer{padding:34px 3.5vw;display:grid;grid-template-columns:1fr 1fr 1fr;font-size:.65rem;text-transform:uppercase;letter-spacing:.13em}footer span:nth-child(2){text-align:center}footer a{text-align:right}dialog{width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:35px;background:rgba(15,15,13,.97);color:#fff}dialog[open]{display:grid;grid-template-columns:70px 1fr 70px;align-items:center}dialog::backdrop{background:#111}dialog figure{margin:0;height:calc(100vh - 70px);display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:end}dialog figure img{width:100%;height:100%;object-fit:contain;min-height:0}figcaption{padding-bottom:20px}figcaption strong{font:400 2rem "Instrument Serif",serif}figcaption p{color:#aaa;font-size:.85rem;line-height:1.6}.close{position:absolute;right:35px;top:25px;background:none;border:0;color:#fff;text-transform:uppercase;font-size:.65rem;letter-spacing:.14em;cursor:pointer}.viewer-nav{background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}.reveal{opacity:0;transform:translateY(22px);transition:.7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:760px){header{height:72px;padding:0 20px}nav a:not(:last-child){display:none}.cover{padding:120px 20px 30px;display:block}.cover h1{font-size:18vw}.cover-index{display:none}.cover-intro{max-width:240px;margin-top:32px;font-size:.85rem}.scroll{width:80px;height:80px;right:20px;bottom:25px}.gallery-section{padding:80px 20px 100px}.gallery{display:block;padding-top:50px}.artwork,.artwork:nth-child(n){display:block;width:100%;margin:0 0 65px}.artwork:nth-child(3n+2){width:78%;margin-left:auto}.caption{grid-template-columns:1fr}.author{padding:90px 20px;display:block}.author>div{display:block}.author h2{font-size:16vw;margin:45px 0}.contact{padding:80px 20px 50px}.contact a{font-size:18vw}footer{padding:28px 20px;grid-template-columns:1fr 1fr}footer span:nth-child(2){display:none}dialog{padding:16px}dialog[open]{display:block}dialog figure{height:calc(100vh - 32px);display:flex;flex-direction:column;gap:15px;justify-content:center}dialog figure img{height:auto;max-height:68vh}.viewer-nav{position:absolute;bottom:25px}.viewer-nav.next{right:25px}.viewer-nav.prev{left:25px}.close{right:18px;top:18px;z-index:2}figcaption{padding:0 45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}*{transition:none!important}}

/* Exposición horizontal */
.gallery-section{overflow:hidden}.carousel-window{overflow:visible;padding-top:70px}.gallery.carousel{display:flex;gap:2.2vw;padding:0;transition:transform .85s cubic-bezier(.22,.75,.18,1);will-change:transform}.gallery.carousel .artwork,.gallery.carousel .artwork:nth-child(n){flex:0 0 82vw;width:82vw;max-width:none;margin:0;grid-column:auto}.gallery.carousel .frame,.gallery.carousel .artwork:nth-child(n) .frame{height:min(68vh,760px);aspect-ratio:auto}.gallery.carousel .caption{grid-template-columns:1fr 1.5fr}.carousel-controls{display:flex;justify-content:space-between;align-items:center;margin-top:42px;padding-top:20px;border-top:1px solid var(--line)}.carousel-arrows{display:flex;gap:10px}.carousel-arrows button{width:72px;height:72px;border:1px solid var(--ink);border-radius:50%;background:transparent;font-size:1.6rem;cursor:pointer;transition:.25s}.carousel-arrows button:hover{background:var(--ink);color:var(--paper)}.carousel-status{display:flex;align-items:center;gap:14px;font-size:.7rem;letter-spacing:.14em}.carousel-status i{display:block;width:90px;height:1px;background:var(--line);position:relative;overflow:hidden}.carousel-status i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--progress,.25));transform-origin:left;transition:transform .6s}.gallery.carousel.dragging{transition:none;cursor:grabbing}
@media(max-width:760px){.carousel-window{padding-top:42px}.gallery.carousel{display:flex;gap:16px}.gallery.carousel .artwork,.gallery.carousel .artwork:nth-child(n){flex-basis:88vw;width:88vw;margin:0}.gallery.carousel .frame,.gallery.carousel .artwork:nth-child(n) .frame{height:58vh;min-height:430px}.gallery.carousel .caption{grid-template-columns:1fr}.carousel-controls{margin-top:28px}.carousel-arrows button{width:58px;height:58px}.carousel-status i{width:55px}}

/* Portada independiente y archivo en miniaturas */
.cover-independent{background:#171714;isolation:isolate}.cover-independent::after{background:linear-gradient(90deg,rgba(23,23,20,.96),rgba(23,23,20,.5) 58%,rgba(23,23,20,.12));z-index:0}.cover-art{position:absolute;inset:0;z-index:0;overflow:hidden}.cover-art span{position:absolute;right:-2vw;bottom:-18vh;font:400 min(85vw,78rem)/.7 "Instrument Serif",serif;color:#e9e6dd;letter-spacing:-.12em}.cover-art i{position:absolute;right:7vw;top:15vh;width:clamp(120px,18vw,340px);aspect-ratio:1;border-radius:50%;background:var(--accent);mix-blend-mode:multiply}.cover-independent .cover-copy{max-width:850px}.cover-independent h1{font-size:clamp(5rem,11vw,11rem)}.gallery-section{padding-top:95px;padding-bottom:110px}.carousel-window{padding-top:52px}.gallery.carousel{gap:1.5vw}.gallery.carousel .artwork,.gallery.carousel .artwork:nth-child(n){flex:0 0 clamp(220px,22vw,320px);width:clamp(220px,22vw,320px)}.gallery.carousel .frame,.gallery.carousel .artwork:nth-child(n) .frame{height:clamp(280px,29vw,410px);aspect-ratio:auto}.gallery.carousel .caption{display:block}.gallery.carousel .caption strong{display:block;font-size:.78rem}.gallery.carousel .caption small{display:block;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.carousel-controls{margin-top:30px}.carousel-arrows button{width:58px;height:58px}.artwork:hover .frame img{transform:scale(1.04)}
@media(max-width:760px){.cover-art span{right:-10vw;bottom:-3vh;font-size:120vw}.cover-art i{right:-10vw;top:20vh;width:55vw}.cover-independent h1{font-size:22vw}.cover-independent .cover-intro{max-width:215px}.gallery.carousel .artwork,.gallery.carousel .artwork:nth-child(n){flex-basis:220px;width:220px}.gallery.carousel .frame,.gallery.carousel .artwork:nth-child(n) .frame{height:300px;min-height:0}.gallery.carousel{gap:14px}.gallery-section{padding-bottom:75px}}

/* Portada compacta y protección visual */
.cover.cover-independent{min-height:64svh;padding-top:115px;padding-bottom:34px}.cover-independent h1{font-size:clamp(4.2rem,8.5vw,8.5rem)}.cover-independent .cover-intro{margin-top:30px}.cover-independent .cover-art span{bottom:-30vh;font-size:min(68vw,58rem)}.cover-independent .cover-art i{top:11vh;width:clamp(100px,14vw,250px)}.cover-independent .scroll{width:84px;height:84px;bottom:24px}.gallery-section{padding-top:58px}.frame img,dialog img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}.frame{position:relative}.carousel-window{touch-action:pan-y}.artwork-new{opacity:0;transform:translateY(12px);transition:opacity .45s,transform .45s}.artwork-new.visible-new{opacity:1;transform:none}
@media(max-width:760px){.cover.cover-independent{min-height:68svh;padding-top:100px}.cover-independent h1{font-size:18vw}.cover-independent .cover-art span{font-size:100vw;bottom:-10vh}.cover-independent .cover-art i{top:17vh;width:46vw}.gallery-section{padding-top:45px}}

/* Fechas y adaptación de cualquier formato fotográfico */
.gallery.carousel .frame{display:flex;align-items:center;justify-content:center}.gallery.carousel .frame img{object-position:center;width:100%;height:100%}.gallery.carousel .caption time{display:block;margin-top:10px;color:#999;font-size:.6rem;line-height:1;text-transform:uppercase;letter-spacing:.12em}figcaption time{display:block;margin-top:22px;padding-top:14px;border-top:1px solid #3b3b38;color:#85857f;font-size:.65rem;text-transform:uppercase;letter-spacing:.11em}dialog figure img{max-width:100%;max-height:100%;object-fit:contain;object-position:center}
