/* Música: un detalle al margen, con el volumen reservado a la interacción. */
.sound-control{
  position:fixed;right:clamp(16px,3vw,28px);
  bottom:max(20px,env(safe-area-inset-bottom));z-index:200;
  display:flex;align-items:center;gap:8px;
}
.sound-control[hidden]{display:none;}
#music-btn{
  position:relative;display:grid;place-items:center;flex-shrink:0;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;
  background:transparent;color:var(--gold-light);cursor:pointer;
  box-shadow:none;animation:none;-webkit-tap-highlight-color:transparent;
}
#music-btn::before{
  content:"";position:absolute;inset:5px;border:1px solid rgba(201,168,76,.38);
  border-radius:50%;background:rgba(36,24,19,.76);
  transition:border-color .4s ease,background .4s ease;
}
#music-btn svg{position:relative;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;}
#music-btn:hover::before,#music-btn:focus-visible::before{border-color:rgba(201,168,76,.75);background:var(--forest);}
#music-btn:focus-visible{outline:1px solid var(--gold);outline-offset:2px;}
.volume-wrap{
  order:-1;display:flex;align-items:center;width:76px;height:44px;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateX(5px);
  background:none;border:0;padding:0;box-shadow:none;
  transition:opacity .4s ease,transform .4s ease,visibility .4s;
}
.sound-control:hover .volume-wrap,.sound-control:focus-within .volume-wrap{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}
.volume-wrap input[type=range]{
  appearance:none;-webkit-appearance:none;display:block;width:76px;height:44px;
  margin:0;background:transparent;cursor:pointer;accent-color:var(--gold);
}
.volume-wrap input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--gold);}
.volume-wrap input[type=range]::-moz-range-track{height:1px;background:var(--gold);}
.volume-wrap input[type=range]::-webkit-slider-thumb{
  appearance:none;-webkit-appearance:none;width:7px;height:7px;margin-top:-3px;
  border:1px solid var(--gold);border-radius:50%;background:var(--cream);
}
.volume-wrap input[type=range]::-moz-range-thumb{
  width:7px;height:7px;border:1px solid var(--gold);border-radius:50%;background:var(--cream);
}

/* Índice como cabecera de papel: firma, aire y una sola línea de oro. */
.invitation-header{
  position:sticky;top:0;z-index:80;display:flex;flex-direction:column;
  align-items:center;padding:12px 16px 9px;
  background:linear-gradient(to bottom,var(--cream) 0%,var(--cream) 84%,rgba(250,248,243,.96) 100%);
  transition:transform .65s var(--ease-expo),opacity .45s ease,visibility .45s;
}
.invitation-header::after{
  content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:min(340px,76%);height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,168,76,.32),transparent);
}
.invitation-signature{
  display:flex;align-items:center;gap:5px;min-height:28px;
  font-family:"Balladeer","Cormorant Garamond",serif;
  font-weight:300;font-size:26px;line-height:1;color:var(--moss);text-decoration:none;
}
.invitation-signature span{font-family:"Cormorant Garamond",serif;font-size:15px;font-style:italic;color:var(--sage);}
.invitation-index{display:flex;justify-content:center;align-items:center;gap:clamp(14px,3vw,30px);}
.invitation-index a{
  position:relative;display:flex;align-items:center;min-height:44px;
  font-family:"Jost",sans-serif;font-size:12px;font-weight:300;
  letter-spacing:.13em;color:var(--mist);text-decoration:none;
  transition:color .35s ease;
}
.invitation-index a::after{
  content:"";position:absolute;bottom:7px;left:50%;width:12px;height:1px;
  background:var(--gold);transform:translateX(-50%) scaleX(0);
  transition:transform .4s var(--ease-expo);
}
.invitation-index a:hover,.invitation-index a:focus-visible{color:var(--moss);}
.invitation-index a:hover::after,.invitation-index a:focus-visible::after{transform:translateX(-50%) scaleX(1);}
.invitation-header.is-resting{transform:translateY(-105%);opacity:0;visibility:hidden;pointer-events:none;}
#inicio,#ceremonia,#recepcion,#itinerario,#confirmacion{scroll-margin-top:112px;}
@media(max-width:380px){
  .invitation-header{padding-left:10px;padding-right:10px;}
  .invitation-index{gap:12px;}
  .invitation-index a{letter-spacing:.045em;}
}
@media(prefers-reduced-motion:reduce){.invitation-header{transition:none;}}

[hidden]{display:none!important;}
h1,h2,h3{font-weight:inherit;}
#canvas:focus{outline:none;}
#intro{transition:opacity 1s ease;}
.cover{overflow-y:auto;}
.cover-arrival{font-family:"Jost",sans-serif;font-size:11px;letter-spacing:.22em;color:var(--gold-light);margin-top:16px;}
.scroll-cue{display:none;}
.hero-section{padding-top:64px;padding-bottom:56px;}
.hero-names{font-size:clamp(3.7rem,13vw,8.5rem);}
.opening-invite{font-family:"Cormorant Garamond",serif;font-size:clamp(1.15rem,3vw,1.45rem);line-height:1.7;margin:28px auto 22px;max-width:400px;color:var(--mist);}
.day-summary{max-width:520px;margin:20px auto 0;padding-top:24px;border-top:1px solid rgba(184,146,74,.23);text-align:center;}
.day-summary p{font-family:"Cormorant Garamond",serif;font-size:19px;line-height:1.65;color:var(--mist);}
.day-summary .day-date,.day-date{font-family:"Cormorant Garamond",serif;font-size:26px;line-height:1.5;color:var(--forest);}
.day-summary .day-time{font-family:"Jost",sans-serif;font-size:12px;line-height:1.9;margin-top:12px;}
.quiet-links{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:18px;}
.quiet-links a,.text-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:none;border:0;border-bottom:1px solid rgba(184,146,74,.32);border-radius:0;box-shadow:none;color:var(--moss);text-decoration:none;font-family:"Jost",sans-serif;font-size:12px;letter-spacing:.07em;cursor:pointer;padding:6px 0;}
.quiet-links span{color:var(--gold);}
.calendar-btn-wrap{margin-top:12px;}
.calendar-menu a{font-size:13px;min-height:44px;}
.photo-block,.photo-quote-wrap{--edge-top:var(--cream);--edge-bottom:var(--cream);}
.photo-quote-wrap img,.photo-block img{max-height:760px;object-fit:cover;}
.editorial-section{padding:64px 32px;text-align:center;background:var(--cream);}
.editorial-copy{font-family:"Cormorant Garamond",serif;font-size:clamp(1.15rem,3vw,1.35rem);line-height:1.8;max-width:480px;margin:20px auto;color:var(--mist);}
.venue-times{display:flex;align-items:center;justify-content:center;gap:32px;margin:34px auto;}
.venue-times div{display:flex;flex-direction:column;gap:8px;}
.venue-times span{font-family:"Jost",sans-serif;font-size:12px;letter-spacing:.12em;color:var(--mist);}
.venue-times strong{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:28px;}
.venue-times i{font-family:"Balladeer",serif;color:var(--gold);font-size:32px;}
.quiet-details{max-width:520px;margin:16px auto 0;border-bottom:1px solid rgba(184,146,74,.22);text-align:left;}
.quiet-details summary{min-height:48px;padding:15px 22px 15px 0;font-family:"Jost",sans-serif;font-size:13px;letter-spacing:.06em;line-height:1.7;color:var(--ink);cursor:pointer;}
.quiet-details p{font-family:"Cormorant Garamond",serif;font-size:19px;line-height:1.65;margin:0 0 18px;color:var(--mist);}
.quiet-details a{color:var(--moss);}
.guest-timeline{list-style:none;max-width:470px;margin:32px auto 0;text-align:left;}
.guest-timeline li{display:grid;grid-template-columns:90px 1fr;gap:22px;position:relative;padding:0 0 30px;}
.guest-timeline li+li{padding-top:8px;}
.guest-timeline time{font-family:"Cormorant Garamond",serif;font-size:20px;color:var(--moss);padding-top:3px;}
.guest-timeline h3{font-family:"Cormorant Garamond",serif;font-size:25px;line-height:1.25;}
.guest-timeline p{font-family:"Jost",sans-serif;font-size:13px;line-height:1.8;color:var(--mist);margin-top:8px;}
.family-block{margin:24px auto;}.family-names{font-size:clamp(1.2rem,3.3vw,1.6rem);}
#familia{padding-top:58px;padding-bottom:54px;}
.demo-note,.demo-footnote{font-family:"Jost",sans-serif;font-size:12px;line-height:1.75;letter-spacing:.015em;color:var(--mist);max-width:440px;margin:22px auto 0;}
.pase-section .demo-note{color:var(--gold-pale);}
.demo-footnote{color:var(--gold-light);}
.demo-edit-link{display:inline-flex;align-items:center;min-height:44px;color:var(--gold-light);font-family:"Jost",sans-serif;font-size:12px;letter-spacing:.04em;margin-top:10px;text-underline-offset:5px;}
.rsvp-deadline{font-family:"Cormorant Garamond",serif;font-size:20px;line-height:1.7;}
.demo-rsvp{max-width:440px;margin:30px auto 0;text-align:left;}
.demo-rsvp label,.demo-rsvp legend{display:block;font-family:"Jost",sans-serif;font-size:13px;line-height:1.7;color:var(--ink);margin:18px 0 8px;}
.demo-rsvp small{color:var(--mist);font-size:12px;}
.demo-rsvp input:not([type=radio]),.demo-rsvp select,.demo-rsvp textarea{display:block;width:100%;padding:12px 2px;background:transparent;border:0;border-bottom:1px solid rgba(184,146,74,.4);border-radius:0;font-family:"Cormorant Garamond",serif;font-size:20px;color:var(--ink);}
.demo-rsvp fieldset{border:0;margin:8px 0 16px;}
.demo-rsvp fieldset label{display:flex;gap:12px;align-items:center;min-height:44px;margin:0;}
.demo-rsvp input[type=radio]{accent-color:var(--moss);width:17px;height:17px;}
.demo-rsvp .btn-sage{display:block;margin:28px auto 0;font-size:12px;letter-spacing:.15em;min-height:48px;}
.demo-rsvp #rsvp-result{font-size:19px;}
.album-samples{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:560px;margin:30px auto;}
.album-samples img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;}
.editorial-dialog{position:fixed;inset:0;margin:auto;width:min(620px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:42px 30px 30px;border:1px solid rgba(184,146,74,.35);border-radius:0;background:var(--cream);color:var(--ink);}
.editorial-dialog::backdrop{background:rgba(17,17,17,.58);}
.editorial-dialog h2{font-family:"Cormorant Garamond",serif;font-size:32px;line-height:1.2;margin:12px 0 20px;}
.editorial-dialog p{font-family:"Jost",sans-serif;font-size:14px;line-height:1.8;}
.dialog-eyebrow{color:var(--moss);letter-spacing:.12em;text-transform:uppercase;font-size:11px!important;}
.dialog-close{position:absolute;right:8px;top:6px;border:0;background:none;width:44px;height:44px;font-size:28px;color:var(--moss);cursor:pointer;}
.album-picker{display:block;border-bottom:1px solid var(--gold);padding:18px 0;margin:14px 0;font-family:"Jost",sans-serif;font-size:14px;}
.album-picker input{display:block;width:100%;font-size:14px;margin-top:12px;}
.album-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:20px 0;}
.album-preview img{width:100%;height:180px;object-fit:cover;}
.album-preview button{background:none;border:0;min-height:44px;text-decoration:underline;color:var(--moss);cursor:pointer;}
.sound-control #music-btn{bottom:auto;right:auto;animation:none;box-shadow:none;backdrop-filter:none;}
.sound-control #music-btn:hover{transform:none;}
.sound-control .volume-wrap{position:static;bottom:auto;right:auto;z-index:auto;}
.sound-control input[type=range]{transform:none;transform-origin:center;margin:0;}
#inicio,#lugares,#historia,#confirmacion,#album,[data-module]{scroll-margin-top:100px;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--moss);outline-offset:4px;}
@media(max-width:600px){.editorial-section{padding:48px 26px;}.hero-section{padding-top:44px;}.day-summary .day-date{font-size:24px;}.venue-times{gap:22px;}.location-section{padding-left:26px;padding-right:26px;}.guest-timeline li{grid-template-columns:76px 1fr;gap:16px;}.guest-timeline time{font-size:18px;}.editorial-dialog{padding:40px 22px 24px;}}
@media(max-height:700px){.cover-content{padding-top:36px;padding-bottom:36px;}.cover-monogram{font-size:5rem;}.cover-names{font-size:1.8rem;}.cover-date-unit .n{font-size:1.8rem;}.cover-tagline-top{margin-bottom:12px;}.cover-divider{margin:12px 0;}.cover-date{margin-top:12px;}#enter{margin-top:18px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important;}}
