@font-face{font-family:Biro Script;src:url(/assets/Biro_Script_reduced-CxZow-qC.otf)format("opentype"),url(/assets/Biro_Script_reduced-BvLoj2eU.ttf)format("truetype");font-weight:400;font-style:normal}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Biro Script,cursive,serif}#root{width:100%;height:100%}.page{background-position:50%;background-size:cover;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.leaf{z-index:1;pointer-events:none;opacity:.5;position:absolute}.leaf-top-left{width:140px;top:-10px;left:-10px}.leaf-bottom-right{z-index:10;opacity:.3;filter:brightness(1.4);width:160px;bottom:60px;right:0}.center-content{z-index:2;flex-direction:column;align-items:center;width:min(88vw,380px);margin-top:60px;display:flex;position:relative;container-type:inline-size}.bride-message{color:#3d4f3d;text-align:center;margin-bottom:14px;font-family:Biro Script,cursive,serif;font-size:22px;line-height:1.5}.nav-row{flex-direction:column;align-items:center;gap:8px;margin-top:18px;display:flex}.back-btn{color:#4a5e4a;cursor:pointer;letter-spacing:.5px;opacity:.7;background:0 0;border:none;font-family:Biro Script,cursive,serif;font-size:14px;transition:opacity .2s}.back-btn:hover{opacity:1}.hint-text{color:#4a5e4a;letter-spacing:.5px;font-family:Biro Script,cursive,serif;font-size:14px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.pulse{animation:2s ease-in-out infinite pulse}.opening-scene{animation:1s ease-in-out fadeIn}.letter-fade-in{animation:.5s ease-in-out fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.closed-envelope{cursor:pointer;transition:transform .3s;position:relative;transform:rotate(-3deg)}.closed-envelope:hover{transform:rotate(-3deg)scale(1.03)}.envelope-closed-img{filter:drop-shadow(0 6px 20px #0000002e);width:100%;display:block}.seal-img{filter:drop-shadow(0 3px 6px #00000040);pointer-events:none;width:22%;position:absolute;bottom:6%;left:50%;transform:translate(-50%)}.open-envelope{cursor:pointer;width:100%;position:relative;transform:rotate(-3deg)}.flap-img{z-index:1;filter:drop-shadow(0 -2px 8px #0000000f);width:100%;display:block;position:relative}.letter{z-index:2;background-repeat:no-repeat;background-size:100% 100%;width:82%;transition:none;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}.letter-step-1{clip-path:inset(0 0 15%);transform:translate(-50%)translateY(-35%)}.letter-step-2,.letter-step-3,.letter-step-4{aspect-ratio:3/5;transform:translate(-50%)translateY(-18%)}.letter-content{color:#3d4f3d;padding:6% 8%;font-family:Biro Script,cursive,serif;position:relative}.letter-step-2 .letter-content,.letter-step-3 .letter-content,.letter-step-4 .letter-content{scrollbar-width:none;padding:0 0 50px;position:absolute;inset:4% 8%;overflow-y:auto}.letter-step-2 .letter-content::-webkit-scrollbar{display:none}.letter-step-3 .letter-content::-webkit-scrollbar{display:none}.letter-step-4 .letter-content::-webkit-scrollbar{display:none}.body-pocket{z-index:3;width:100%;position:absolute;bottom:0;left:0}.body-pocket-img{filter:drop-shadow(0 2px 10px #0000001a);width:100%;display:block}.monogram-img{opacity:.3;pointer-events:none;width:36%;position:absolute;top:87%;left:50%;transform:translate(-50%,-50%)}.greeting{text-align:center;margin-bottom:10px;font-size:clamp(20px,5.5cqw,30px)}.body-text{margin-bottom:10px;font-size:clamp(16px,4.2cqw,21px);line-height:1.6}.teaser{text-align:center;font-size:clamp(17px,4.5cqw,22px);line-height:1}.details{text-align:left}.details-title{text-align:center;margin-bottom:12px;font-size:clamp(17px,4.5cqw,24px);line-height:1.4}.detail-row{align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.detail-icon{flex-shrink:0;margin-top:2px;font-size:clamp(17px,4cqw,21px)}.detail-icon-img{flex-shrink:0;width:clamp(21px,5.5cqw,29px);height:auto;margin-top:2px}.detail-label{letter-spacing:.5px;margin-bottom:2px;font-size:clamp(14px,3.5cqw,17px);font-weight:700;text-decoration:underline}.detail-value{font-size:clamp(13px,3.5cqw,16px);line-height:1.5}.additional-note{text-align:center;font-size:clamp(13px,3.5cqw,16px);font-style:italic;line-height:1}.final{text-align:center;flex-direction:column;align-items:center;display:flex}.closing-message{margin-bottom:12px;font-size:clamp(15px,4.2cqw,20px);line-height:1.6}.so-text{margin-bottom:4px;font-size:clamp(20px,5.5cqw,28px)}.will-you{margin-bottom:2px;font-size:clamp(22px,6cqw,32px)}.bridesmaid-text{letter-spacing:2px;color:#3d4f3d;margin-bottom:6px;font-size:clamp(32px,9cqw,52px);font-weight:700}.bridesmaids-img{width:min(70%,200px);height:auto}@media (width<=380px){.bride-message{font-size:18px}.leaf-top-left,.leaf-bottom-right{width:100px}}
