/* Interactive collection — shared structure, three distinct opening rituals. */
[hidden]{display:none!important}
img{height:auto}.collection-switch{display:flex;justify-content:center;gap:24px;position:absolute;top:137px;left:0;right:0;z-index:3;font:500 9px var(--sans);letter-spacing:1px}.collection-switch a{padding:8px 0;border-bottom:1px solid transparent}.collection-switch a[aria-current]{border-color:var(--gold)}.collection-switch a:hover{color:var(--gold)}.chapter-nav:before{content:'';position:absolute;left:0;bottom:-1px;height:2px;width:var(--reading-progress,0%);background:var(--gold);transition:width .1s linear}.opening-trigger{touch-action:manipulation;transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease}.paper-ribbon{cursor:pointer}.paper-ribbon .ribbon-detail{position:relative;z-index:2}.tear-piece{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 55% 90%,#7e283a,transparent 70%),linear-gradient(100deg,#49111d,#6d1c2d 40%,#701b2d 85%,#41131d);z-index:1}.tear-piece:after{content:'';position:absolute;inset:0;background:url('paper-grain.svg');opacity:.5;mix-blend-mode:soft-light}.tear-top{clip-path:polygon(0 7%,4% 10%,8% 7%,13% 10%,17% 5%,23% 8%,27% 5%,33% 8%,38% 4%,45% 7%,51% 4%,58% 9%,64% 5%,69% 9%,76% 6%,83% 9%,91% 5%,100% 8%,100% 51%,96% 48%,92% 52%,88% 49%,84% 53%,80% 50%,76% 47%,72% 52%,68% 49%,64% 52%,60% 47%,56% 51%,52% 48%,48% 52%,44% 49%,40% 53%,36% 48%,32% 51%,28% 47%,24% 52%,20% 48%,16% 52%,12% 48%,8% 51%,4% 48%,0 51%)}.tear-bottom{clip-path:polygon(0 51%,4% 48%,8% 51%,12% 48%,16% 52%,20% 48%,24% 52%,28% 47%,32% 51%,36% 48%,40% 53%,44% 49%,48% 52%,52% 48%,56% 51%,60% 47%,64% 52%,68% 49%,72% 52%,76% 47%,80% 50%,84% 53%,88% 49%,92% 52%,96% 48%,100% 51%,100% 93%,94% 96%,87% 91%,82% 95%,75% 92%,69% 97%,62% 93%,56% 96%,49% 91%,43% 95%,36% 92%,29% 96%,21% 91%,14% 95%,7% 92%,0 95%)}.tear-thread{position:absolute;top:48%;left:0;width:100%;height:10px;background:var(--paper);z-index:4;transform:scaleX(0);transform-origin:left;clip-path:polygon(0 40%,5% 70%,10% 20%,15% 60%,20% 10%,25% 70%,30% 30%,35% 80%,40% 20%,45% 60%,50% 10%,55% 70%,60% 30%,65% 80%,70% 20%,75% 60%,80% 10%,85% 70%,90% 30%,95% 80%,100% 20%,100% 100%,0 100%)}.breaking .paper-ribbon{transform:none}.breaking .paper-ribbon:before,.breaking .paper-ribbon:after{opacity:0;transition:opacity .2s .38s}.breaking .tear-piece{opacity:1}.breaking .tear-thread{animation:tear-across .55s ease-out forwards}.breaking .tear-top{animation:tear-lift 1.25s var(--ease) .4s forwards}.breaking .tear-bottom{animation:tear-fall 1.25s var(--ease) .4s forwards}.breaking .ribbon-title,.breaking .ribbon-year,.breaking .ribbon-detail{opacity:0;transition:opacity .3s}.breaking .paper-roll{transform:translateX(150px) rotate(18deg);opacity:0;transition:transform .8s,opacity .8s}.breaking .cover-heading{transform:translateY(-10px);transition:transform 1s}.facade-feature{position:relative;display:block;width:100%;margin-bottom:42px;overflow:hidden;background:#28231f}.facade-feature img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:center;filter:saturate(.9);transition:transform 1.8s var(--ease),filter .5s}.facade-feature:hover img{transform:scale(1.035);filter:saturate(1)}.facade-feature>span{position:absolute;left:0;right:0;bottom:0;z-index:1;color:#fff4df;padding:60px 28px 24px;background:linear-gradient(transparent,#17120fe8);font-size:10px}.facade-feature>span:after{content:'AMPLIAR ↗';font:500 8px var(--sans);letter-spacing:1px}.photo-story{grid-template-columns:.8fr 1fr;gap:55px;align-items:center}.portrait{max-width:370px;justify-self:center;overflow:hidden}.portrait img{width:100%;height:430px;object-fit:cover;object-position:center 57%}.story-right .story-quote{margin-bottom:18px}.story-right .landscape{display:none}.story-right:after{content:'Arquitectura, jardines y detalles que hacen de cada celebración una historia propia.';display:block;color:var(--earth);font:italic 22px/1.5 var(--serif);max-width:340px;margin:20px auto}.photo-button{transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease,box-shadow .35s}.photo-button:focus-visible{outline-offset:8px}.timeline li{transition:padding .4s,background .4s}.timeline li:hover{padding-left:18px;background:#b8a58a15}.swatches i{transition:transform .4s,outline-offset .4s}.swatches div:hover i{transform:translateY(-8px) scale(1.12);outline-offset:7px}.swatches div:hover span{color:var(--ink)}.arrival-notes summary:hover{color:var(--gold)}.arrival-notes details[open] summary span{transform:rotate(45deg)}.arrival-notes summary span{transition:transform .3s}.button:hover{transform:translateY(-3px)}.button{transition:transform .3s,background .3s,color .3s}
/* Terracotta wedding envelope, botanical embossing and fluttering butterflies. */
body[data-event=boda]{--paper:#f2e5d6;--ink:#694130;--wine:#8e513a;--earth:#816552;--gold:#a98659;--line:#bea48c}.envelope-cover{min-height:900px;padding-top:190px;justify-content:flex-start;gap:15px}.envelope-cover .cover-heading{margin-bottom:0}.envelope-cover h1{font-size:89px;line-height:.9;margin:20px 0 15px}.envelope-cover .cover-subtitle{font-size:18px}.envelope-stage{position:relative;width:330px;height:310px;margin:15px auto 0;perspective:1000px;border:0;background:transparent;color:var(--ink);isolation:isolate}.envelope-back{position:absolute;inset:25px 0 10px;background:#9b6148;box-shadow:0 20px 40px #5d342938;border:1px solid #b88369}.envelope-letter{position:absolute;left:25px;right:25px;top:55px;bottom:25px;background:var(--paper);padding:30px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;box-shadow:0 3px 10px #0002;z-index:1;transition:transform 1.2s var(--ease) .55s}.envelope-letter strong{font:400 41px var(--script)}.envelope-letter small{font:500 8px var(--sans);letter-spacing:2px}.envelope-left,.envelope-right,.envelope-bottom,.envelope-flap{position:absolute;inset:25px 0 10px;background:#ad7051 url('botanical.svg') center/240px;z-index:2;filter:drop-shadow(0 2px 2px #4e251944);transition:transform 1.1s var(--ease),opacity 1s}.envelope-left{clip-path:polygon(0 0,53% 52%,0 100%);transform-origin:left}.envelope-right{clip-path:polygon(100% 0,47% 52%,100% 100%);transform-origin:right}.envelope-bottom{clip-path:polygon(0 100%,50% 45%,100% 100%);transform-origin:bottom;background-color:#965637}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:top;background-color:#b47753;z-index:3;backface-visibility:hidden}.wax-button{position:absolute;left:calc(50% - 29px);top:calc(50% - 17px);width:58px;height:58px;display:grid;place-items:center;background:radial-gradient(circle at 40% 30%,#d8b66e,#af8840 65%,#8c6b31);border:4px double #debb77;border-radius:47% 51% 45% 53%;font:italic 24px var(--serif);color:#684621;z-index:4;box-shadow:0 5px 9px #341b2740;transition:transform .55s,opacity .4s}.opening-hint{font:500 8px var(--sans);letter-spacing:1.8px;margin-top:12px;color:var(--earth)}.envelope-cover .scroll-invitation{margin-top:6px}.breaking .wax-button{transform:scale(1.2) translateY(20px);opacity:0}.breaking .envelope-flap{transform:rotateX(180deg);z-index:0}.breaking .envelope-left{transform:translateX(-45px) rotateY(-55deg)}.breaking .envelope-right{transform:translateX(45px) rotateY(55deg)}.breaking .envelope-bottom{transform:rotateX(-40deg) translateY(30px)}.breaking .envelope-letter{transform:translateY(-110px)}.butterfly{position:absolute;top:40px;right:-27px;width:48px;height:35px;z-index:5;animation:butterfly-drift 5s ease-in-out infinite}.butterfly:before,.butterfly:after{content:'';position:absolute;top:0;width:25px;height:32px;background:linear-gradient(45deg,#8b513d,#d4a383);border:1px solid #9b684c;border-radius:70% 20% 75% 20%;animation:wing 1.4s ease-in-out infinite}.butterfly:before{left:0;transform-origin:right}.butterfly:after{right:0;transform:scaleX(-1);transform-origin:left;animation-direction:reverse}.breaking .butterfly{animation:butterfly-depart 1.7s ease-in forwards}.botanical-corner{position:absolute;pointer-events:none;width:220px;height:250px;background:url('botanical.svg') center/contain;opacity:.27;top:180px;left:-50px;transform:rotate(25deg)}.botanical-corner.right{left:auto;right:-50px;top:400px;transform:rotate(190deg)}
/* Sage baptism envelope with a small original angel illustration. */
.butterfly:before{width:55px;height:46px;left:-4px;top:-5px;background:transparent url('butterfly.svg') center/contain no-repeat;border:0;border-radius:0;transform-origin:center;animation:wing 1.4s ease-in-out infinite}.butterfly:after{display:none}
body[data-event=bautizo]{--paper:#f0f1e7;--ink:#405948;--wine:#66816b;--earth:#687465;--gold:#ae965f;--line:#afbba4}.baptism-cover .envelope-back{background:#6d8a72}.baptism-cover .envelope-left,.baptism-cover .envelope-right,.baptism-cover .envelope-flap{background-color:#91aa91;background-image:url('botanical-sage.svg')}.baptism-cover .envelope-bottom{background-color:#78987f;background-image:url('botanical-sage.svg')}.baptism-cover .butterfly{display:none}.baptism-cover .botanical-corner{background-image:url('botanical-sage.svg');opacity:.65;width:300px;height:320px;left:-70px;top:195px}.baptism-cover .botanical-corner.right{left:auto;right:-60px;top:480px}.angel{width:82px;height:96px;object-fit:contain}.baptism-cover .envelope-letter{padding:15px 12px;gap:4px}.baptism-cover .envelope-letter strong{font-size:36px}.baptism-cover .envelope-cover h1{color:var(--ink)}body[data-event=bautizo] .tear-piece{background:var(--wine)}
@keyframes tear-across{to{transform:scaleX(1)}}@keyframes tear-lift{to{transform:translateY(-55px) rotate(-2deg);opacity:1}}@keyframes tear-fall{to{transform:translateY(65px) rotate(2deg);opacity:1}}@keyframes wing{50%{transform:rotateY(65deg)}}@keyframes butterfly-drift{50%{transform:translate(-15px,-16px) rotate(-12deg)}}@keyframes butterfly-depart{to{transform:translate(150px,-210px) rotate(20deg);opacity:0}}
@media(max-width:760px){.collection-switch{top:125px;font-size:8px;gap:25px}.cover:not(.envelope-cover){padding-top:160px;min-height:760px}.facade-feature img{aspect-ratio:4/3;object-position:center}.facade-feature>span{padding:50px 16px 17px;font-size:7px}.facade-feature>span:after{font-size:6px}.photo-story{gap:22px;grid-template-columns:.9fr 1fr}.portrait img{height:260px}.story-right .story-quote{font-size:27px}.story-right:after{font-size:16px;margin:12px auto}.envelope-cover{min-height:850px;max-height:none;height:auto;padding:188px 20px 35px;gap:9px}.envelope-cover h1{font-size:76px}.envelope-stage{width:280px;height:280px;margin-top:10px}.envelope-letter strong{font-size:36px}.botanical-corner{width:140px;height:190px}.baptism-cover .botanical-corner{width:190px;height:250px}.envelope-cover .scroll-invitation{margin-top:5px}.wax-button{top:calc(50% - 17px)}.opening-hint{font-size:7px}.facade-feature{margin-bottom:30px}}
@media(max-width:760px){.envelope-cover{min-height:800px;padding-top:180px}.envelope-cover h1{font-size:62px;line-height:.95}.baptism-cover h1{font-size:57px}.envelope-cover .cover-subtitle{font-size:17px;max-width:300px}.envelope-cover .envelope-stage{margin-top:5px}.baptism-cover .envelope-letter strong{font-size:30px}.baptism-cover .envelope-letter .angel{width:70px;height:82px}}
@media(max-width:360px){.envelope-stage{width:255px;height:270px}.envelope-cover h1{font-size:53px}.baptism-cover h1{font-size:49px}.portrait img{height:230px}.story-right .story-quote{font-size:24px}.story-right:after{font-size:14px}.facade-feature>span:after{content:'↗'}}
@media(prefers-reduced-motion:reduce){.breaking .tear-piece{display:none}.breaking .paper-ribbon:before{opacity:1}.breaking .ribbon-title,.breaking .ribbon-year,.breaking .ribbon-detail{opacity:1}.photo-button,.opening-trigger{transform:none!important}.breaking .envelope-letter{transform:none}.breaking .envelope-flap,.breaking .envelope-left,.breaking .envelope-right,.breaking .envelope-bottom,.breaking .wax-button{transform:none;opacity:1}}
