*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-secondary);overflow-x:hidden;min-height:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font-family:var(--font-secondary)}::selection{background:color-mix(in srgb,var(--primary) 60%,transparent);color:var(--text)}
:root{--surface:color-mix(in srgb,var(--text) 7%,var(--bg));--surface-2:color-mix(in srgb,var(--text) 11%,var(--bg));--line:color-mix(in srgb,var(--text) 18%,transparent);--muted:color-mix(in srgb,var(--text) 68%,transparent);--shadow:color-mix(in srgb,var(--bg) 72%,#000 28%)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 78%,transparent),var(--bg));z-index:-3}.ambient{position:fixed;width:46vw;height:46vw;border-radius:50%;filter:blur(90px);opacity:.14;pointer-events:none;z-index:-2;will-change:transform}.ambient-a{left:-16vw;top:4vh;background:var(--primary);animation:ambientFloatA 16s ease-in-out infinite alternate}.ambient-b{right:-18vw;top:40vh;background:var(--secondary);animation:ambientFloatB 19s ease-in-out infinite alternate}@keyframes ambientFloatA{to{transform:translate(12vw,18vh) scale(1.14)}}@keyframes ambientFloatB{to{transform:translate(-9vw,-13vh) scale(.92)}}
.shell{width:min(1120px,90vw);margin:auto}.center{text-align:center}.kicker,.eyebrow{font-family:var(--font-secondary);text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;font-weight:800;color:var(--secondary)}h1,h2,.dress-code,.hashtag,.intro p,.timeline strong,footer strong{font-family:var(--font-primary)}p{color:var(--muted)}
.hero{min-height:100svh;position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;background:var(--bg)}.hero-media{position:absolute;inset:-5%;will-change:transform}.hero-bg{width:100%;height:100%;object-fit:cover;transform:scale(1.045);animation:heroBreath 14s ease-in-out infinite alternate}@keyframes heroBreath{to{transform:scale(1.105)}}.overlay{position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 32%,transparent),color-mix(in srgb,var(--bg) 58%,transparent) 56%,var(--bg) 100%)}.hero-grain{position:absolute;inset:0;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.hero-content{position:relative;z-index:2;padding:42px 20px;max-width:1000px}.eyebrow{display:inline-flex;padding:9px 14px;border:1px solid color-mix(in srgb,var(--secondary) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 46%,transparent);backdrop-filter:blur(12px)}h1{font-size:clamp(4.7rem,16vw,10.5rem);line-height:.78;margin:.19em 0 .12em;color:var(--text);letter-spacing:-.045em;text-wrap:balance;text-shadow:0 14px 55px var(--shadow)}.hero-name{width:100%;max-width:100%;margin-inline:auto;padding-inline:0;overflow-wrap:normal;word-break:keep-all;hyphens:none;text-align:center}.hero-name span{display:block;white-space:nowrap}.hero-name--short{font-size:clamp(4.6rem,16vw,10.5rem)}.hero-name--long{font-size:clamp(3.65rem,12.6vw,8rem);letter-spacing:-.04em}.hero-name--xlong{font-size:clamp(3.05rem,10.2vw,6.7rem);letter-spacing:-.035em}.hero-name--xxlong{font-size:clamp(2.45rem,8.2vw,5.4rem);letter-spacing:-.025em}.hero-name--multiline{line-height:.84;margin-top:.22em;margin-bottom:.18em}.hero-name--multiline span+span{margin-top:.06em}h2{font-size:clamp(2.75rem,7vw,5.5rem);line-height:.94;margin:.18em 0 .45em;letter-spacing:-.025em;color:var(--text)}.tagline{font-family:var(--font-primary);font-style:italic;font-size:clamp(1.35rem,3vw,2.05rem);color:color-mix(in srgb,var(--text) 88%,transparent)}.hero-date{display:inline-flex;align-items:center;justify-content:center;gap:12px;margin-top:18px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--text) 22%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 36%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 12%,transparent),0 12px 34px color-mix(in srgb,var(--bg) 30%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-family:var(--font-secondary);font-size:.76rem;font-weight:800;line-height:1.2;letter-spacing:.105em;text-transform:uppercase;color:color-mix(in srgb,var(--text) 94%,transparent)}.hero-date__date,.hero-date__time{white-space:nowrap}.hero-date__time{color:var(--secondary)}.hero-date__sep{width:4px;height:4px;border-radius:50%;background:var(--secondary);box-shadow:0 0 12px color-mix(in srgb,var(--secondary) 65%,transparent);flex:none}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}.scroll-cue{position:absolute;bottom:25px;z-index:3;width:34px;height:54px;border:1px solid color-mix(in srgb,var(--text) 38%,transparent);border-radius:18px}.scroll-cue span{position:absolute;width:4px;height:8px;border-radius:4px;background:var(--secondary);left:50%;top:10px;transform:translateX(-50%);animation:scrollDot 1.7s ease-in-out infinite}@keyframes scrollDot{0%{opacity:0;transform:translate(-50%,0)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,20px)}}
.btn{display:inline-flex;align-items:center;justify-content:center;appearance:none;border:0;border-radius:999px;background:linear-gradient(120deg,var(--primary),color-mix(in srgb,var(--secondary) 88%,var(--primary)));color:color-mix(in srgb,var(--bg) 92%,#000);text-decoration:none;padding:14px 25px;font-weight:900;cursor:pointer;box-shadow:0 12px 34px color-mix(in srgb,var(--primary) 26%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 35%,transparent);transition:transform .24s ease,filter .24s ease,box-shadow .24s ease}.btn:hover{transform:translateY(-2px);filter:saturate(1.08) brightness(1.04);box-shadow:0 18px 40px color-mix(in srgb,var(--primary) 31%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 42%,transparent)}.btn:active{transform:translateY(0) scale(.985)}.btn.ghost{background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text);border:1px solid var(--line);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 8%,transparent);backdrop-filter:blur(14px)}
.intro{padding:94px 0 116px;text-align:center;position:relative}.intro p{font-size:clamp(1.65rem,4vw,2.85rem);line-height:1.16;max-width:880px;margin:0 auto;color:var(--text);text-wrap:balance}.spark{width:100%;max-height:22px;object-fit:cover;margin-bottom:40px;opacity:.78;mix-blend-mode:screen}.band{padding:70px 0;background:url('../media/decor/bokeh-rosa.webp') center/cover fixed;position:relative;isolation:isolate}.band:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,color-mix(in srgb,var(--bg) 88%,transparent),color-mix(in srgb,var(--bg) 68%,transparent));z-index:-1}.band .shell{position:relative}.counter{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}.counter div,.glass-mini{background:linear-gradient(145deg,color-mix(in srgb,var(--text) 10%,transparent),color-mix(in srgb,var(--text) 4%,transparent));backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border:1px solid var(--line);box-shadow:0 18px 50px color-mix(in srgb,var(--bg) 50%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 10%,transparent)}.counter div{padding:24px 10px;text-align:center;border-radius:22px}.counter b{display:block;font-family:var(--font-primary);font-size:clamp(2.6rem,7vw,5.2rem);line-height:1;color:var(--text)}.counter small{text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}
.section,.gallery-section{padding:110px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center;padding:110px 0}.grid p,.section p,.social p{font-size:1.08rem;line-height:1.85;color:var(--muted)}
.photo-glass{position:relative;overflow:hidden;border-radius:30px;padding:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--text) 18%,transparent),color-mix(in srgb,var(--text) 5%,transparent));border:1px solid color-mix(in srgb,var(--text) 22%,transparent);box-shadow:0 30px 90px var(--shadow),inset 0 1px 0 color-mix(in srgb,#fff 22%,transparent);backdrop-filter:blur(18px) saturate(1.18);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0));transition:transform .38s cubic-bezier(.2,.7,.2,1),box-shadow .38s ease,border-color .38s ease;will-change:transform}.photo-glass:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(125deg,color-mix(in srgb,#fff 16%,transparent),transparent 28%,transparent 70%,color-mix(in srgb,var(--primary) 11%,transparent));border-radius:inherit}.photo-glass img{display:block;width:100%;height:100%;object-fit:cover;border-radius:22px;filter:saturate(1.02) contrast(1.015);transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .4s ease}.photo-glass:hover{border-color:color-mix(in srgb,var(--primary) 34%,var(--line));box-shadow:0 38px 110px var(--shadow),0 0 42px color-mix(in srgb,var(--primary) 12%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 30%,transparent)}.photo-glass:hover img{transform:scale(1.035);filter:saturate(1.06) contrast(1.02)}.photo-glass--portrait{aspect-ratio:4/5}.glass-shine{position:absolute;inset:-30%;z-index:3;pointer-events:none;background:linear-gradient(110deg,transparent 38%,color-mix(in srgb,#fff 18%,transparent) 48%,transparent 58%);transform:translateX(-58%) rotate(7deg);transition:transform .9s cubic-bezier(.2,.7,.2,1)}.photo-glass:hover .glass-shine{transform:translateX(58%) rotate(7deg)}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.timeline article{padding:26px 19px;border-radius:18px;position:relative;overflow:hidden;transition:transform .25s ease,border-color .25s ease}.timeline article:after{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--primary),var(--secondary))}.timeline article:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--secondary) 42%,transparent)}.timeline time{display:block;color:var(--secondary);font-weight:900;margin-bottom:11px}.timeline strong{font-size:1.5rem;color:var(--text)}
.gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:285px;gap:15px}.gallery-card{margin:0;opacity:0;translate:0 20px;animation:galleryIn .75s ease forwards;animation-delay:var(--delay)}.gallery-card:first-child{grid-row:span 2}@keyframes galleryIn{to{opacity:1;translate:0 0}}
.card-section{padding:82px 0}.glass,.glass-premium{position:relative;background:linear-gradient(145deg,color-mix(in srgb,var(--text) 10%,transparent),color-mix(in srgb,var(--text) 4%,transparent));border:1px solid var(--line);backdrop-filter:blur(24px) saturate(1.18);-webkit-backdrop-filter:blur(24px) saturate(1.18);border-radius:30px;padding:clamp(30px,5vw,58px);box-shadow:0 26px 85px color-mix(in srgb,var(--bg) 58%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}.glass:before,.glass-premium:before{content:"";position:absolute;width:240px;height:240px;right:-100px;top:-120px;border-radius:50%;background:var(--primary);filter:blur(65px);opacity:.09;pointer-events:none}.premium-card{transition:transform .28s ease,border-color .28s ease}.premium-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--secondary) 34%,var(--line))}.glass h3{font-size:1.4rem;margin-bottom:8px;color:var(--text)}.dress-code{font-size:clamp(3.1rem,9vw,7.2rem);color:var(--primary);line-height:1}.swatches{display:flex;gap:12px;justify-content:center;margin-top:26px}.swatches i{width:40px;height:40px;border-radius:50%;border:2px solid color-mix(in srgb,var(--text) 24%,transparent);box-shadow:0 8px 25px var(--shadow)}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:55px 0 108px}.bank{display:grid;gap:5px}.bank small{margin-top:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.bank b{color:var(--text)}.copy{margin-top:19px;align-self:start;width:max-content;background:transparent;color:var(--secondary);border:0;padding:0;cursor:pointer;font-weight:900}.social{padding:96px 0}.hashtag{display:inline-block;font-size:clamp(2.55rem,8vw,6rem);color:var(--primary);text-decoration:none;transition:letter-spacing .28s ease,text-shadow .28s ease}.hashtag:hover{letter-spacing:.02em;text-shadow:0 0 35px color-mix(in srgb,var(--primary) 28%,transparent)}
.rsvp{padding:116px 0;background:url('../media/decor/bolas-noche.webp') center/cover;position:relative;isolation:isolate}.rsvp:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 36%,transparent),color-mix(in srgb,var(--bg) 80%,transparent));z-index:-1}.rsvp>.shell{position:relative}.rsvp-box{max-width:760px;margin:auto}.rsvp-box>p{margin:0 0 26px;color:var(--muted);font-size:1rem}.rsvp form{display:grid;gap:18px}.rsvp form>label{display:grid;gap:8px;margin:0;font-weight:800;font-size:1rem;color:var(--text)}.rsvp input:not([type=radio]):not([type=checkbox]),.rsvp textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);outline:0;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);padding:15px 16px;border-radius:15px;font:inherit;font-weight:500;line-height:1.35;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--text) 5%,transparent);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}.rsvp input:not([type=radio]):not([type=checkbox]){height:54px}.rsvp textarea{min-height:112px;resize:vertical}.rsvp input::placeholder,.rsvp textarea::placeholder{color:color-mix(in srgb,var(--text) 44%,transparent)}.rsvp input:not([type=radio]):not([type=checkbox]):hover,.rsvp textarea:hover{border-color:color-mix(in srgb,var(--text) 28%,transparent);background:color-mix(in srgb,var(--text) 8%,transparent)}.rsvp input:not([type=radio]):not([type=checkbox]):focus,.rsvp textarea:focus{border-color:color-mix(in srgb,var(--primary) 74%,var(--text));background:color-mix(in srgb,var(--text) 9%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 15%,transparent),0 12px 28px var(--shadow)}.choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.choice label{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:13px 16px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--text) 6%,transparent);font-weight:800;cursor:pointer;user-select:none;transition:.22s ease}.choice label:hover{background:color-mix(in srgb,var(--text) 9%,transparent);transform:translateY(-1px)}.choice label:has(input:checked){border-color:color-mix(in srgb,var(--primary) 72%,var(--text));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,transparent),color-mix(in srgb,var(--secondary) 10%,transparent));box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.choice input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;border-radius:50%;border:2px solid color-mix(in srgb,var(--text) 76%,transparent);background:transparent;display:grid;place-items:center}.choice input[type=radio]:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary);transform:scale(0);transition:transform .16s ease}.choice input[type=radio]:checked:before{transform:scale(1)}.rsvp form>.btn{width:100%;min-height:54px;margin-top:2px;font-size:.95rem}.form-msg{min-height:0;margin-top:-4px;font-weight:800;text-align:center;color:var(--secondary)}.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}footer{padding:55px 0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,var(--text) 2%)}footer strong{font-size:1.6rem;color:var(--text)}footer p{margin-bottom:0}
.music-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:22px;opacity:1;visibility:visible;transition:opacity .45s ease,visibility .45s ease}.music-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.music-gate__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 78%,#000 22%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.music-gate__card{position:relative;width:min(560px,94vw);text-align:center;padding:clamp(32px,7vw,58px);border-radius:34px;background:linear-gradient(145deg,color-mix(in srgb,var(--text) 12%,var(--bg)),color-mix(in srgb,var(--text) 5%,var(--bg)));border:1px solid var(--line);box-shadow:0 40px 130px color-mix(in srgb,var(--bg) 72%,#000);overflow:hidden}.music-gate__card:before{content:"";position:absolute;inset:-50% 40% 50% -20%;background:var(--primary);filter:blur(80px);opacity:.16}.music-gate__card>*{position:relative}.music-gate__disc{width:84px;height:84px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary),var(--secondary),var(--primary));box-shadow:0 0 0 10px color-mix(in srgb,var(--text) 5%,transparent),0 18px 50px color-mix(in srgb,var(--primary) 22%,transparent);animation:discSpin 8s linear infinite}.music-gate__disc:after{content:"";width:26px;height:26px;border-radius:50%;background:var(--bg);position:absolute}.music-gate__disc span{z-index:1;color:var(--text);font-size:1rem}.music-gate h2{font-size:clamp(2.35rem,8vw,4.2rem);margin-top:.28em}.music-gate p{font-size:1.02rem;line-height:1.65}.music-gate__actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:27px}@keyframes discSpin{to{transform:rotate(360deg)}}
.reveal{opacity:0;transform:translateY(34px);filter:blur(4px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1),filter .85s ease}.reveal-left{transform:translateX(-36px)}.reveal-scale{transform:scale(.965)}.reveal-hero{transform:translateY(18px) scale(.985);transition-duration:1s}.reveal.on{opacity:1;transform:none;filter:none}.reveal-soft{transition-duration:1s}
@media(max-width:800px){.grid,.gift-grid{grid-template-columns:1fr}.grid{gap:44px}.timeline{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:230px}.gallery-card:first-child{grid-row:span 1;grid-column:span 2}.counter{gap:8px}.counter div{padding:18px 5px}.band{background-attachment:scroll}.ambient{width:75vw;height:75vw}}
@media(max-width:520px){.timeline{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-auto-rows:330px}.gallery-card:first-child{grid-column:auto}.hero-actions{flex-direction:column;align-items:center}.btn{width:min(100%,330px)}.rsvp{padding:76px 0}.rsvp-box{border-radius:25px;padding:28px 21px}.rsvp-box h2{font-size:clamp(2.7rem,13vw,4rem)}.rsvp form{gap:16px}.choice{grid-template-columns:1fr}.choice label{justify-content:flex-start;padding-inline:18px}.rsvp textarea{min-height:104px}.music-gate__actions{flex-direction:column}.music-gate__actions .btn{width:100%}}
@media(max-width:520px){.hero-content{width:100%;padding-left:18px;padding-right:18px}.hero-date{max-width:calc(100vw - 44px);flex-wrap:wrap;gap:6px 9px;margin-top:16px;padding:9px 13px;border-radius:18px;font-size:.68rem;line-height:1.25;letter-spacing:.08em}.hero-date__date{white-space:normal;text-align:center;flex-basis:100%}.hero-date__sep{display:none}.hero-date__time{font-size:.74rem}.hero-name{max-width:calc(100vw - 36px)}.hero-name--short{font-size:clamp(4.15rem,17vw,5.35rem)}.hero-name--long{font-size:clamp(3.35rem,13.4vw,4.45rem)}.hero-name--xlong{font-size:clamp(2.8rem,10.8vw,3.7rem)}.hero-name--xxlong{font-size:clamp(2.25rem,8.8vw,3rem)}.hero-name--multiline{line-height:.88}.music-gate__identity strong{display:block;max-width:100%;overflow-wrap:anywhere;text-align:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none;filter:none}.hero-bg{transform:none}.ambient{display:none}}


/* V7 · controles persistentes de música + mapa dentro de la invitación */
.music-float{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:8500;width:58px;height:58px;border:1px solid color-mix(in srgb,var(--text) 18%,transparent);border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--text);background:linear-gradient(145deg,color-mix(in srgb,var(--text) 14%,var(--bg)),color-mix(in srgb,var(--text) 7%,var(--bg)));backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);box-shadow:0 14px 45px color-mix(in srgb,#000 34%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 18%,transparent),0 0 0 0 color-mix(in srgb,var(--primary) 25%,transparent);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease,background .24s ease}.music-float:hover{transform:translateY(-3px) scale(1.03);border-color:color-mix(in srgb,var(--primary) 58%,var(--text));box-shadow:0 18px 52px color-mix(in srgb,#000 38%,transparent),0 0 0 6px color-mix(in srgb,var(--primary) 9%,transparent)}.music-float:active{transform:scale(.96)}.music-float__icon{font-size:17px;line-height:1;transform:translateX(1px)}.music-float__bars{display:none;align-items:flex-end;justify-content:center;gap:3px;height:20px}.music-float__bars i{display:block;width:3px;height:8px;border-radius:5px;background:linear-gradient(to top,var(--primary),var(--secondary));transform-origin:bottom;animation:musicBar .8s ease-in-out infinite alternate}.music-float__bars i:nth-child(2){height:16px;animation-delay:-.32s}.music-float__bars i:nth-child(3){height:11px;animation-delay:-.55s}.music-float.is-playing{border-color:color-mix(in srgb,var(--primary) 46%,var(--line));box-shadow:0 16px 50px color-mix(in srgb,#000 35%,transparent),0 0 30px color-mix(in srgb,var(--primary) 18%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 20%,transparent)}.music-float.is-playing .music-float__icon{display:none}.music-float.is-playing .music-float__bars{display:flex}@keyframes musicBar{0%{transform:scaleY(.45);opacity:.6}100%{transform:scaleY(1.15);opacity:1}}
.location-card{text-align:center}.location-card>.btn{margin-top:6px}.inline-map{margin-top:24px;opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease}.inline-map.is-open{opacity:1;transform:none}.inline-map__frame{position:relative;width:100%;height:clamp(300px,48vw,460px);overflow:hidden;border-radius:23px;border:1px solid color-mix(in srgb,var(--text) 15%,transparent);background:color-mix(in srgb,var(--text) 5%,var(--bg));box-shadow:0 22px 55px color-mix(in srgb,#000 24%,transparent),inset 0 1px 0 color-mix(in srgb,var(--text) 10%,transparent)}.inline-map__frame:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 6%,transparent),inset 0 24px 42px color-mix(in srgb,var(--text) 4%,transparent)}.inline-map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.86) contrast(.96)}.map-external{display:inline-flex;align-items:center;justify-content:center;margin-top:14px;color:var(--secondary);font-weight:850;text-decoration:none;font-size:.9rem;letter-spacing:.02em;transition:color .2s ease,transform .2s ease}.map-external:hover{color:var(--primary);transform:translateY(-1px)}
@media(max-width:520px){.music-float{width:54px;height:54px;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}.inline-map{margin-top:20px}.inline-map__frame{height:340px;border-radius:19px}}

/* V8 · refinamiento visual final: ritmo, agenda, popup y galería */
:root{--section-y:clamp(58px,6.5vw,78px)}
.section,.gallery-section{padding:var(--section-y) 0}.grid{padding:var(--section-y) 0}.card-section{padding:var(--section-y) 0}
.section-heading{max-width:760px;margin-bottom:34px}.section-heading--center{text-align:center;margin-inline:auto}.section-lead{max-width:650px;margin:14px auto 0!important;font-size:1.02rem!important;line-height:1.72!important;color:var(--muted)!important;text-wrap:balance}
.timeline-section{position:relative;overflow:hidden}.timeline-section:before{content:"";position:absolute;width:520px;height:260px;left:50%;top:22%;transform:translateX(-50%);background:radial-gradient(ellipse,color-mix(in srgb,var(--primary) 10%,transparent),transparent 68%);filter:blur(20px);pointer-events:none}
.timeline--premium{position:relative;display:grid;grid-template-columns:repeat(var(--timeline-count,5),minmax(0,1fr));gap:0;margin-top:18px;padding:8px 0 0}.timeline--premium:before{content:"";position:absolute;left:8%;right:8%;top:31px;height:1px;background:linear-gradient(90deg,transparent,var(--line) 8%,color-mix(in srgb,var(--secondary) 40%,var(--line)) 50%,var(--line) 92%,transparent)}.timeline-item{position:relative;text-align:center;padding:0 8px}.timeline-node{position:relative;z-index:2;width:48px;height:48px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 24%,var(--bg)),color-mix(in srgb,var(--secondary) 12%,var(--bg)));border:1px solid color-mix(in srgb,var(--text) 18%,transparent);box-shadow:0 0 0 7px color-mix(in srgb,var(--bg) 88%,transparent),0 14px 32px color-mix(in srgb,#000 22%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 18%,transparent)}.timeline-node span{font-family:var(--font-secondary);font-weight:900;font-size:.68rem;letter-spacing:.08em;color:var(--secondary)}.timeline-content{min-height:122px;padding:22px 14px 20px;border-radius:20px;background:linear-gradient(155deg,color-mix(in srgb,var(--text) 9%,transparent),color-mix(in srgb,var(--text) 3%,transparent));border:1px solid color-mix(in srgb,var(--text) 12%,transparent);box-shadow:0 18px 50px color-mix(in srgb,#000 16%,transparent),inset 0 1px 0 color-mix(in srgb,#fff 8%,transparent);backdrop-filter:blur(18px) saturate(1.15);transition:transform .28s ease,border-color .28s ease,background .28s ease}.timeline-item:hover .timeline-content{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 34%,var(--line));background:linear-gradient(155deg,color-mix(in srgb,var(--primary) 12%,transparent),color-mix(in srgb,var(--text) 4%,transparent))}.timeline-content time{display:inline-flex;align-items:center;justify-content:center;min-width:70px;margin:0 auto 11px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);color:var(--secondary);font-family:var(--font-secondary);font-size:.78rem;font-weight:900;letter-spacing:.05em}.timeline-content strong{display:block;font-size:clamp(1.18rem,2vw,1.45rem);line-height:1.1;color:var(--text)}
.gallery-hint{margin:8px 0 24px!important;color:color-mix(in srgb,var(--text) 58%,transparent)!important;font-size:.88rem!important}.gallery-card{cursor:zoom-in;outline:none}.gallery-card:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 28%,transparent),0 30px 90px var(--shadow)}.gallery-zoom{position:absolute;right:18px;bottom:18px;z-index:4;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--text);font:800 16px/1 var(--font-secondary);background:color-mix(in srgb,var(--bg) 64%,transparent);border:1px solid color-mix(in srgb,var(--text) 18%,transparent);backdrop-filter:blur(12px);opacity:.82;transition:transform .25s ease,opacity .25s ease}.gallery-card:hover .gallery-zoom{transform:scale(1.08);opacity:1}
.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:clamp(18px,4vw,42px);background:color-mix(in srgb,#050508 88%,transparent);backdrop-filter:blur(18px) saturate(.85);-webkit-backdrop-filter:blur(18px) saturate(.85);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease}.lightbox.is-open{opacity:1;visibility:visible}.lightbox__stage{width:100%;height:100%;display:grid;place-items:center}.lightbox__stage img{display:block;max-width:min(1180px,100%);max-height:calc(100svh - 70px);width:auto;height:auto;object-fit:contain;border-radius:18px;box-shadow:0 34px 120px #000b;border:1px solid color-mix(in srgb,#fff 16%,transparent);background:#08080b}.lightbox__close{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid #ffffff30;background:#111118cc;color:#fff;font:300 32px/1 system-ui;cursor:pointer;backdrop-filter:blur(14px);box-shadow:0 12px 32px #0006}.lightbox-open{overflow:hidden}
.music-gate__identity{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0 auto 20px}.music-gate__identity span{font-family:var(--font-secondary);font-size:.68rem;text-transform:uppercase;letter-spacing:.22em;color:color-mix(in srgb,var(--text) 62%,transparent);font-weight:800}.music-gate__identity strong{font-family:var(--font-primary);font-size:clamp(1.5rem,4vw,2.15rem);line-height:1.05;color:var(--text)}
.music-gate__card{max-height:calc(100svh - 32px);overflow:auto;overscroll-behavior:contain}
@media(max-width:800px){:root{--section-y:52px}.timeline--premium{grid-template-columns:1fr;gap:0;padding:0;margin-top:24px}.timeline--premium:before{left:24px;right:auto;top:17px;bottom:18px;width:1px;height:auto;background:linear-gradient(180deg,transparent,var(--line) 6%,color-mix(in srgb,var(--secondary) 42%,var(--line)) 50%,var(--line) 94%,transparent)}.timeline-item{display:grid;grid-template-columns:48px 1fr;gap:15px;text-align:left;padding:0 0 16px}.timeline-node{margin:0;width:48px;height:48px}.timeline-content{min-height:0;padding:18px 20px}.timeline-content time{margin:0 0 9px}.timeline-content strong{font-size:1.38rem}.section-heading{margin-bottom:22px}.gallery-section{padding-top:44px}}
@media(max-width:520px){:root{--section-y:44px}.intro{padding:64px 0 70px}.band{padding:54px 0}.grid{gap:34px}.gallery{grid-auto-rows:auto!important;gap:14px}.gallery-card,.gallery-card:first-child{aspect-ratio:4/5;grid-row:auto!important;grid-column:auto!important}.gallery-card img{object-position:center}.gallery-hint{margin-bottom:18px!important}.music-gate{padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}.music-gate__card{width:100%;max-height:calc(100svh - 24px);border-radius:26px;padding:24px 20px 20px}.music-gate__identity{margin-bottom:14px}.music-gate__identity strong{font-size:1.7rem}.music-gate__disc{width:62px;height:62px;margin-bottom:16px;box-shadow:0 0 0 7px color-mix(in srgb,var(--text) 5%,transparent),0 14px 38px color-mix(in srgb,var(--primary) 20%,transparent)}.music-gate__disc:after{width:20px;height:20px}.music-gate .kicker{font-size:.62rem}.music-gate h2{font-size:clamp(1.85rem,9.5vw,2.65rem);line-height:1.01;margin:.35em auto .45em;max-width:320px}.music-gate p{font-size:.92rem;line-height:1.5;margin:0 auto;max-width:310px}.music-gate__actions{gap:9px;margin-top:20px}.music-gate__actions .btn{min-height:48px}.lightbox{padding:58px 12px 18px}.lightbox__stage img{max-height:calc(100svh - 82px);border-radius:12px}.lightbox__close{width:42px;height:42px;font-size:27px}.timeline-item{grid-template-columns:42px 1fr;gap:12px}.timeline-node{width:42px;height:42px}.timeline--premium:before{left:21px}.timeline-content{padding:16px 17px;border-radius:18px}.timeline-content strong{font-size:1.25rem}}
.timeline--premium .timeline-item:after{display:none}.timeline--premium .timeline-item:hover{transform:none;border-color:transparent}.timeline-section + .gallery-section{padding-top:18px}
