
:root{--ink:#1f4144;--gold:#bb8063;--gold-ink:#966046;--paper:#ead9cf;--night:#1f4144;--mauve:#b8a296;--ib-entry-bg:#1f4144}body{background:#19363a;color:var(--ink)}.paper{background:linear-gradient(158deg,#ead9cf 2%,#f4e6db 36%,#d9c6ba 74%,#ead9cf 98%)}.sage{background:linear-gradient(170deg,#b8a296,#d0bbb0 37%,#aa938a 75%,#b8a296)}.dark{background:radial-gradient(ellipse at 85% 20%,#87574340,transparent 62%),linear-gradient(165deg,#1f4144,#264b4e 46%,#173439);color:#f8ede2;--gold-ink:#d2a38a}.surface:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.095;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.42' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");pointer-events:none}.eyebrow{letter-spacing:.25em}.signature,.script-label{color:var(--gold-ink)}.button{border-radius:4px;background:#1f4144;border-color:#1f4144;color:#f5e8dc;min-height:57px}.button-light{background:#efddd0;border-color:#efddd0;color:#1f4144}.button:hover{background:#34595a;color:#fff}.button-light:hover{background:#fff4e9;color:#1f4144}.button-outline{background:transparent;color:#1f4144;border-color:#6e7a72}.text-button{border-color:#957361}.text-button.light{color:#f2d1ba;border-color:#bd9278}.fine-rule{background:linear-gradient(90deg,transparent,#bd8e72,transparent)}
.entry{min-height:100dvh;background:radial-gradient(ellipse at 50% 48%,#4c626055,transparent 63%),linear-gradient(150deg,#17383b,#173338 65%,#1f4144);color:#f8eee4}.entry-content{max-width:670px;padding:90px 100px 50px;z-index:3}.entry-monogram{display:none}.entry-prelude{font-family:Hand,cursive;font-size:33px;color:#d9ab90;margin-bottom:25px}.entry .eyebrow{font-size:10px;letter-spacing:.24em}.entry h1{font-size:clamp(66px,8vw,95px);line-height:.95;margin:28px 0}.entry h1>span{display:block}.entry h1 em{font-size:42px;margin:8px 0;color:#d2a38a}.entry-date{font-size:17px;letter-spacing:.26em;color:#e8cfbe}.entry-message{font-size:16px;color:#e4d3c6}.entry .fine-rule{width:94px;margin:24px auto}.entry-actions{margin-top:25px;gap:15px}.entry-actions .button{width:min(275px,100%)}
.hero{height:112svh;min-height:930px;max-height:1180px;background:#1f4144;color:#fff8ef}.hero-media{position:absolute;inset:0;overflow:hidden;z-index:0}.hero-photo{object-position:center 53%;transform-origin:center 60%}.hero-shade{inset:0;width:100%;height:100%;z-index:1;background:linear-gradient(180deg,#1a343c85 0%,#203b4355 28%,#203b4322 55%,#122d3299 100%)}
.hero-copy{top:20%;left:18%;width:64%;padding:0 15px}.hero h1{font-size:clamp(75px,9vw,110px);line-height:.91;margin:24px auto}.hero h1>span{display:block}.hero h1 em{display:block;font-size:.5em;line-height:.8;margin:12px 0;color:#f1c5ad}.hero-date{margin-top:30px;gap:15px;font-size:16px;letter-spacing:.25em}.hero-date span{width:24px;background:#dfb79a88}.hero .eyebrow{font-size:11px}.hero .scroll-cue{bottom:125px}.scroll-cue i{color:#dfb79a}.divider{height:150px}.section-top{top:-149px}.divider path+path{stroke:#b77a5c;stroke-opacity:.5}
.story,.event,.album,.agenda,.details,.rsvp{padding-bottom:245px}.story{padding-top:70px}.countdown{padding-bottom:115px}.count-grid strong{font-size:72px}.count-grid span,.story-copy>p,.timeline p{color:#5e6863}.count-grid i,.tiny-heart{color:#ad8069}.story-copy h2{font-size:67px}.story-copy>p{font-size:18px}.story .signature{margin-top:35px}.event-intro h2{font-size:61px}.date-seal{height:345px;width:300px;border:1px solid #987d6e80;border-radius:48% 48% 5px 5px;gap:5px}.date-seal strong{font-size:156px}.event-details{margin-top:115px}.event-details h3{font-size:39px}.event-details article+article{border-color:#987d6e66}.event-details p:not(.eyebrow):not(.event-time){color:#405f5a}.album-layout{max-width:925px;display:grid;grid-template-columns:.85fr 1fr;gap:82px;align-items:center}.album-copy{text-align:left;margin:0}.album-copy h2{font-size:54px;color:#f8eee4}.album-copy>p{color:#d7ddd5;font-size:17px}.album-copy .fine-rule{margin-left:0}.album-stage{aspect-ratio:4/5;max-width:490px;border-radius:0;outline:0;box-shadow:0 24px 60px #0d222677}.slide{animation:none!important;transform:none!important;object-fit:cover}.album-controls button{color:#e5baa0}.timeline li{padding-bottom:62px}.timeline time{color:#966046}.timeline li>div{border-color:#9d877b80}.timeline li>div:before{background:#ad8069}.timeline h3{font-size:38px}.section-heading{margin-bottom:90px}.detail-grid{display:flex;flex-direction:column;gap:0;text-align:left}.detail-grid article{display:grid;grid-template-columns:80px 1fr 1fr;gap:10px 28px;padding:65px 0}.detail-index{color:#966046;font-size:13px;padding-top:8px}.detail-grid h3{font-size:39px;margin:0}.detail-grid p{color:#405f5a;font-size:17px;margin:0;grid-column:3}.detail-grid .text-button{grid-column:3;justify-self:start;margin-top:15px}.detail-grid article+article:before{top:0;left:0;right:0;bottom:auto;width:100%;height:1px;background:linear-gradient(90deg,transparent,#a2827066 20% 80%,transparent)}.notes-row{margin-top:60px;padding-top:60px;border-color:#987d6e77}.rsvp h2{font-size:79px;color:#f8eee4}.rsvp-content>p:not(.eyebrow){color:#d7ddd5}.rsvp .signature{font-size:47px}.closing{height:870px;background:#1f4144}.closing-shade{background:linear-gradient(#16343922,#102a2ebb)}.closing-copy{top:25%;padding:0 25px}.closing-copy h2{font-size:72px}.closing-copy .signature{color:#e2bfa9}footer{color:#1f4144}footer em{color:#966046}footer p{color:#5e6863}.music-button{background:#1f4144;color:#efc2a4;border-color:#bd927866}.music-button[aria-pressed=true]{background:#efddd0;color:#1f4144}dialog{background:#ead9cf;color:#1f4144;border-color:#9f8d80}dialog::backdrop{background:#0f292dc9}.modal-close,input,select{color:#1f4144}.form-note{color:#586862}.form-result{background:#d9c6ba;border-color:#a37658}
@media(max-width:700px){.entry-content{padding:102px 55px 40px}.entry-prelude{font-size:29px;margin-bottom:19px}.entry h1{font-size:clamp(58px,16vw,72px);margin:25px 0}.entry h1 em{font-size:33px;margin:9px 0}.entry .eyebrow{font-size:9px;letter-spacing:.16em}.entry-date{font-size:14px}.entry-message{font-size:15px}.entry .fine-rule{margin:21px auto}.entry-actions{margin-top:23px}.hero{height:110svh;min-height:850px;max-height:1120px}.hero-copy{top:17%;left:12%;width:76%;padding:0}.hero h1{font-size:clamp(59px,17vw,81px);line-height:.93;margin:23px auto}.hero h1 em{font-size:.47em}.hero .eyebrow{font-size:10px}.hero-date{font-size:13px;letter-spacing:.16em;gap:9px;margin-top:26px}.hero-date span{width:16px}.hero .scroll-cue{font-size:10px;bottom:112px}.divider{height:116px}.section-top{top:-115px}.story,.event,.album,.agenda,.details,.rsvp{padding:85px 28px 222px}.story{padding-top:42px}.countdown{padding-bottom:90px}.count-grid strong{font-size:58px}.story-copy h2{font-size:50px}.story-copy>p{font-size:17px}.event-intro{display:flex;flex-direction:column;gap:68px}.event-intro h2{font-size:50px}.date-seal{height:300px;width:270px}.date-seal strong{font-size:140px}.event-details{margin-top:94px}.event-details article+article{border-left:0;border-top:1px solid #987d6e66;margin-top:77px;padding-top:76px}.event-details h3{font-size:37px}.album-layout{display:block}.album-copy{text-align:center;margin-bottom:50px}.album-copy h2{font-size:47px}.album-copy .fine-rule{margin:27px auto}.album-stage{max-width:450px}.section-heading{margin-bottom:77px}.section-heading h2{font-size:49px}.timeline h3{font-size:35px}.timeline li{padding-bottom:48px}.detail-grid article{display:block;text-align:center;margin:0!important;padding:74px 5px}.detail-grid article:first-child{padding-top:10px}.detail-grid article+article:before{left:9%;right:9%;width:82%}.detail-grid h3{font-size:40px;margin:20px 0}.detail-grid p{font-size:17px}.detail-grid .text-button{margin-top:23px}.notes-row{margin-top:42px;padding-top:50px}.rsvp h2{font-size:53px}.closing{height:770px}.closing-copy h2{font-size:52px}}
@media(max-height:740px){.entry-content{padding:70px 55px 25px}.entry-prelude{font-size:26px;margin-bottom:13px}.entry h1{font-size:55px;margin:20px 0}.entry h1 em{font-size:28px;margin:7px 0}.entry .fine-rule{margin:16px auto}.entry-message{font-size:14px}.entry-actions{margin-top:17px}}


/* Marco fino, fondo completamente transparente. */
.line-frame{position:absolute;inset:25px 25px 145px;border:1px solid rgba(237,206,183,.66);border-radius:24px;z-index:2;pointer-events:none;opacity:0;background:transparent}
.line-frame:after{content:"";position:absolute;inset:7px;border:1px solid rgba(237,206,183,.27);border-radius:18px;background:transparent}
.entry>.line-frame{position:fixed;inset:22px;border-color:rgba(215,168,139,.65);animation:frameReveal 2.8s cubic-bezier(.22,.61,.36,1) .1s both}
.entry>.line-frame:after{border-color:rgba(215,168,139,.25)}
.entered .hero>.line-frame{animation:frameReveal 2.8s cubic-bezier(.22,.61,.36,1) both}
@keyframes frameReveal{from{opacity:0}to{opacity:1}}
.hero .scroll-cue{bottom:180px}
@media(max-width:700px){.hero>.line-frame{inset:20px 18px 110px;border-radius:20px}.hero>.line-frame:after{inset:6px;border-radius:15px}.entry>.line-frame{inset:16px;border-radius:22px}.entry>.line-frame:after{inset:6px;border-radius:17px}.hero .scroll-cue{bottom:150px}}
@media(prefers-reduced-motion:reduce){.entry>.line-frame,.entered .hero>.line-frame{animation-duration:1.8s}}
/* Florituras de esquina, trazos del mismo tono que el marco. */
.frame-flourish{position:absolute;display:block;width:104px;height:104px;z-index:1;opacity:0;background:#edceb7;-webkit-mask-image:url(assets/frame-flourish.png);mask-image:url(assets/frame-flourish.png);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.corner-tl{left:3px;top:3px;--ornament-delay:.15s}.corner-tr{right:3px;top:3px;transform:scaleX(-1);--ornament-delay:.3s}.corner-br{right:3px;bottom:3px;transform:rotate(180deg);--ornament-delay:.45s}.corner-bl{left:3px;bottom:3px;transform:scaleY(-1);--ornament-delay:.6s}
.entry .frame-flourish{background:#d7a88b}.entry .frame-flourish,.entered .hero .frame-flourish{animation:flourishReveal 2.4s ease-out var(--ornament-delay) both}
@keyframes flourishReveal{from{opacity:0}to{opacity:.88}}
@media(max-width:700px){.frame-flourish{width:84px;height:84px}}
@media(prefers-reduced-motion:reduce){.entry .frame-flourish,.entered .hero .frame-flourish{animation-duration:1.8s}}
