@font-face{font-family:Duster;src:url('assets/fonts/DusterTM-Regular.ttf');font-display:swap}@font-face{font-family:Dot;src:url('assets/fonts/DotGainTM-Regular.ttf');font-display:swap}@font-face{font-family:Mono;src:url('assets/fonts/dm-mono-regular.ttf');font-display:swap}
:root{--green:#298f00;--yellow:#f4d600;--cyan:#9bf4f0;--orange:#ff5e01;--ink:#18352a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--yellow);color:var(--ink);font-family:Mono,monospace}a{color:inherit}img{display:block;width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,.brand,.artist-caption h3,.closing h2{font-family:Duster,sans-serif;font-weight:400;letter-spacing:.025em;line-height:.7}h2,h3{font-family:Dot,serif;font-weight:400;line-height:.76}p{line-height:1.5}.header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 4%;background:var(--green);color:var(--yellow)}.brand{text-decoration:none;font-size:30px;white-space:nowrap}.brand span{font:11px Mono,monospace;vertical-align:top;margin-left:6px}.header nav{display:flex;gap:28px;font-size:13px}.header nav a{text-decoration:none}.header nav a:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--cyan);color:var(--ink);padding:17px 25px;font:14px Mono,monospace;text-decoration:none;width:max-content;max-width:100%;transition:transform .15s}.button:hover{transform:translateY(-3px)}.button.orange{background:var(--orange);color:#141414}.button.small{padding:12px 18px;font-size:12px}.menu-toggle{display:none;background:transparent;border:0;color:inherit;font-size:25px}.section{padding:105px max(5%,calc((100vw - 1400px)/2))}.eyebrow{font:12px Mono,monospace;letter-spacing:.08em;margin-bottom:28px}.hero{background:var(--green);padding-bottom:22px}.hero-frame{position:relative;aspect-ratio:12/5}.hero-frame picture,.hero-frame picture img{position:absolute;inset:0;width:100%;height:100%}.hero-content{position:absolute;inset:24% 14% 17%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.hero-content .eyebrow{margin-bottom:24px}.hero h1{font-size:clamp(70px,10vw,190px)}.hero-dot{font:clamp(28px,3vw,56px)/.76 Dot,serif;margin-top:20px}.hero-date{display:flex;align-items:center;gap:45px;margin-top:25px}.hero-date strong{font:400 clamp(22px,2.5vw,46px)/.75 Duster,sans-serif;letter-spacing:.025em}.ticker{display:flex;align-items:center;justify-content:center;gap:38px;overflow:hidden;white-space:nowrap;background:var(--cyan);padding:17px 0;font-size:13px;letter-spacing:.07em}.ticker span:nth-child(2){font-size:30px;line-height:1;color:var(--orange)}.section-top{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:65px}.section-top h2{font-size:clamp(65px,6.7vw,116px)}.section-top>p{font-size:16px;max-width:350px}.lineup-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:center}.artist-card{text-decoration:none;min-width:0}.artist-image{position:relative;overflow:hidden;background:var(--green)}.artist-image img{aspect-ratio:5/4;object-fit:cover;object-position:center 58%;transition:transform .4s}.artist-card:hover img{transform:scale(1.025)}.tag{position:absolute;top:20px;left:20px;background:var(--cyan);padding:10px 14px;font-size:10px}.artist-caption{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px 0 14px}.artist-caption h3{font-size:clamp(30px,3.4vw,60px)}.artist-caption>span{font-size:40px}.artist-card>p{font-size:12px}.next-artists .asterisk{display:block;color:var(--orange);font-size:130px;line-height:.8;margin-bottom:35px}.next-artists h3{font-size:clamp(48px,4.5vw,78px);margin-bottom:24px}.next-artists p{font-size:15px;margin-bottom:30px}.text-link{display:inline-block;text-decoration:none;border-bottom:1px solid;padding-bottom:7px;font-size:13px}.festival{background:var(--green);color:var(--yellow)}.festival-intro{max-width:1000px}.festival-intro h2{font-size:clamp(65px,6.7vw,116px)}.festival-intro>p:last-child{max-width:600px;font-size:18px;margin-top:35px}.activities{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:75px}.activities>div{border-top:1px solid var(--yellow);padding-top:20px}.activities span{display:block;font-size:11px;margin-bottom:25px;color:var(--cyan)}.activities h3{font-size:clamp(28px,2.5vw,46px)}.location{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.location h2{font-size:clamp(60px,5.4vw,98px);margin-bottom:35px}.place{font-family:Dot,serif;font-size:40px;line-height:1;margin-bottom:14px}.location-copy>.button{margin-top:30px}.small-note{font-size:11px;margin-top:25px;max-width:390px}.map-wrap{background:var(--cyan)}.map-wrap iframe{display:block;width:100%;height:480px;border:0}.map-wrap>a{display:block;padding:18px;font-size:12px;text-decoration:none}.faq-home{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;background:var(--cyan)}.faq-home h2{font-size:clamp(58px,5.3vw,94px);margin-bottom:35px}.faq-list details{border-top:1px solid var(--ink)}.faq-list details:last-child{border-bottom:1px solid var(--ink)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 0;font-size:16px;line-height:1.35}summary::-webkit-details-marker{display:none}summary span{font-size:28px;flex-shrink:0}details[open] summary span{transform:rotate(45deg)}.answer{font-size:14px;line-height:1.65;padding:0 35px 25px 0;max-width:800px}.closing{padding:110px 24px;text-align:center;background:var(--yellow);display:flex;flex-direction:column;align-items:center}.closing>p{font-size:12px;margin-bottom:35px}.closing h2{font-size:clamp(55px,8vw,140px);margin-bottom:45px}.closing>span{font-size:11px;margin-top:30px}footer{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px;padding:70px 5% 30px;background:var(--green);color:var(--yellow)}.footer-brand{font:32px Duster,sans-serif;letter-spacing:.025em}.footer-brand span{font:30px Dot,serif;letter-spacing:0}footer>div:not(:first-child){display:flex;flex-direction:column;gap:14px}footer a{font-size:12px;text-decoration:none}footer a:hover{text-decoration:underline}.footer-bottom{grid-column:1/-1;border-top:1px solid;padding-top:25px;font-size:10px;margin-top:20px}.artist-page{padding-top:50px}.artist-page-title{padding:70px 0 60px}.artist-page-title h1{font-size:clamp(55px,9vw,155px);margin-bottom:35px}.artist-page-title>p:last-child{font-size:13px}.artist-detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.artist-detail-grid figure img{aspect-ratio:1;object-fit:cover}.artist-detail-grid h2{font-size:clamp(45px,4.3vw,78px);margin-bottom:30px}.artist-detail-grid p{font-size:16px}.artist-detail-grid dl{margin:35px 0}.artist-detail-grid dl div{padding:15px 0;border-top:1px solid}.artist-detail-grid dt{font-size:10px;margin-bottom:8px}.artist-detail-grid dd{margin:0;font-size:13px}.poster-link{display:block;width:max-content;margin-top:25px}.artist-bottom{padding:80px 5%;background:var(--cyan);text-align:center}.artist-bottom h2{font-size:clamp(48px,5vw,90px);margin-bottom:35px}.help-intro h1{font-size:clamp(50px,6.5vw,110px);margin-bottom:40px}.help-intro>p:not(.eyebrow){max-width:760px;font-size:17px}.help-links{display:flex;gap:35px;margin-top:45px;flex-wrap:wrap}.help-links a{font-size:13px}.help-faq{padding-top:0;max-width:1200px}.help-faq h2{font-size:clamp(48px,5vw,85px);margin-bottom:45px}.support{background:var(--cyan)}.support h2{font-size:clamp(45px,5vw,85px);margin-bottom:30px}.support p{max-width:740px}.support>div{display:flex;gap:30px;align-items:center;margin-top:35px;flex-wrap:wrap}
@media(max-width:1000px){.header nav{gap:18px}.section{padding:75px 5%}.hero-frame{aspect-ratio:2/1}.hero-content{inset:22% 13% 17%}.hero-content .eyebrow{margin-bottom:15px}.hero h1{font-size:10vw}.hero-dot{font-size:4vw;margin-top:16px}.hero-date{gap:22px;margin-top:20px}.hero-date .button{padding:12px 16px;font-size:11px}.lineup-grid{gap:45px}.activities{grid-template-columns:1fr 1fr;gap:40px}.location,.faq-home,.artist-detail-grid{gap:45px}.map-wrap iframe{height:400px}.artist-caption h3{font-size:34px}}
@media(max-width:700px){.header{padding:20px 16px;gap:15px;flex-wrap:wrap}.brand{font-size:23px}.header>.button{margin-left:auto}.menu-toggle{display:block}.header nav{display:none;order:4;width:100%;padding:18px 0 5px;flex-wrap:wrap;gap:20px}.header.menu-open nav{display:flex}.hero-frame{aspect-ratio:6/5}.hero-content{inset:27% 14% 17%}.hero h1{font-size:10vw}.hero-content .eyebrow{font-size:8px;margin-bottom:12px}.hero-dot{font-size:7vw;margin-top:10px}.hero-date{flex-direction:column;gap:12px;margin-top:14px}.hero-date strong{font-size:5.7vw}.hero-date .button{padding:9px 12px;font-size:9px}.hero{padding-bottom:12px}.ticker{justify-content:flex-start;font-size:10px;padding:12px 16px;gap:20px}.section{padding:60px 20px}.eyebrow{font-size:10px;margin-bottom:22px}.section-top{display:block;margin-bottom:35px}.section-top>p{margin-top:25px;font-size:13px}.section-top h2,.festival-intro h2{font-size:clamp(58px,12vw,82px)}.lineup-grid{grid-template-columns:1fr;gap:50px}.artist-caption h3{font-size:36px}.artist-caption{padding:22px 0 10px}.tag{top:12px;left:12px;font-size:8px;padding:8px 10px}.next-artists{position:relative;padding-right:70px}.next-artists .asterisk{position:absolute;right:0;top:5px;font-size:75px}.next-artists h3{font-size:52px}.next-artists p{font-size:13px}.festival-intro>p:last-child{font-size:15px;margin-top:25px}.activities{gap:35px 20px;margin-top:45px}.activities h3{font-size:32px}.activities span{margin-bottom:18px}.location,.faq-home,.artist-detail-grid{grid-template-columns:1fr;gap:35px}.location h2,.faq-home h2{font-size:60px}.place{font-size:34px}.location-copy>p{font-size:13px}.map-wrap iframe{height:350px}.faq-home h2{margin-bottom:25px}summary{font-size:14px;padding:20px 0}.answer{font-size:12px;padding-right:15px}.closing{padding:70px 20px}.closing h2{font-size:14vw;margin-bottom:35px}.closing>p{font-size:10px}footer{grid-template-columns:1fr 1fr;padding:50px 20px 25px;gap:35px}.footer-brand{grid-column:1/-1;font-size:29px}.footer-brand span{font-size:28px}.footer-bottom{font-size:9px}.artist-page{padding-top:30px}.artist-page-title{padding:50px 0 35px}.artist-page-title h1{font-size:12vw;margin-bottom:25px}.artist-page-title>p:last-child{font-size:11px}.artist-detail-grid h2{font-size:55px}.artist-detail-grid p{font-size:14px}.artist-bottom{padding:60px 20px}.artist-bottom h2{font-size:52px}.help-intro h1{font-size:11vw;line-height:.76}.help-intro>p:not(.eyebrow){font-size:14px}.help-links{gap:20px;margin-top:30px}.help-links a{font-size:12px}.help-faq{padding-top:0}.help-faq h2,.support h2{font-size:52px}.support p{font-size:14px}.button{font-size:12px;padding:15px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Gráficos vectoriales originales: relieve trazado, sin depender de fuentes. */
.brand-with-logo{display:block;width:150px;flex-shrink:0}.brand-with-logo img{width:100%;height:auto}.header{padding-block:12px}
.hero-logo{width:min(42vw,610px);line-height:0}.hero-logo img{width:100%;height:auto}.hero-date-graphic{width:min(28vw,360px);height:auto}.hero-content .eyebrow{margin-bottom:14px}.hero-date{margin-top:12px;gap:35px}
.lineup-label{width:290px;max-width:65%;height:auto;margin-bottom:30px}.artist-name-graphic{width:90%;line-height:0}.artist-name-graphic img{width:100%;height:auto}.family-graphic{width:min(620px,72%);line-height:0}.family-graphic img{width:100%;height:auto}
.artist-page-graphic{width:min(1050px,100%);line-height:0}.artist-page-graphic img{width:100%;height:auto}
.icon{width:32px;height:32px;object-fit:contain;flex-shrink:0}.button .icon{width:25px;height:25px}.activities>div{position:relative}.activity-icon{width:74px;height:74px;box-sizing:content-box;background:var(--yellow);padding:9px;margin-bottom:25px}.location-icon{width:85px;height:85px;margin-bottom:25px}.question-label{display:flex;align-items:center;gap:14px}.question-label .icon{width:42px;height:42px}.faq-list summary .question-label{font-size:inherit;flex-shrink:1}details[open] summary .question-label{transform:none}
.closing h2{font-family:Dot,serif;font-size:clamp(75px,8vw,140px);line-height:.76;letter-spacing:0}
.next-artists h3,.activities h3,.program-statement,.footer-brand span{line-height:.78}
@media(max-width:1000px){.hero-logo{width:43vw}.hero-date-graphic{width:27vw}.hero-date{gap:25px;margin-top:10px}.header{gap:20px}.header nav{gap:17px}}
@media(max-width:700px){.brand-with-logo{width:125px}.header{padding-block:10px}.hero-logo{width:55vw}.hero-content{inset:24% 14% 16%}.hero-content .eyebrow{margin-bottom:8px}.hero-date{gap:10px;margin-top:10px}.hero-date-graphic{width:39vw}.hero-date .button{font-size:9px;padding:8px 12px}.lineup-label{width:230px;margin-bottom:25px}.family-graphic{width:90%}.activity-icon{width:58px;height:58px;margin-bottom:20px}.location-icon{width:65px;height:65px}.artist-name-graphic{width:90%}.closing h2{font-size:20vw}.question-label .icon{width:32px;height:32px}}

/* Jerarquía: Duster grande, Dot Gain secundaria, DM Mono para lectura. */
.section-top h2,.location h2,.faq-home h2,.help-faq h2,.support h2,.artist-bottom h2{font-family:Duster,sans-serif;font-size:clamp(58px,5.8vw,100px);font-weight:400;line-height:.68;letter-spacing:.025em;text-transform:uppercase}
.next-artists h3{font-size:clamp(44px,3.8vw,66px);line-height:.64}.activities h3{font-size:clamp(30px,2.8vw,46px);line-height:.64}.artist-detail-grid h2{font-size:clamp(42px,3.8vw,64px);line-height:.64}.place{font-size:42px;line-height:.65}.footer-brand span{line-height:.65}
.closing h2{font-family:Duster,sans-serif;font-size:clamp(64px,7.7vw,132px);line-height:.68;letter-spacing:.025em;text-transform:uppercase}
.activity-icon{width:125px;height:125px;padding:0;background:transparent;margin-bottom:32px;box-sizing:border-box}.location-icon{width:115px;height:115px;background:transparent}.button .icon{width:36px;height:36px;background:transparent}.question-label .icon{width:58px;height:58px;background:transparent}
@media(max-width:700px){.section-top h2,.location h2,.faq-home h2,.help-faq h2,.support h2,.artist-bottom h2{font-size:clamp(44px,10.4vw,65px);line-height:.68}.next-artists h3{font-size:46px;line-height:.64}.activities h3{font-size:32px;line-height:.64}.artist-detail-grid h2{font-size:46px;line-height:.64}.closing h2{font-size:12vw;line-height:.68}.activity-icon{width:96px;height:96px;padding:0;background:transparent;margin-bottom:25px}.location-icon{width:95px;height:95px}.button .icon{width:30px;height:30px}.question-label .icon{width:45px;height:45px}}

/* Relieve de todos los titulares Duster; los rótulos SVG ya incorporan el suyo. */
.section-top h2,.location h2,.faq-home h2,.help-faq h2,.support h2,.artist-bottom h2,.closing h2,.help-intro h1,.footer-brand{color:#fff;-webkit-text-stroke:.025em #000;paint-order:stroke fill;text-shadow:-0.009em 0.009em 0 #000,-0.018em 0.018em 0 #000,-0.027em 0.027em 0 #000,-0.036em 0.036em 0 #000,-0.045em 0.045em 0 #000,-0.054em 0.054em 0 #000,-0.063em 0.063em 0 #000,-0.072em 0.072em 0 #000,-0.081em 0.081em 0 #000,-0.090em 0.090em 0 #000,-0.099em 0.099em 0 #000,-0.108em 0.108em 0 #000,-0.117em 0.117em 0 #000,-0.126em 0.126em 0 #000,-0.135em 0.135em 0 #000;padding-bottom:.14em}
.footer-brand span{display:inline-block;color:var(--yellow);-webkit-text-stroke:0;text-shadow:none;margin-top:12px}
/* Cabecera compuesta como un cartel horizontal. */
.hero-frame{position:relative;isolation:isolate}.hero-content{inset:17% 10% 13%;justify-content:center;gap:18px}.hero-poster-layout{display:grid;grid-template-columns:.25fr .5fr .25fr;align-items:center;gap:2.5%;width:100%}.hero-core{display:flex;align-items:center;flex-direction:column;gap:12px;min-width:0}.hero-logo{width:100%;max-width:640px;margin:0}.hero-date-graphic{width:60%;max-width:345px}.hero-side{width:100%;padding-top:35px}.hero-place{transform:rotate(-3deg)}.hero-family{transform:rotate(3deg)}.hero-ticket{margin-top:0}
/* Botones geométricos con doble contorno, como los marcos de los carteles. */
.button,.button.small{background:transparent url('assets/boton-cian.svg') center/100% 100% no-repeat;border:0;border-radius:0;min-height:59px;padding:17px 29px;color:var(--ink);filter:drop-shadow(-3px 4px 0 #070707);gap:16px}.button.orange{background:transparent url('assets/boton-naranja.svg') center/100% 100% no-repeat;color:#141414}.button.small{min-height:47px;padding:12px 23px}.button:hover{transform:translateY(-2px);filter:drop-shadow(-4px 6px 0 #070707)}
/* Foto del entorno de los recursos originales de Canteras 2026. */
.location-photo{background:linear-gradient(90deg,rgba(244,214,0,.88),rgba(244,214,0,.64) 48%,rgba(41,143,0,.12)),url('assets/entorno-canteras.webp') center 52%/cover no-repeat}.location-photo .location-copy{position:relative}.map-wrap{box-shadow:-7px 8px 0 var(--green)}
/* Parallax exterior y flotación interior se animan de forma independiente. */
.motion-section{position:relative;isolation:isolate;overflow:hidden}.motion-section>*:not(.parallax-decor){position:relative;z-index:1}.parallax-decor{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);pointer-events:none;z-index:2;transform:translate3d(-50%,calc(-50% + var(--scroll-shift,0px)),0);will-change:transform}.float-shape{display:block;width:100%;height:100%;animation:canteras-float 11s ease-in-out infinite;animation-delay:var(--delay);will-change:transform}.ball .float-shape{border-radius:50%;background:var(--orange);border:3px solid var(--cyan)}.flower img{height:100%;width:100%;object-fit:contain}.flower .float-shape{animation-name:canteras-flower;animation-duration:16s}
@keyframes canteras-float{0%,100%{transform:translateY(-6px)}50%{transform:translateY(6px)}}@keyframes canteras-flower{0%,100%{transform:translateY(-6px) rotate(-7deg)}50%{transform:translateY(6px) rotate(7deg)}}
@media(max-width:1000px) and (min-width:701px){.hero-frame{aspect-ratio:12/5}.hero-content{inset:17% 10% 13%;gap:10px}.hero-logo{width:100%}.hero-date-graphic{width:60%}.hero-side{padding-top:15px}.hero-ticket.button{min-height:45px;padding:10px 22px;font-size:11px}.parallax-decor{width:calc(var(--size)*.7);height:calc(var(--size)*.7)}}
@media(max-width:700px){.hero-frame{aspect-ratio:4/5}.hero-content{inset:22% 15% 15%;gap:16px}.hero-poster-layout{grid-template-columns:1fr 1fr;gap:18px 15px}.hero-core{grid-column:1/-1;grid-row:1;gap:10px}.hero-logo{width:100%;max-width:440px}.hero-date-graphic{width:58%}.hero-side{grid-row:2;padding-top:0}.hero-side img{width:100%;max-height:90px;object-fit:contain}.hero-ticket.button{font-size:10px;min-height:44px;padding:11px 22px}.hero-ticket .icon{width:24px;height:24px}.hero .parallax-decor{width:calc(var(--size)*.48);height:calc(var(--size)*.48)}.parallax-decor{width:calc(var(--size)*.6);height:calc(var(--size)*.6)}.festival .parallax-decor{opacity:.75;left:95%}.closing .parallax-decor{left:calc(var(--x) + 2%)}.button,.button.small{min-height:50px;padding:14px 25px}.button.small{min-height:43px;font-size:11px;padding:11px 19px}.location-photo{background:linear-gradient(rgba(244,214,0,.82),rgba(244,214,0,.7)),url('assets/entorno-canteras.webp') center/cover no-repeat}}
@media(prefers-reduced-motion:reduce){.float-shape{animation:none!important}.parallax-decor{will-change:auto;transform:translate(-50%,-50%)!important}}

.festival>.parallax-decor,.closing>.parallax-decor{z-index:0}

/* Ajuste de composición y movimiento. */
.hero-place,.hero-family{transform:none}
.hero-date-graphic{width:82%;max-width:440px}
.parallax-decor.ball{--size:86px!important}
.float-shape{animation-duration:7s}
.flower .float-shape{animation-duration:10s}
@keyframes canteras-float{0%,100%{transform:translateY(-16px)}50%{transform:translateY(16px)}}
@keyframes canteras-flower{0%,100%{transform:translateY(-15px) rotate(-16deg)}50%{transform:translateY(15px) rotate(16deg)}}
@media(max-width:1000px) and (min-width:701px){.hero-date-graphic{width:82%}.parallax-decor.ball{width:65px;height:65px}}
@media(max-width:700px){.hero-date-graphic{width:76%}.parallax-decor.ball,.hero .parallax-decor.ball{width:52px;height:52px}.hero-place,.hero-family{transform:none}}

/* Mayor presencia de los nombres de las actividades. */
.activities h3{font-size:clamp(45px,4.1vw,70px);line-height:.68}
.activities span{font-size:13px;margin-bottom:27px}
@media(max-width:1000px){.activities h3{font-size:clamp(42px,5.2vw,58px)}}
@media(max-width:700px){.activities h3{font-size:clamp(34px,7.7vw,48px);line-height:.68}.activities span{font-size:11px;margin-bottom:22px}}

/* Marca centrada y visible durante todo el recorrido. */
.header{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:84px}
.header .brand{grid-column:2;grid-row:1;justify-self:center;width:145px}
.header nav{grid-column:1;grid-row:1;justify-self:start;gap:20px}
.header>.button{grid-column:3;grid-row:1;justify-self:end}
.header .menu-toggle{grid-column:1;grid-row:1;justify-self:start}
/* La fecha encabeza las actividades, sustituyendo el logo del banner. */
.hero-content{inset:15% 9% 10%;gap:12px}.hero-poster-layout{grid-template-columns:.24fr .52fr .24fr;gap:2%}.hero-core{gap:10px}.hero-date-graphic{width:63%;max-width:360px}.hero-activities{width:94%;max-width:600px;margin:0;line-height:0}.hero-activities img{width:100%;height:auto}.hero-side{padding-top:0}
/* Diez círculos persistentes en los bordes, sin superficie de interacción. */
.persistent-decorations{position:fixed;inset:0;z-index:15;pointer-events:none;overflow:hidden}.persistent-decor{--size:86px!important;position:absolute;top:var(--y);width:86px;height:86px}.persistent-decor.rail-left{left:1.6%}.persistent-decor.rail-right{left:98.4%}.persistent-decor .float-shape{animation-duration:8s}
@media(max-width:1000px) and (min-width:701px){.header{gap:14px}.header nav{gap:12px;font-size:11px}.header .brand{width:125px}.persistent-decor{width:65px!important;height:65px!important}.hero-content{inset:15% 9% 10%;gap:10px}.hero-activities{width:94%}.hero-date-graphic{width:63%}}
@media(max-width:700px){.header{padding:9px 16px;gap:10px;min-height:75px}.header .brand{width:115px}.header>.button{margin:0;padding:10px 17px;font-size:10px;min-height:41px}.header .menu-toggle{display:block}.header nav{grid-column:1/-1;grid-row:2;justify-self:stretch;display:none;padding:16px 0 8px;gap:23px}.header.menu-open nav{display:flex}.hero-content{inset:22% 13% 13%;gap:12px}.hero-poster-layout{grid-template-columns:1fr 1fr;gap:13px}.hero-core{grid-column:1/-1;grid-row:1;gap:10px}.hero-activities{width:100%}.hero-date-graphic{width:59%}.hero-side{grid-row:2}.hero-side img{max-height:60px}.parallax-decor.ball,.hero .parallax-decor.ball{width:44px;height:44px}.persistent-decor{width:44px!important;height:44px!important}.persistent-decor.rail-left{left:-8px}.persistent-decor.rail-right{left:calc(100% + 8px)}}

@media(max-width:1000px) and (min-width:701px){.hero-activities{width:90%}.hero-date-graphic{width:58%}}
@media(max-width:700px){.hero-frame{aspect-ratio:3/4}}

/* Composición final y escala coherente del relieve. */
.header .brand{width:230px}.header{min-height:110px}
.hero-frame{max-width:1600px;margin-inline:auto}
.hero-content{inset:14% 10% 10%;gap:18px;justify-content:center}
.hero-poster-layout{display:flex;flex-direction:column;gap:20px;width:100%}
.hero-meta-row{display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;gap:7%;width:100%;max-width:1100px}
.hero-meta-row .hero-side{max-width:245px;justify-self:center;padding:0;transform:none}
.hero-meta-row .hero-date-graphic{width:100%;max-width:430px;justify-self:center}
.hero-activities{width:58%;max-width:650px}
.button,.button.small,.hero-ticket.button{font-family:Dot,serif;font-weight:400;font-size:34px;line-height:.9;letter-spacing:.01em;min-height:76px;padding:22px 35px;gap:18px;filter:drop-shadow(-4px 5px 0 #000);transition:transform .2s,filter .2s}
.button.small{font-size:29px;min-height:61px;padding:18px 28px}
.button:hover{transform:translate(2px,-3px);filter:drop-shadow(-7px 8px 0 #000)}
.button:active{transform:translate(-2px,2px);filter:drop-shadow(-1px 2px 0 #000)}
.button .icon{width:32px;height:32px}
.persistent-decorations .parallax-decor{left:0;top:0;will-change:transform;transform:none}
.persistent-decorations .float-shape{animation:none;will-change:transform}

.section-top h2,.location h2,.faq-home h2,.help-faq h2,.support h2,.artist-bottom h2,.closing h2,.help-intro h1,.footer-brand{-webkit-text-stroke:.0197em #000;text-shadow:-0.0049em 0.0049em 0 #000,-0.0099em 0.0099em 0 #000,-0.0148em 0.0148em 0 #000,-0.0198em 0.0198em 0 #000,-0.0247em 0.0247em 0 #000,-0.0296em 0.0296em 0 #000,-0.0346em 0.0346em 0 #000,-0.0395em 0.0395em 0 #000,-0.0444em 0.0444em 0 #000,-0.0494em 0.0494em 0 #000,-0.0543em 0.0543em 0 #000,-0.0592em 0.0592em 0 #000,-0.0642em 0.0642em 0 #000,-0.0691em 0.0691em 0 #000,-0.0741em 0.0741em 0 #000,-0.0790em 0.0790em 0 #000}

@media(max-width:1000px){.header .brand{width:180px}.header{min-height:94px}.hero-content{gap:10px}.hero-poster-layout{gap:12px}.hero-meta-row{gap:4%}.button,.hero-ticket.button{font-size:29px;min-height:62px;padding:18px 28px}.button.small{font-size:25px;min-height:53px}.hero-activities{width:62%}}
@media(max-width:700px){.header .brand{width:150px}.header{min-height:86px}.header>.button{font-size:23px;padding:14px 19px;min-height:49px}.header>.button .icon{display:none}.hero-content{inset:20% 12% 13%;gap:20px}.hero-meta-row{grid-template-columns:1fr 1fr;gap:18px 15px}.hero-meta-row .hero-date-graphic{grid-column:1/-1;grid-row:1;width:83%}.hero-meta-row .hero-side{grid-row:2;width:100%}.hero-side img{max-height:65px}.hero-poster-layout{gap:20px}.hero-activities{width:100%}.button,.hero-ticket.button{font-size:29px;min-height:61px;padding:19px 26px}.button.small{font-size:24px}.hero-ticket .icon{width:26px;height:26px}}

/* Botones con mayor protagonismo tipográfico. */
.button,.button.small,.hero-ticket.button{font-family:Dot,serif;font-size:52px;line-height:.86;min-height:94px;padding:25px 40px;gap:20px}
.button.small{font-size:43px;min-height:78px;padding:22px 32px}
.button .icon{width:39px;height:39px}
@media(max-width:1000px){.button,.hero-ticket.button{font-size:46px;min-height:86px;padding:23px 34px}.button.small{font-size:37px;min-height:70px;padding:20px 28px}}
@media(max-width:700px){.button,.hero-ticket.button{font-size:41px;min-height:78px;padding:22px 28px;gap:14px}.button.small,.header>.button{font-size:32px;min-height:62px;padding:18px 23px}.button .icon{width:32px;height:32px}.hero-ticket .icon{width:29px;height:29px}}

/* Botones compactos: rótulo e icono grandes, sin flecha. */
.button,.button.small,.hero-ticket.button{font-size:66px;line-height:.73;min-height:82px;padding:15px 23px;gap:13px}
.button.small{font-size:52px;min-height:68px;padding:13px 21px}
.button .icon,.hero-ticket .icon{width:51px;height:51px;object-fit:contain}
footer a.footer-ticket{display:inline-flex;align-items:center;gap:10px;width:max-content}
footer .footer-ticket .icon{display:block;width:27px;height:27px;flex:0 0 27px}
.next-artists .asterisk{width:125px;height:125px;font-size:0;line-height:0;margin-bottom:30px;object-fit:contain}
@media(max-width:1000px){.button,.hero-ticket.button{font-size:57px;min-height:76px;padding:14px 22px}.button.small{font-size:45px;min-height:62px}.button .icon,.hero-ticket .icon{width:45px;height:45px}}
@media(max-width:700px){.button,.hero-ticket.button{font-size:49px;min-height:70px;padding:14px 20px;gap:10px}.button.small,.header>.button{font-size:38px;min-height:54px;padding:12px 17px}.button .icon,.hero-ticket .icon{width:39px;height:39px}.next-artists .asterisk{width:65px;height:65px}}

/* Portada entre cuatro líneas rectas: todo el contenido queda dentro. */
.hero{padding:24px 4% 34px;background:var(--green)}
.hero-frame{aspect-ratio:auto;max-width:1500px;background:var(--yellow);border:8px double #111;outline:3px solid var(--cyan);outline-offset:5px}
.hero-frame>picture{display:none}
.hero-content{position:relative;inset:auto;padding:48px 5% 38px;gap:28px}
.hero-poster-layout{gap:30px}
.hero-meta-row{grid-template-columns:1fr 1.5fr 1fr;gap:6%;max-width:1180px}
.hero-meta-row .hero-date-graphic{width:100%;max-width:440px}
.hero-meta-row .hero-side{max-width:260px}
.hero-activities{width:68%;max-width:760px}
@media(max-width:1000px){.hero-content{padding:35px 5% 30px;gap:24px}.hero-poster-layout{gap:25px}.hero-activities{width:75%}}
@media(max-width:700px){.hero{padding:20px 18px 28px}.hero-frame{aspect-ratio:auto;border-width:6px;outline-width:2px;outline-offset:4px}.hero-content{padding:28px 18px;gap:24px}.hero-meta-row{grid-template-columns:1fr 1fr;gap:23px 15px}.hero-meta-row .hero-date-graphic{width:90%;max-width:350px;grid-column:1/-1;grid-row:1}.hero-meta-row .hero-side{grid-row:2}.hero-activities{width:100%}.hero-poster-layout{gap:27px}}

/* Jerarquía del encabezado: marca principal y acceso compacto. */
.header .brand{width:300px}
.header>.button.small{font-size:34px;min-height:52px;padding:12px 20px;gap:9px}
.header>.button.small .icon{width:29px;height:29px}
@media(max-width:1000px){.header .brand{width:230px}.header>.button.small{font-size:30px;min-height:48px;padding:11px 18px}.header nav{gap:10px;font-size:10px}}
@media(max-width:700px){.header .brand{width:185px}.header>.button.small{font-size:26px;min-height:44px;padding:11px 16px}.header{gap:6px;padding-inline:12px}.header>.button.small .icon{display:none}}
@media(max-width:380px){.header .brand{width:160px}.header>.button.small{font-size:24px;padding-inline:14px}}

/* Arco ancho simétrico con hombros escalonados y laterales curvos. */
.hero-frame{background:transparent;border:0;outline:0;max-width:1500px;isolation:isolate}
.hero-frame::before{content:"";position:absolute;inset:0;z-index:-1;background:url('assets/marco-portada-adaptado.svg') center/100% 100% no-repeat;pointer-events:none}
.hero-content{padding:clamp(75px,6.7vw,108px) 10% clamp(78px,6.7vw,108px);gap:25px}
.hero-poster-layout{gap:27px}
.hero-meta-row{gap:5%;grid-template-columns:1fr 1.5fr 1fr;max-width:1060px}
.hero-meta-row .hero-date-graphic{max-width:405px;width:100%}
.hero-meta-row .hero-side{max-width:235px}
.hero-activities{width:67%;max-width:690px}
@media(max-width:1000px){.hero-content{padding:75px 10% 80px;gap:23px}.hero-activities{width:74%}}
@media(max-width:700px){.hero{padding-inline:8px}.hero-content{padding:72px 12% 78px;gap:23px}.hero-meta-row{grid-template-columns:1fr 1fr;gap:21px 15px}.hero-meta-row .hero-date-graphic{width:87%;grid-column:1/-1;grid-row:1}.hero-meta-row .hero-side{grid-row:2}.hero-poster-layout{gap:24px}.hero-activities{width:97%}}

/* Páginas legales */
.legal-page{max-width:1200px;margin:0 auto}.legal-page h1{font-family:Dot,serif;font-size:clamp(54px,8vw,110px);line-height:1;margin-bottom:48px}.legal-copy{max-width:850px}.legal-copy h2{font-family:Mono,monospace;font-size:clamp(19px,2.5vw,25px);font-weight:700;line-height:1.4;margin:42px 0 18px}.legal-copy p{font-size:14px;line-height:1.8;margin:0 0 20px;overflow-wrap:anywhere}.legal-copy a{text-underline-offset:3px}@media(max-width:700px){.legal-copy p{font-size:13px}.legal-page h1{margin-bottom:30px}}

/* Presentación y valores de Canteras */
.festival-story{max-width:850px;margin:32px auto 0;text-align:left}.festival-story p{font-size:16px;line-height:1.75}.festival-story p+p{margin-top:20px}.festival-values{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:55px}.festival-value{position:relative;padding:36px;color:var(--ink);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink)}.value-cyan{background:var(--cyan)}.value-orange{background:var(--orange)}.value-number{display:block;font-size:12px;letter-spacing:.1em;margin-bottom:28px}.festival-value h3{font-size:clamp(38px,4.4vw,66px);line-height:.95;margin-bottom:24px}.festival-value p{font-size:14px;line-height:1.75}.festival-tickets{display:flex;align-items:center;justify-content:space-between;gap:36px;margin-top:46px;padding:36px;border:3px solid var(--ink);background:var(--yellow);color:var(--ink)}.festival-tickets>div{max-width:720px}.festival-tickets .eyebrow{margin-bottom:16px}.festival-tickets h3{font-size:50px;line-height:1;margin-bottom:18px}.festival-tickets p:not(.eyebrow){font-size:14px;line-height:1.75}.festival-tickets>.button{flex-shrink:0}@media(max-width:700px){.festival-story p{font-size:14px}.festival-values{grid-template-columns:1fr;gap:28px;margin-top:36px}.festival-value{padding:26px;box-shadow:5px 5px 0 var(--ink)}.festival-value h3{font-size:44px}.festival-value p,.festival-tickets p:not(.eyebrow){font-size:13px}.festival-tickets{flex-direction:column;align-items:flex-start;padding:26px;gap:24px}.festival-tickets h3{font-size:44px}}

.footer-partners{display:flex;align-items:center;justify-content:flex-start;gap:26px;margin-top:28px}.footer-partners img{display:block;width:auto;height:65px;max-width:42%;object-fit:contain;filter:brightness(0) invert(1)}@media(max-width:700px){.footer-partners{gap:28px;margin-top:24px}.footer-partners img{height:60px}}

/* Equipo y organización */
.about-page{background:var(--yellow)}.about-page h1{font-family:Dot,serif;font-size:clamp(60px,8vw,116px);line-height:.9;margin-bottom:60px}.about-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:65px;align-items:start}.about-emblem{background:var(--cyan);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:55px 35px;text-align:center}.about-emblem img{width:min(100%,270px);height:auto;margin:auto}.about-emblem span{display:block;font:11px/1.7 Mono,monospace;letter-spacing:.06em;margin-top:35px}.about-copy>p{font-size:15px;line-height:1.8;margin-bottom:22px}.about-social{margin-top:38px;padding-top:28px;border-top:2px solid var(--ink)}.about-social .eyebrow{margin-bottom:22px}.about-social>div{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.about-social .text-link{font-size:13px}@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:40px}.about-emblem{max-width:450px;width:100%;padding:36px;margin:0 auto}.about-emblem img{max-width:200px}.about-page h1{margin-bottom:40px}.about-copy>p{font-size:14px}}

.about-photo{margin:0;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}.about-photo img{display:block;width:100%;height:auto}@media(max-width:900px){.about-photo{max-width:550px;margin:0 auto}}

/* Marquesina de entradas: bucle continuo y movimiento reducido */
.ticker-marquee{display:block;padding:17px 0;text-decoration:none;overflow:hidden;white-space:nowrap}.ticker-marquee .ticker-track{display:flex;width:max-content;animation:canteras-marquee 32s linear infinite}.ticker-marquee .ticker-group{display:flex;align-items:center;flex-shrink:0;gap:38px;padding-right:38px}.ticker-marquee .ticker-group>span{font-family:Mono,monospace;font-size:13px;line-height:1.3;color:var(--ink);letter-spacing:.07em}.ticker-marquee .ticker-group>.ticker-star{font-size:30px;line-height:1;color:var(--orange)}.ticker-marquee:hover .ticker-track,.ticker-marquee:focus-visible .ticker-track{animation-play-state:paused}.ticker-marquee:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}@keyframes canteras-marquee{to{transform:translateX(-50%)}}@media(max-width:700px){.ticker-marquee{padding:12px 0}.ticker-marquee .ticker-group{gap:24px;padding-right:24px}.ticker-marquee .ticker-group>span{font-size:11px}.ticker-marquee .ticker-group>.ticker-star{font-size:24px}}@media(prefers-reduced-motion:reduce){.ticker-marquee{white-space:normal}.ticker-marquee .ticker-track{animation:none;width:100%}.ticker-marquee .ticker-group{width:100%;justify-content:center;flex-wrap:wrap;padding:0 16px;gap:12px 20px}.ticker-marquee .ticker-group+.ticker-group{display:none}}
