/* One real brand, across every collection. The original drawing is preserved. */
.villa-isotype{display:block;width:42px;height:55px;background:var(--gold);-webkit-mask:url('villa_alhambra_iso_tipo.svg') center/contain no-repeat;mask:url('villa_alhambra_iso_tipo.svg') center/contain no-repeat;margin-inline:auto;font-size:0;padding:0;letter-spacing:0}
.brand-mark.villa-isotype{width:35px;height:46px;background:var(--ink)}.brand-name{margin-top:8px}.flourish.villa-isotype{margin-bottom:22px}.story-right .villa-isotype{margin-top:25px}.footer .villa-isotype{width:60px;height:79px;margin-bottom:28px}.sr-only,.scrub-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.angel-film video,.wedding-frame video{max-height:none;aspect-ratio:9/16;background:var(--paper)}
body[data-event=navidad] .cover{padding-top:200px;min-height:860px}
input#wedding-scrub,input#film-scrub{appearance:none;background:transparent;outline-offset:4px}input#wedding-scrub::-webkit-slider-runnable-track,input#film-scrub::-webkit-slider-runnable-track{height:2px;background:var(--line)}input#wedding-scrub::-webkit-slider-thumb,input#film-scrub::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border-radius:50%;margin-top:-4.5px;background:var(--ink)}input#wedding-scrub::-moz-range-track,input#film-scrub::-moz-range-track{height:2px;background:var(--line)}input#wedding-scrub::-moz-range-thumb,input#film-scrub::-moz-range-thumb{width:11px;height:11px;border:0;background:var(--ink);border-radius:50%}
/* The wedding opens with an actual film, driven by the visitor's scroll. */
.wedding-story{height:440svh;position:relative}.wedding-sticky.cover{position:sticky;top:0;height:100svh;min-height:600px;max-height:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:145px max(36px,calc((100vw - 1280px)/2)) 40px;gap:6vw;background:radial-gradient(ellipse at 25% 70%,#d0a98e33,transparent 65%),var(--paper)}
.wedding-frame{height:100%;min-height:0;display:flex;justify-content:center;overflow:hidden}.wedding-frame video{height:100%;width:auto;max-width:100%;object-fit:contain;box-shadow:0 18px 60px #6e402322}.wedding-copy{max-width:570px;text-align:center;align-self:center}.wedding-beats{position:relative;height:300px;margin-top:26px}.wedding-beat{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;opacity:0;transform:translateY(25px);transition:opacity .45s,transform .6s var(--ease);pointer-events:none}.wedding-beat.active{opacity:1;transform:none}.wedding-copy .wedding-beat h1{font:400 clamp(58px,6vw,96px)/.93 var(--serif);letter-spacing:-2px;margin:0;animation:none}.wedding-beat h1 em{font-weight:400}.wedding-names{font:400 clamp(58px,5vw,83px)/.94 var(--serif);letter-spacing:-1.5px}.wedding-beat>p:not(.wedding-names):not(.small-caps){font-size:19px;color:var(--earth)}.wedding-beat .villa-isotype{margin:0}.wedding-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:24px}.wedding-actions>p{flex-basis:100%;font:500 8px var(--sans);letter-spacing:2px;color:var(--earth)}.wedding-actions input{flex-basis:80%;accent-color:var(--wine);height:20px;cursor:ew-resize}.wedding-actions button{background:none;border:0;border-bottom:1px solid var(--line);padding:6px 0;font:500 10px var(--sans);transform:none}.wedding-scroll-mark{position:absolute;left:22px;bottom:25px;writing-mode:vertical-rl;font:500 7px var(--sans);letter-spacing:1.5px;color:var(--earth)}
/* Baptism: a horizontal filmstrip with readable, independently scrollable scenes. */
html:has(.horizontal-invitation){overflow:hidden;scroll-behavior:auto}.horizontal-invitation{overflow:hidden;height:100svh;font-size:19px}.horizontal-invitation .masthead{position:fixed;height:78px;padding:9px 30px;background:var(--paper);border-bottom:1px solid #afbba450;z-index:15}.horizontal-invitation .brand{order:1;flex-direction:row;gap:12px;align-items:center;flex-wrap:wrap;max-width:240px}.horizontal-invitation .brand-mark{width:29px;height:39px;margin:0}.horizontal-invitation .brand-name{margin:0;font-size:11px;letter-spacing:2px}.horizontal-invitation .brand-caption,.horizontal-invitation .edition{display:none}.horizontal-invitation .demo-button{width:auto;font-size:9px}.horizontal-invitation .collection-switch{position:fixed;left:50%;right:auto;top:25px;transform:translateX(-50%);z-index:16;gap:25px}.horizontal-invitation main{position:absolute;top:78px;left:0;width:100%;height:calc(100svh - 154px);display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.horizontal-invitation main::-webkit-scrollbar{display:none}
.film-panel{flex:0 0 100%;height:100%;min-width:0;position:relative;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;scroll-margin:0;padding:0;background:var(--paper)}.panel-scroll{height:100%;overflow-y:auto;overscroll-behavior-y:contain;padding:30px max(40px,calc((100vw - 1060px)/2));scrollbar-width:thin;scrollbar-color:#a5b69e transparent}.film-panel .reveal{opacity:1;transform:none}.film-panel h2{font-size:clamp(42px,4vw,65px);letter-spacing:-1px}.film-panel .section-heading{margin-bottom:25px}.film-panel .section-heading h2{margin:15px 0}.film-panel .section-heading>p:last-child{font-size:18px}.film-panel .flourish{width:31px;height:40px;margin-bottom:12px}.film-panel .invitation-frame{padding:22px 25px;max-width:720px}.film-panel .invitation-frame h2{font-size:clamp(54px,5vw,74px);margin:14px 0}.film-panel .invitation-copy{font-size:19px;margin-bottom:15px}.film-panel .date-line{gap:20px;margin-top:5px}.film-panel .date-line>strong{font-size:55px;line-height:1.2}.film-panel .fine-rule{margin:18px auto}.film-panel .countdown{margin:12px 0 20px;gap:17px}.film-panel .countdown span{font-size:35px}.film-panel .calendar-note{font-size:8px}.film-panel .button{min-height:44px;padding:12px 20px;font-size:10px}
.film-intro.cover{min-height:0;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:5vw;padding:0 max(36px,calc((100vw - 1200px)/2));isolation:isolate}.angel-film{height:100%;min-height:0;display:flex;justify-content:center}.angel-film video{height:100%;width:auto;max-width:100%;object-fit:contain}.film-intro-copy{text-align:center;max-width:500px}.film-intro-copy h1{font:400 clamp(65px,7vw,105px)/.95 var(--serif);letter-spacing:-2px;margin:25px 0 8px;animation:none}.angel-name{font:400 clamp(65px,8vw,115px)/1 var(--script);color:var(--gold);margin-bottom:20px}.film-intro-copy>p:not(.eyebrow):not(.angel-name):not(.film-hint){color:var(--earth);font-size:21px}.film-intro-copy .button{margin:28px 0 16px}.film-intro-copy .text-link{display:block;margin:0 auto;background:none;border:0;border-bottom:1px solid var(--line);padding:4px 0;font-size:9px}.film-hint{font:500 8px/1.8 var(--sans);letter-spacing:1.6px;color:var(--earth);margin:28px 0 0}
.family-scene:before,.closing-scene:before{content:'';position:absolute;inset:0;background:url('bautizo-poster.jpg') center/cover;opacity:.15;pointer-events:none}.family-scene .panel-scroll,.closing-scene .panel-scroll{position:relative}.family-card{max-width:850px;margin:auto;min-height:100%;display:flex;flex-direction:column;justify-content:center;text-align:center}.family-card h2{margin:25px 0}.family-card>p:not(.eyebrow):not(.small-caps){font-size:24px;color:var(--earth);line-height:1.7}.family-card .family-signature{font:400 48px var(--script)!important;color:var(--ink)!important;margin-bottom:26px}.family-card .villa-isotype{width:50px;height:65px}.baptism-venue{max-width:1060px;margin:auto}.baptism-venue .facade-feature{margin:0}.baptism-venue .facade-feature img{height:clamp(230px,43svh,440px);aspect-ratio:auto;object-fit:cover}.venue-details{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:18px;margin-top:17px}.venue-details .photo-button{padding:0;background:none;border:0}.venue-details img{height:105px;object-fit:cover;object-position:center 65%}.venue-details .photo-button>span{display:block;font:500 8px var(--sans);padding:8px 0;letter-spacing:1px}
.film-panel .menu-layout{gap:45px;align-items:center}.film-panel .menu-intro h2{margin:15px 0}.film-panel .menu-card{padding:28px 35px}.film-panel .menu-card article{padding:17px 0}.film-panel .menu-card h3{font-size:30px}.film-panel .menu-card article p{font-size:16px}.film-panel .menu-signature{margin-top:25px;font-size:43px}.film-panel .timeline{max-width:780px;margin:auto}.film-panel .timeline li{padding:18px 0}.film-panel .timeline h3{font-size:28px}.film-panel .timeline li p{font-size:17px}.film-panel .dress-frame{max-width:880px;margin:0 auto;padding:40px 25px}.film-panel .dress-frame h2{margin:25px 0}.film-panel .swatches{margin:30px auto;gap:30px}.film-panel .location-layout{gap:30px}.film-panel .location-layout iframe{height:310px}.film-panel .location-info .villa-isotype{margin:0 0 10px}.film-panel .location-info h3{font-size:40px}.film-panel .location-info p{font-size:18px}.film-panel .arrival-notes{margin-top:20px}.film-panel .arrival-notes details{padding:12px 0}.film-panel .rsvp-details{max-width:720px;margin:35px auto}.film-panel .rsvp-details summary{padding:25px}.film-panel .rsvp-content{padding:5px 25px 30px}.closing-scene .footer{padding:30px 0;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none}.closing-scene .footer h2{margin:20px 0}.closing-scene .footer-bottom{width:100%;margin-top:25px;gap:16px;flex-wrap:wrap}.closing-scene .footer-brand{font-size:42px}
.film-controls{position:fixed;left:0;right:0;bottom:0;height:76px;background:var(--paper);border-top:1px solid #afbba480;z-index:16;display:flex;align-items:center;gap:25px;padding:12px max(25px,calc((100vw - 1060px)/2))}.film-controls>button{border:0;background:none;min-width:40px;min-height:44px;font:400 30px var(--serif);padding:0}.film-controls>button:disabled{opacity:.25;cursor:default}.film-controls #film-play{font:500 9px/1.5 var(--sans);min-width:145px;text-align:center;border:1px solid var(--line);padding:8px 12px}.film-timeline{flex:1;min-width:0}.film-timeline p{display:flex;justify-content:space-between;gap:15px;font:500 9px/1.7 var(--sans);letter-spacing:.6px}.film-timeline input{width:100%;height:17px;margin:0;accent-color:var(--ink);cursor:ew-resize}.venue-film-dialog{max-width:900px;width:90vw;background:var(--paper);padding:45px 25px 25px;border:1px solid var(--line)}.venue-film-dialog video{width:100%;max-height:70svh;margin-top:20px}.film-panel.active .family-card h2,.film-panel.active .section-heading{animation:scene-in .8s var(--ease) both}@keyframes scene-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:760px){.wedding-story{height:400svh}.wedding-sticky.cover{min-height:0;display:block;padding:160px 0 0}.wedding-frame{position:absolute;inset:164px 0 0;height:auto;opacity:.95}.wedding-frame video{width:100%;height:100%;object-fit:contain;box-shadow:none}.wedding-copy{position:absolute;inset:180px 18px auto;max-width:none;z-index:2}.wedding-copy>.eyebrow{font-size:7px}.wedding-beats{margin-top:12px;height:155px}.wedding-copy .wedding-beat h1,.wedding-names{font-size:45px;line-height:.95}.wedding-beat{gap:12px}.wedding-beat>p:not(.wedding-names):not(.small-caps){font-size:15px}.wedding-beat .villa-isotype{width:26px;height:34px}.wedding-actions{position:fixed;bottom:18px;left:24px;right:24px;padding:12px 10px;background:#f2e5d6ed;gap:12px}.wedding-story:not(.story-visible) .wedding-actions{visibility:hidden}.wedding-actions input{flex-basis:100%;height:14px}.wedding-scroll-mark{display:none}.wedding-sticky .small-caps{font-size:7px;letter-spacing:1px}.wedding-beat.active{background:#f2e5d640;text-shadow:0 1px 10px var(--paper)}
.horizontal-invitation .masthead{height:68px;padding:8px 16px}.horizontal-invitation .brand{gap:7px;max-width:145px}.horizontal-invitation .brand-name{font-size:9px;letter-spacing:1px}.horizontal-invitation .brand-mark{width:23px;height:31px}.horizontal-invitation .demo-button{font-size:7px;width:78px}.horizontal-invitation .collection-switch{top:68px;left:0;right:0;transform:none;height:38px;padding:6px 15px;background:var(--paper);font-size:8px;gap:28px}.horizontal-invitation .collection-switch a{padding:4px 0}.horizontal-invitation main{top:106px;height:calc(100svh - 179px)}.film-panel h2{font-size:41px;line-height:1}.panel-scroll{padding:24px 20px}.film-panel .eyebrow{font-size:8px;letter-spacing:1.5px}.film-panel .small-caps{font-size:8px;letter-spacing:1.7px}.film-panel .section-heading{margin-bottom:20px}.film-intro.cover{display:block;padding:0}.angel-film{position:absolute;inset:0;height:100%}.angel-film video{width:100%;height:100%;object-fit:cover;object-position:center}.film-intro-copy{position:absolute;inset:30px 12px auto;text-align:center;z-index:1;padding:0;max-width:none}.film-intro-copy>.eyebrow{font-size:6px;letter-spacing:1px}.film-intro-copy h1{font-size:48px;margin:12px 0 0;letter-spacing:-1px}.angel-name{font-size:63px;line-height:1;margin:0 0 8px}.film-intro-copy>p:not(.eyebrow):not(.angel-name):not(.film-hint){font-size:16px;line-height:1.3}.film-intro-copy .button{position:fixed;bottom:102px;left:50%;transform:translateX(-50%);white-space:nowrap;margin:0;background:#f0f1e7ee;min-height:42px;font-size:9px}.film-intro:not(.active) .film-intro-copy .button{display:none}.film-intro-copy .text-link{margin-top:10px;background:#f0f1e7b8;font-size:7px}.film-hint{display:none}.film-panel .invitation-frame{padding:18px 13px}.film-panel .invitation-frame h2{font-size:56px;margin:14px 0}.film-panel .invitation-copy{font-size:17px;margin-bottom:15px}.film-panel .date-line{gap:10px}.film-panel .date-line>strong{font-size:47px;padding-inline:18px}.film-panel .date-line>span{font-size:8px;min-width:63px}.film-panel .countdown{gap:9px}.film-panel .countdown div{min-width:36px}.film-panel .countdown span{font-size:29px}.film-panel .countdown small{font-size:6px;letter-spacing:.5px}.film-panel .countdown b{font-size:21px}.film-panel .fine-rule{margin:15px auto}.family-card h2{font-size:39px;line-height:1.1}.family-card>p:not(.eyebrow):not(.small-caps){font-size:19px;line-height:1.65}.family-card .family-signature{font-size:37px!important}.baptism-venue .facade-feature img{height:250px;object-fit:cover}.baptism-venue .facade-feature>span{font-size:6px;padding:40px 13px 13px}.venue-details{grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}.venue-details .button{grid-column:1/-1;width:100%}.venue-details img{height:95px}.venue-details .photo-button>span{font-size:6px}.film-panel .menu-layout{display:block}.film-panel .menu-intro{text-align:center}.film-panel .menu-intro .villa-isotype,.film-panel .menu-intro>p:not(.eyebrow),.film-panel .menu-signature{display:none}.film-panel .menu-intro h2{margin:12px 0 22px;font-size:37px}.film-panel .menu-card{padding:20px 17px}.film-panel .menu-card article{padding:14px 0}.film-panel .menu-card h3{font-size:24px}.film-panel .menu-card article p{font-size:15px}.film-panel .menu-tabs{gap:10px}.film-panel .menu-tabs button{font-size:8px}.film-panel .menu-footnote{font-size:8px}.film-panel .timeline li{padding:16px 0;gap:15px;grid-template-columns:49px 1fr 16px}.film-panel .timeline time{font-size:20px}.film-panel .timeline h3{font-size:24px}.film-panel .timeline li p{font-size:16px}.film-panel .dress-frame{padding:25px 15px}.film-panel .dress-frame h2{margin:20px 0}.film-panel .dress-frame>p:not(.eyebrow):not(.small-caps){font-size:18px}.film-panel .swatches{gap:11px;margin:25px 0}.film-panel .swatches i{width:35px;height:35px}.film-panel .swatches span{font-size:6px}.film-panel .location-layout{display:block}.film-panel .location-info{text-align:center}.film-panel .location-info .villa-isotype{display:none}.film-panel .location-info h3{font-size:30px}.film-panel .location-info p{font-size:17px}.film-panel .map-links{align-items:center;gap:13px;margin-top:20px}.film-panel .location-layout iframe{height:210px;width:100%;margin-top:22px}.film-panel .arrival-notes summary{font-size:16px}.film-panel .rsvp-details{margin:15px auto}.film-panel .rsvp-details summary{padding:20px 15px}.film-panel .rsvp-title{font-size:39px}.film-panel .rsvp-content{padding:5px 15px 25px}.film-panel .form-row{display:block}.film-panel .rsvp-content p{font-size:17px}.film-panel .form-note{font-size:9px!important}.closing-scene .footer h2{font-size:42px}.closing-scene .footer-bottom{margin-top:25px;flex-direction:column;gap:18px}.closing-scene .footer-brand{font-size:32px}.closing-scene .footer .villa-isotype{width:45px;height:59px}.film-controls{height:73px;gap:8px;padding:10px 12px}.film-controls>button{min-width:30px}.film-controls #film-play{font-size:7px;min-width:68px;max-width:74px;padding:6px}.film-timeline p{font-size:7px;letter-spacing:0;gap:8px}.film-timeline input{height:20px}.film-controls .film-timeline{flex:1}.film-panel.active .section-heading{animation:none}}
@media(max-width:360px){.horizontal-invitation .brand-name{font-size:8px}.panel-scroll{padding:20px 15px}.film-intro-copy{top:17px}.film-intro-copy h1{font-size:42px}.angel-name{font-size:53px}.film-intro-copy>p:not(.eyebrow):not(.angel-name):not(.film-hint){font-size:14px}.film-panel .swatches{gap:8px}.film-panel .swatches i{width:31px;height:31px}.film-controls #film-play{min-width:59px}.family-card h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){.wedding-story{height:100svh}.wedding-beat,.film-panel.active .family-card h2,.film-panel.active .section-heading{animation:none;transition:none}.wedding-actions input,.wedding-actions>p,.wedding-actions button{display:none}.horizontal-invitation main{scroll-behavior:auto}.film-controls #film-play{display:none}}
