@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');

:root { --ink:#1e211a; --paper:#f3eee2; --warm:#d9d1c0; --clay:#a95839; --mustard:#c49a38; --olive:#4c5a37; --forest:#263b2d; --plum:#4b3c4d; --mist:#d8d4ca; --mono:"DM Mono", monospace; --sans:"DM Sans", sans-serif; --serif:"Playfair Display", Georgia, serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:6.5rem; }
body { margin:0; color:var(--ink); background-color:var(--paper); background-image:radial-gradient(circle at 20% 12%,rgba(255,255,255,.7),transparent 30rem),repeating-linear-gradient(0deg,rgba(89,68,43,.035) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px); background-attachment:fixed; font-family:var(--sans); font-size:16px; line-height:1.5; }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
img { display:block; width:100%; }
a { color:inherit; text-decoration:none; }
.skip-link { position:fixed; top:-100%; left:1rem; z-index:100; padding:.6rem .8rem; color:var(--paper); background:var(--ink); }
.skip-link:focus { top:1rem; }
.site-header { position:fixed; z-index:20; top:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; column-gap:clamp(2rem,5vw,7rem); align-items:center; width:100%; min-height:6.5rem; padding:0 3.4vw; color:#fff; mix-blend-mode:difference; }
.brand-lockup { display:inline-flex; align-items:center; gap:.75rem; width:max-content; }
.brand-seal { position:relative; display:block; flex:0 0 auto; width:4.4rem; aspect-ratio:1; }
.brand-seal-image { position:absolute; inset:16%; z-index:1; overflow:hidden; border-radius:50%; }
.brand-seal-image img { width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
.brand-seal-brush { position:absolute; inset:0; z-index:2; width:100%; height:100%; overflow:visible; transform:rotate(-8deg); }
.brush { fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-width:7; vector-effect:non-scaling-stroke; opacity:.94; }
.brush-green { stroke:var(--forest); stroke-dasharray:140 4 20 3 36 4; }
.brush-ochre { stroke:var(--mustard); stroke-width:5; stroke-dasharray:55 3 31 4; }
.brush-clay { stroke:var(--clay); stroke-width:5; stroke-dasharray:74 4 20 3; }
.brush-plum { stroke:var(--plum); stroke-width:5; stroke-dasharray:66 3 24 4; }
.brush-dark { stroke:var(--ink); stroke-width:4; stroke-dasharray:47 4 18 3; }
.wordmark { font-family:var(--serif); font-size:1.65rem; line-height:.9; letter-spacing:-.04em; }
.wordmark span { display:block; padding-left:.6rem; font-style:italic; }
.site-nav { justify-self:end; display:flex; gap:1.15rem; font-family:var(--mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.04em; }
.site-nav a, .language { opacity:.82; transition:opacity .2s; }
.site-nav a:hover, .language:hover { opacity:1; }
.language { justify-self:end; font-family:var(--mono); font-size:.7rem; }
.menu-toggle { display:none; }
.hero { position:relative; display:grid; min-height:100svh; overflow:hidden; color:#fff; background:var(--ink); }
.hero-media { position:absolute; inset:0; }
.hero-media::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgba(8,8,7,.72) 5%,rgba(8,8,7,.26) 58%,rgba(8,8,7,.2)),linear-gradient(0deg,rgba(8,8,7,.38),transparent 40%); }
.hero-media img { height:100%; object-fit:cover; object-position:center; filter:saturate(.82) contrast(1.08); }
.hero-content { position:relative; align-self:end; width:min(43rem,88vw); padding:0 8vw 10vh; }
.hero-brand-mark { position:absolute; right:3vw; bottom:2.2rem; width:clamp(8rem,14vw,13rem); opacity:.94; transform:rotate(8deg); }
.hero-brand-mark .brand-seal { width:100%; }
.eyebrow { margin:0 0 1rem; font-family:var(--mono); font-size:.66rem; font-weight:500; letter-spacing:.05em; text-transform:uppercase; }
.hero h1, h2, h3, p { margin-top:0; }
.hero h1 { max-width:12ch; margin-bottom:1.5rem; font-family:var(--serif); font-size:clamp(3.35rem,8.6vw,8.5rem); font-weight:500; line-height:.87; letter-spacing:-.065em; }
.hero-content > p:not(.eyebrow) { max-width:34rem; font-size:clamp(1rem,1.6vw,1.22rem); }
.hero-actions { display:flex; align-items:center; gap:1.8rem; margin-top:2.4rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:2.9rem; padding:.75rem 1.15rem; border:1px solid var(--ink); color:var(--paper); background:var(--ink); font-family:var(--mono); font-size:.69rem; text-transform:uppercase; letter-spacing:.04em; transition:background .2s,color .2s; }
.button:hover { color:var(--ink); background:transparent; }
.button-light { border-color:#fff; color:var(--ink); background:#fff; }
.button-light:hover { color:#fff; background:transparent; }
.text-link { padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; font-family:var(--mono); font-size:.67rem; letter-spacing:.035em; text-transform:uppercase; }
.text-link span { display:inline-block; margin-left:.5rem; }
.light { color:#fff; }
.hero-caption { position:absolute; right:3.4vw; bottom:2.2rem; margin:0; font-family:var(--mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.035em; }
.hero-caption span { opacity:.7; }
.section { position:relative; padding:6.5rem 7vw; }
.section::after { position:absolute; right:7vw; bottom:0; left:7vw; height:1.1rem; content:""; background:linear-gradient(180deg,transparent 0 20%,rgba(42,28,17,.9) 21% 43%,var(--mustard) 44% 54%,rgba(42,28,17,.95) 55% 78%,transparent 79%),repeating-linear-gradient(90deg,transparent 0 1.2rem,rgba(255,255,255,.24) 1.2rem 1.28rem,transparent 1.28rem 2.5rem); opacity:.9; }
.section-heading { display:flex; justify-content:space-between; gap:3rem; align-items:start; margin-bottom:4rem; }
.section-heading { position:relative; overflow:hidden; padding:2.6rem 2.8rem; color:var(--paper); background-image:linear-gradient(90deg,rgba(22,19,15,.94),rgba(32,31,24,.78) 52%,rgba(31,24,18,.9)),url("../assets/brand/galeria-muro-ladrillo.png"); background-position:center; background-size:cover; border:1px solid rgba(196,154,56,.72); box-shadow:inset 0 0 0 .35rem rgba(38,25,14,.8),inset 0 0 0 .52rem rgba(196,154,56,.42),0 1.2rem 2rem rgba(26,18,10,.12); }
.section-heading::before { position:absolute; top:.2rem; right:.8rem; width:4.6rem; height:4.6rem; content:"❧"; color:var(--mustard); font-family:var(--serif); font-size:3.5rem; line-height:1; text-align:center; text-shadow:0 0 .8rem rgba(196,154,56,.58); transform:rotate(-12deg); }
.section-heading::after { position:absolute; right:auto; bottom:.35rem; left:.8rem; width:4rem; height:2.5rem; content:"❦"; color:var(--clay); font-family:var(--serif); font-size:2.3rem; line-height:1; text-align:center; text-shadow:0 0 .6rem rgba(169,88,57,.48); transform:rotate(8deg); }
.section-heading h2, .section-heading .eyebrow, .section-heading > p { color:inherit; }
.section-heading .filter-toggle { position:relative; z-index:1; color:inherit; border-color:rgba(243,238,226,.76); }
.artist-section::before, .collaboration-section::before, .contact-section::before { position:absolute; top:2.3rem; right:7vw; content:"❧"; color:var(--mustard); font-family:var(--serif); font-size:3.4rem; line-height:1; opacity:.8; text-shadow:0 0 .8rem rgba(196,154,56,.48); transform:rotate(-18deg); }
.artist-section::after, .collaboration-section::after, .contact-section::after { background:linear-gradient(180deg,transparent 0 20%,rgba(42,28,17,.9) 21% 43%,var(--mustard) 44% 54%,rgba(42,28,17,.95) 55% 78%,transparent 79%),repeating-linear-gradient(90deg,transparent 0 1.2rem,rgba(255,255,255,.24) 1.2rem 1.28rem,transparent 1.28rem 2.5rem); }
.section-heading h2, .artist-copy h2, .collaboration-section h2, .contact-section h2 { max-width:14ch; margin-bottom:0; font-family:var(--serif); font-size:clamp(2.8rem,5vw,5.35rem); font-weight:500; line-height:.95; letter-spacing:-.06em; }
.filter-toggle { padding:.65rem 0; border:0; border-bottom:1px solid var(--ink); background:transparent; font-family:var(--mono); font-size:.64rem; text-transform:uppercase; letter-spacing:.04em; }
.filter-toggle span { margin-left:.8rem; }
.timeline { border-top:1px solid var(--ink); }
.stage-card { position:relative; display:grid; grid-template-columns:14% 22% 1fr; gap:2.5rem; min-height:16rem; padding:1.5rem 0 2.5rem; border-bottom:1px solid var(--ink); }
.stage-card.compact { min-height:0; }
.stage-meta { display:flex; flex-direction:column; justify-content:space-between; font-family:var(--mono); font-size:.63rem; text-transform:uppercase; }
.stage-card h3 { margin:0; font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.8rem); font-weight:500; line-height:.98; letter-spacing:-.055em; }
.stage-card > p { max-width:25rem; margin:0; font-size:.94rem; }
.stage-works { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); grid-column:3; gap:.5rem; margin-top:-5.6rem; }
.archive-work { min-height:11rem; padding:0; border:0; overflow:hidden; background:var(--warm); }
.archive-work.primary { grid-column:span 2; grid-row:span 2; min-height:23rem; }
.archive-work img { height:100%; object-fit:cover; transition:transform .5s; }
.archive-work:hover img { transform:scale(1.04); }
.show-stage { grid-column:3; justify-self:start; margin-top:1.25rem; }
.gallery-section { color:var(--paper); background:var(--ink); }
.gallery-heading { margin-bottom:2rem; }
.gallery-heading > p { max-width:23rem; margin:1rem 0 0; font-size:.95rem; }
.filters { display:flex; gap:.5rem; margin-bottom:2rem; }
.filters button { padding:.45rem .7rem; border:1px solid rgba(255,255,255,.36); color:var(--paper); background:transparent; font-family:var(--mono); font-size:.6rem; letter-spacing:.04em; text-transform:uppercase; }
.filters button.active, .filters button:hover { color:var(--ink); background:var(--paper); }
.available-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.available-work { min-width:0; }
.available-image { aspect-ratio:4/4.7; width:100%; padding:0; border:0; overflow:hidden; background:#34322c; }
.available-image img { height:100%; object-fit:cover; transition:transform .45s; }
.available-image:hover img { transform:scale(1.03); }
.available-work > div { padding-top:.8rem; }
.available-work p { margin-bottom:.2rem; font-family:var(--mono); font-size:.59rem; text-transform:uppercase; opacity:.75; }
.available-work h3 { margin-bottom:.7rem; font-family:var(--serif); font-size:1.65rem; font-weight:500; letter-spacing:-.045em; }
.available-work .text-link { color:var(--paper); }
.empty-gallery { grid-column:1 / -1; max-width:37rem; padding:7vh 0; }
.empty-gallery h3 { margin-bottom:.8rem; font-family:var(--serif); font-size:clamp(2.5rem,4vw,4.2rem); font-weight:500; line-height:.95; letter-spacing:-.055em; }
.empty-gallery p:not(.eyebrow) { margin-bottom:1.8rem; }
.artist-section { display:grid; grid-template-columns:1.08fr .92fr; gap:8vw; align-items:center; min-height:52rem; background-image:linear-gradient(90deg,transparent,rgba(196,154,56,.07),transparent); }
.artist-image { align-self:stretch; min-height:35rem; background:var(--warm); }
.artist-image img { height:100%; object-fit:cover; filter:saturate(.8); }
.artist-copy > p:not(.eyebrow), .collaboration-section > div > p, .contact-section > div > p { max-width:31rem; margin:1.8rem 0; font-size:1.03rem; }
.quote { max-width:34rem; margin:3rem 0; padding:1.15rem 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.quote > p { margin-bottom:1rem; font-family:var(--mono); font-size:.63rem; text-transform:uppercase; }
blockquote { margin:0; font-family:var(--serif); font-size:clamp(1.6rem,2.5vw,2.35rem); line-height:1.08; letter-spacing:-.04em; }
.bio-note { max-width:33rem; font-size:.9rem; }
.bio-note strong { font-family:var(--mono); font-size:.63rem; text-transform:uppercase; }
.bio-note p { margin-top:.6rem; }
.collaboration-section { display:grid; grid-template-columns:1.1fr .9fr; gap:6vw; color:var(--paper); background-color:var(--forest); background-image:linear-gradient(90deg,rgba(16,23,18,.86),rgba(38,59,45,.64)),url("../assets/brand/galeria-muro-ladrillo.png"); background-position:center; background-size:cover; }
.contact-section { display:grid; grid-template-columns:1.1fr .9fr; gap:6vw; }
.inquiry-form { display:grid; gap:1.15rem; align-content:start; }
.inquiry-form label { display:grid; gap:.45rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; }
.inquiry-form input, .inquiry-form textarea { width:100%; padding:.75rem 0; border:0; border-bottom:1px solid var(--ink); border-radius:0; color:inherit; outline:none; background:transparent; font-family:var(--sans); font-size:1rem; text-transform:none; }
.dark-form input, .dark-form textarea { border-color:rgba(255,255,255,.74); }
.inquiry-form input:focus, .inquiry-form textarea:focus { border-color:var(--clay); }
.dark-form input:focus, .dark-form textarea:focus { border-color:#fff; }
.inquiry-form textarea { resize:vertical; }
.honeypot { position:absolute; left:-9999px; }
.form-help, .form-status { margin:0; font-size:.75rem; }
.form-status { min-height:1.2rem; }
footer { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; min-height:12rem; padding:2.7rem 7vw; color:var(--paper); background-color:var(--ink); background-image:linear-gradient(90deg,rgba(20,16,12,.9),rgba(38,25,15,.7)),url("../assets/brand/galeria-muro-ladrillo.png"); background-position:center bottom; background-size:cover; }
footer .brand-seal { width:3.8rem; }
footer p, footer > a:last-child { margin:0; font-family:var(--mono); font-size:.63rem; text-transform:uppercase; letter-spacing:.035em; }
footer > a:last-child { justify-self:end; border-bottom:1px solid var(--paper); }
dialog { width:min(88vw,68rem); max-height:90vh; padding:0; border:0; color:var(--ink); background:var(--paper); }
dialog::backdrop { background:rgba(12,11,9,.82); backdrop-filter:blur(3px); }
dialog > img { max-height:66vh; object-fit:contain; background:#24231f; }
.dialog-copy { padding:1.4rem 1.7rem 1.8rem; }
.dialog-copy h2 { margin-bottom:.65rem; font-family:var(--serif); font-size:2.2rem; font-weight:500; letter-spacing:-.05em; }
.dialog-copy p { margin-bottom:1.3rem; }
.dialog-close { position:fixed; z-index:1; top:1rem; right:1rem; width:2.2rem; height:2.2rem; border:0; border-radius:50%; color:#fff; background:rgba(0,0,0,.58); font-size:1.6rem; line-height:1; }

@media (max-width: 760px) {
  .site-header { min-height:4.5rem; grid-template-columns:1fr auto auto; padding:0 5vw; mix-blend-mode:normal; color:var(--ink); background:rgba(243,238,226,.96); backdrop-filter:blur(10px); }
  .site-header .brand-seal { width:2.65rem; }
  .site-header .wordmark { font-size:1.08rem; }
  .menu-toggle { display:block; padding:.35rem .55rem; border:1px solid var(--ink); background:transparent; font-family:var(--mono); font-size:.58rem; text-transform:uppercase; }
  .site-nav { position:absolute; top:4.5rem; left:0; display:none; width:100%; padding:1.5rem 5vw 2rem; color:var(--ink); background:var(--paper); box-shadow:0 14px 20px rgba(0,0,0,.12); }
  .site-nav.open { display:grid; gap:1.1rem; }
  .language { margin-left:.75rem; }
  .hero { min-height:48rem; }
  .hero-content { width:100%; padding:0 6vw 5.5rem; }
  .hero h1 { font-size:clamp(3.1rem,14vw,5rem); }
  .hero-brand-mark { display:none; }
  .hero-caption { right:6vw; bottom:1.4rem; font-size:.54rem; }
  .hero-caption span { display:none; }
  .section { padding:5.5rem 6vw; }
  .section::after { right:6vw; left:6vw; }
  .section-heading { display:block; padding:2rem 1.35rem; }
  .artist-section::before, .collaboration-section::before, .contact-section::before { top:1.5rem; right:6vw; font-size:2.8rem; }
  .section-heading, .gallery-heading { display:block; margin-bottom:2.8rem; }
  .filter-toggle { margin-top:1.7rem; }
  .stage-card { display:block; padding:1.2rem 0 2.2rem; }
  .stage-meta { flex-direction:row; margin-bottom:1.2rem; }
  .stage-card > p { margin:1.1rem 0 1.5rem; }
  .stage-works { grid-column:auto; margin:0; }
  .archive-work { min-height:6rem; }
  .archive-work.primary { min-height:13rem; }
  .show-stage { margin-top:1rem; }
  .available-grid { grid-template-columns:repeat(2,1fr); gap:1.4rem .7rem; }
  .artist-section, .collaboration-section, .contact-section { display:block; }
  .artist-image { min-height:24rem; margin-bottom:3rem; }
  .artist-copy > p:not(.eyebrow), .collaboration-section > div > p, .contact-section > div > p { margin:1.35rem 0 2.5rem; }
  .inquiry-form { margin-top:2.8rem; }
  footer { grid-template-columns:1fr auto; gap:2rem; min-height:10rem; padding:2rem 6vw; }
  footer .brand-lockup { grid-column:1/-1; }
  footer p { grid-column:1/-1; grid-row:2; }
  dialog { width:94vw; }
  dialog > img { max-height:55vh; }
}

@media (max-width: 430px) { .stage-works { grid-template-columns:1fr 1fr; } .archive-work.primary { grid-column:span 2; } .hero-actions { align-items:start; flex-direction:column; gap:1.2rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }

/* Marco ornamental reutilizable */
.ornamental-divider { position:relative; z-index:3; display:flex; justify-content:center; height:6.5rem; margin-top:-6.5rem; overflow:hidden; background-color:transparent; background-image:url("../assets/identidad/ornamentos/arabesco-horizontal-v1.png"); background-repeat:repeat-x; background-position:center; background-size:auto 100%; pointer-events:none; }
.ornamental-divider img { display:none; }
.ornate-frame { position:relative; isolation:isolate; padding:1.2rem; }
.ornate-frame::before { position:absolute; z-index:-1; inset:.6rem; content:""; border:solid .42rem transparent; border-image:url("../assets/identidad/ornamentos/moldura-interior-v1.png") 26 round; background:#332617; }
.frame-corner { position:absolute; z-index:2; width:4.3rem; height:4.3rem; object-fit:contain; pointer-events:none; }
.corner-tl { top:0; left:0; }
.corner-tr { top:0; right:0; transform:scaleX(-1); }
.corner-bl { bottom:0; left:0; transform:scaleY(-1); }
.corner-br { right:0; bottom:0; transform:scale(-1); }
.archive-intro { display:grid; grid-template-columns:minmax(0,.95fr) minmax(23rem,1.05fr); gap:8vw; align-items:center; min-height:38rem; }
.archive-intro-copy { max-width:37rem; }
.archive-intro-copy h2 { max-width:13ch; margin-bottom:1.6rem; font-family:var(--serif); font-size:clamp(3rem,5.5vw,6rem); font-weight:500; line-height:.94; letter-spacing:-.065em; }
.archive-intro-copy > p:not(.eyebrow) { max-width:31rem; margin-bottom:2.1rem; font-size:1.04rem; }
.archive-preview { display:grid; grid-template-columns:1.2fr .8fr; gap:1rem; align-items:stretch; }
.archive-preview-image { min-height:26rem; padding:1.5rem; }
.archive-preview-image > img { height:100%; object-fit:contain; background:#2a261e; }
.home-carousel { min-height:0; padding:1.2rem 3.5rem; }
.home-carousel .carousel-viewport, .home-carousel .carousel-track { height:auto; }
.home-carousel .carousel-track .archive-work { flex:0 0 100%; }
.home-carousel .thumb-frame { padding:.7rem; }
.archive-preview-stages { display:grid; gap:.75rem; align-content:center; }
.archive-preview-card { padding:1rem 0; border-bottom:1px solid rgba(30,33,26,.55); }
.archive-preview-card span, .stage-meta { font-family:var(--mono); font-size:.6rem; letter-spacing:.04em; text-transform:uppercase; }
.archive-preview-card h3 { margin:.3rem 0 0; font-family:var(--serif); font-size:1.45rem; font-weight:500; line-height:1; }
.available-image { aspect-ratio:auto; height:auto; overflow:visible; background:none; }
.available-image img, .archive-work img { height:auto; object-fit:initial; background:transparent; transition:transform .45s; }
.available-image:hover img, .archive-work:hover img { transform:scale(1.025); }
.available-work .thumb-frame { padding:1rem; }
.available-work .frame-corner { width:3.4rem; height:3.4rem; }
.artist-frame { height:100%; padding:1.4rem; }
.artist-frame > img { height:100%; object-fit:contain; background:var(--warm); }
/* La imagen de artista conserva su propia proporción (3:4); el marco no la fuerza a una caja ajena. */
.artist-image { align-self:center; min-height:0; background:transparent; }
.artist-frame { height:auto; padding:1rem; }
.artist-frame > img { width:100%; height:auto; object-fit:initial; background:transparent; }
.artist-frame::after { content:none; }

/* Página retrospectiva */
.retrospective-hero { display:grid; min-height:57vh; padding:11rem 7vw 6rem; color:var(--paper); background-color:#251d14; background-image:linear-gradient(90deg,rgba(20,15,10,.94),rgba(35,25,16,.66)),url("../assets/brand/galeria-muro-ladrillo.png"); background-position:center; background-size:cover; }
.retrospective-hero > div { align-self:end; max-width:48rem; }
.retrospective-hero h1 { max-width:12ch; margin-bottom:1.4rem; font-family:var(--serif); font-size:clamp(3.6rem,7vw,7rem); font-weight:500; line-height:.9; letter-spacing:-.065em; }
.retrospective-hero p:not(.eyebrow) { max-width:35rem; margin-bottom:2rem; font-size:1.08rem; }
.archive-page-section { padding:6rem 7vw 8rem; background:var(--paper); }
.archive-page-heading { display:flex; justify-content:space-between; gap:4rem; max-width:72rem; margin:0 auto 4rem; padding-bottom:1.5rem; border-bottom:1px solid var(--ink); }
.archive-page-heading > p:last-child { max-width:29rem; margin:0; }
.archive-stages { max-width:86rem; margin:auto; }
.archive-stages .stage-card { display:grid; grid-template-columns:15% minmax(14rem, .85fr) minmax(0,1.7fr); gap:3rem; min-height:0; padding:3.5rem 0; }
.stage-copy h2 { max-width:12ch; margin:0 0 1rem; font-family:var(--serif); font-size:clamp(2.2rem,3.8vw,4.5rem); font-weight:500; line-height:.92; letter-spacing:-.06em; }
.stage-copy p { max-width:28rem; margin-bottom:1.5rem; }
.stage-works { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; align-content:start; }
.archive-stages .stage-works { grid-column:3; margin-top:0; }
.stage-works[hidden] { display:none; }
.stage-samples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; align-content:start; }
.stage-samples[hidden] { display:none; }
.stage-carousel { position:relative; display:block; padding:0 2.65rem; overflow:hidden; }
.carousel-viewport { overflow:hidden; }
.carousel-track { display:flex; align-items:flex-start; transition:transform .35s ease; }
.carousel-track .archive-work { flex:0 0 100%; }
.carousel-control { position:absolute; z-index:2; top:50%; display:grid; width:2rem; height:2rem; padding:0; border:1px solid #5f4223; color:var(--paper); background:#2a261e; place-items:center; transform:translateY(-50%); }
.carousel-control:hover { color:#211d16; background:#bd8b3b; }
.carousel-prev { left:0; }
.carousel-next { right:0; }
.archive-work { min-height:0; aspect-ratio:auto; padding:0; border:0; overflow:visible; background:none; align-self:start; }
.thumb-frame { display:block; width:100%; height:auto; padding:.5rem; border:1px solid #5f4223; outline:2px solid #bd8b3b; outline-offset:-.35rem; background:transparent; box-shadow:0 .3rem .7rem rgba(40,27,12,.16); }
.thumb-frame > img, .archive-work .thumb-frame > img { width:100%; height:auto; object-fit:initial; background:transparent; }
.feature-frame { position:relative; overflow:hidden; padding:1rem; border:1px solid #5f4223; outline:4px solid #bd8b3b; outline-offset:-.75rem; background:#2a261e; box-shadow:inset 0 0 0 1rem #211d16,0 1rem 2rem rgba(40,27,12,.18); }
.feature-frame::after { position:absolute; right:0; bottom:-1.3rem; left:0; height:3.1rem; content:""; background:url("../assets/identidad/ornamentos/arabesco-horizontal-v1.png") center/contain no-repeat; pointer-events:none; }
.stage-toggle { color:var(--ink); }
dialog { overflow:visible; background:var(--paper); }
.dialog-frame { min-height:min(62vh,48rem); padding:1.65rem; }
.dialog-frame > img { width:100%; height:min(62vh,48rem); max-height:none; object-fit:contain; background:#24231f; }
.dialog-nav { position:absolute; z-index:4; top:50%; display:flex; align-items:center; gap:.45rem; padding:.55rem .7rem; border:0; color:#fff; background:rgba(15,13,10,.72); font-family:var(--mono); font-size:.62rem; text-transform:uppercase; transform:translateY(-50%); }
.dialog-prev { left:.6rem; }
.dialog-next { right:.6rem; }
.dialog-close { position:absolute; }
.video-section { display:grid; grid-template-columns:minmax(16rem,.8fr) minmax(0,1.2fr); gap:5vw; align-items:center; color:var(--paper); background-color:#251d14; background-image:linear-gradient(90deg,rgba(20,15,10,.9),rgba(35,25,16,.62)),url("../assets/brand/galeria-muro-ladrillo.png"); background-position:center; background-size:cover; }
.video-copy { max-width:28rem; }
.video-copy h2 { margin-bottom:1rem; font-family:var(--serif); font-size:clamp(2.8rem,4.8vw,5rem); font-weight:500; line-height:.94; letter-spacing:-.06em; }
.video-copy > p:last-child { max-width:25rem; margin-bottom:0; }
.video-subtitle { margin-bottom:1.3rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.video-player { overflow:hidden; border:1px solid rgba(196,154,56,.82); box-shadow:inset 0 0 0 .4rem rgba(32,23,14,.72),0 1rem 2rem rgba(0,0,0,.28); aspect-ratio:16/9; }
.video-player iframe { display:block; width:100%; height:100%; border:0; }
/* Las decoraciones tipográficas antiguas se sustituyen por los assets. */
.section-heading::before, .section-heading::after, .artist-section::before, .contact-section::before { content:none; }
.section::after { content:none; }

@media (max-width:760px) {
  .ornamental-divider { height:4.5rem; margin-top:-4.5rem; }
  .ornate-frame { padding:1rem; }
  .frame-corner { width:3.45rem; height:3.45rem; }
  .archive-intro { display:block; min-height:0; }
  .archive-intro-copy { margin-bottom:3rem; }
  .archive-preview { grid-template-columns:1fr; }
  .archive-preview-image { min-height:22rem; }
  .home-carousel { min-height:0; padding:1rem 3rem; }
  .archive-preview-stages { grid-template-columns:repeat(3,1fr); gap:.7rem; }
  .archive-preview-card h3 { font-size:1.1rem; }
  .video-section { display:block; }
  .video-copy { margin-bottom:2rem; }
  .available-work .thumb-frame { padding:.8rem; }
  .retrospective-hero { min-height:33rem; padding:9rem 6vw 4.5rem; }
  .archive-page-section { padding:4.5rem 6vw 6rem; }
  .archive-page-heading { display:block; margin-bottom:2rem; }
  .archive-page-heading > p:last-child { margin-top:1.2rem; }
  .archive-stages .stage-card { display:block; padding:2.8rem 0; }
  .stage-meta { flex-direction:row; margin-bottom:1rem; }
  .stage-copy p { margin-bottom:1.25rem; }
  .stage-works, .stage-samples { margin-top:1.8rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stage-carousel { display:block; padding:0 2.4rem; }
  .dialog-frame { min-height:45vh; padding:1.1rem; }
  .dialog-frame > img { height:45vh; }
  .dialog-nav span { display:none; }
}
