@font-face{font-family:AlexandraScript;src:url("alexandrascript.ttf") format("truetype");font-weight:400;font-style:normal}:root{--bg-main:#ffffff;--bg-soft:#b2967d;--text-main:#4a342a;--text-muted:#7d5a44;--text-heading:#4a342a;--text-dark:#4a342a;--accent-color:#7d5a44;--accent-hover:#4a342a;--white:#ffffff;--overlay-bg:rgba(255, 255, 255, 0.7);--toast-success:#27ae60;--toast-success-border:#1e8449;--toast-error:#e74c3c;--toast-error-border:#c0392b;--error-bg:#e74c3c;--error-border:#c0392b;--error-accent:#f39c12;--font-primary:"Spectral","Georgia",serif;--font-heading:"AlexandraScript";--font-sans:"Inter",sans-serif;--text-sm:1rem;--text-md:1.25rem;--text-lg:2.5rem;--text-xl:4rem;--text-section-title:5rem;--text-hero-title:7rem;--text-calendar-title:4rem;--text-flap-top:5rem;--text-final:5.5rem;--text-event-time:2rem;--text-detail-marker:1.2rem;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:2.5rem;--space-2xl:3rem;--radius-sm:8px;--radius-md:12px;--radius-lg:15px;--radius-pill:30px;--radius-round:50%;--shadow-sm:0 4px 10px rgba(0, 0, 0, 0.15);--shadow-md:0 10px 20px rgba(0, 0, 0, 0.1);--shadow-lg:0 10px 30px rgba(0, 0, 0, 0.15);--shadow-card:0 4px 15px rgba(0, 0, 0, 0.05);--shadow-drop:0 10px 15px rgba(0, 0, 0, 0.1);--shadow-flap:0 10px 20px rgba(0, 0, 0, 0.5);--shadow-mark:0 4px 6px rgba(0, 0, 0, 0.5);--transition-fast:0.3s ease;--transition-med:0.5s ease;--mark-size:250px;--timing-circle:180px;--timing-border:4px;--gallery-row-h:250px;--content-max-w:800px;--map-max-w:1000px;--calendar-max-w:450px;--calendar-gap:8px;--color-strip-w:200px;--color-strip-h:60px}@media (max-width:768px){:root{--text-xl:3rem;--text-lg:1.8rem;--text-md:1.125rem;--text-section-title:3.5rem;--text-hero-title:5rem;--text-calendar-title:3rem;--text-flap-top:3.5rem;--text-final:3rem;--text-event-time:1.5rem;--mark-size:200px;--timing-circle:80px;--timing-border:2px;--gallery-row-h:180px;--calendar-max-w:360px;--color-strip-w:100%}}@media (max-width:480px){:root{--text-xl:2.2rem;--text-lg:1.4rem;--text-md:1rem;--text-sm:0.9rem;--text-section-title:2.8rem;--text-hero-title:3.5rem;--text-calendar-title:2.5rem;--text-flap-top:2.5rem;--text-final:2.2rem;--text-event-time:1.2rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--mark-size:160px;--timing-circle:60px;--gallery-row-h:140px;--calendar-max-w:300px;--calendar-gap:4px;--color-strip-h:50px}}*{margin:0;padding:0;box-sizing:border-box;font-family:var(--font-primary)}body{background-color:var(--bg-main);color:var(--text-main);overflow-x:hidden;line-height:1.6}body::before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--bg-main);z-index:-1;opacity:1;transition:opacity 1.5s ease}body.no-scroll{overflow:hidden}body.no-scroll::before{opacity:0}.section{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-lg) var(--space-2xl);text-align:center;background-image:url("img/bg.jpg");background-image:-webkit-image-set(url("img/bg.webp") type("image/webp"));background-image:image-set(url("img/bg.webp") type("image/webp"));background-size:cover;background-position:center 0;overflow:hidden;justify-content:flex-start}.section-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right,transparent 0,var(--overlay-bg) 5%,var(--overlay-bg) 95%,transparent 100%);z-index:1;pointer-events:none}.section-title{font-family:var(--font-heading);font-size:var(--text-section-title);font-weight:400;line-height:.8;margin-bottom:var(--space-sm);color:var(--accent-color);text-transform:none;z-index:2;text-align:center}.content-box{max-width:var(--content-max-w);font-size:var(--text-md);color:var(--text-heading);background:0 0;z-index:2;text-align:left}.btn-primary{display:inline-flex;align-items:center;justify-content:center;background-color:var(--accent-color);color:var(--white);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);text-decoration:none;font-family:var(--font-primary);font-weight:700;font-size:var(--text-md);margin-top:var(--space-md);border:none;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast);box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--accent-hover);transform:translateY(-2px)}.envelope-section{position:relative;width:100%;min-height:100vh;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;padding:0}.invitation-card{position:absolute;top:0;left:0;z-index:0;opacity:1;text-align:center;width:100%;height:100vh;max-width:none;min-height:auto;background-image:url("img/layer-2.png");background-image:-webkit-image-set(url("img/layer-2.webp") type("image/webp"));background-image:image-set(url("img/layer-2.webp") type("image/webp"));background-size:cover;background-position:center;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-2xl) var(--space-lg)}.invitation-card .hero-title{position:relative;z-index:2;font-family:var(--font-heading);font-size:var(--text-hero-title);font-weight:400;line-height:.8;color:var(--accent-color);background:0 0;-webkit-text-fill-color:initial;margin-bottom:var(--space-md)}.invitation-card,.invitation-card .hero-subtitle{z-index:2;font-size:var(--text-lg);font-weight:700;color:var(--text-main);margin-bottom:var(--space-sm)}.invitation-text{font-weight:400;z-index:2}.envelope-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--white);z-index:1}.leaf{position:absolute;z-index:1;opacity:0;pointer-events:none;width:120%;max-width:600px}.leaf img{width:100%;height:auto;filter:drop-shadow(var(--shadow-drop))}.leaf-lt{top:0;left:0;transform-origin:top left}.leaf-rb{bottom:0;right:0;transform-origin:bottom right}.polygon-top{position:absolute;top:0;left:0;width:100%;height:55vh;z-index:3;transform-origin:top;pointer-events:none;display:flex;justify-content:center;align-items:flex-end}.flap-img-top{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:bottom;filter:drop-shadow(var(--shadow-flap))}.flap-text-top{position:relative;z-index:1;font-size:var(--text-flap-top);font-family:var(--font-heading);line-height:.8;font-weight:400;color:var(--text-muted);text-align:center;padding:var(--space-sm);padding-bottom:30vh;letter-spacing:1px}.polygon-bottom{position:absolute;bottom:0;left:0;width:100%;height:75vh;z-index:2;transform-origin:bottom;pointer-events:none;display:flex;justify-content:center;align-items:flex-start}.flap-img-bottom{position:absolute;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:bottom;transform:rotate(180deg)}.flap-text-bottom{position:relative;z-index:1;font-size:var(--text-sm);font-weight:700;color:var(--text-muted);text-align:center;padding:var(--space-sm);padding-top:35vh;max-width:80%}.mark-container{position:absolute;top:55vh;left:50%;transform:translate(-50%,-80%);z-index:4;cursor:pointer;transition:transform .2s}.mark-container:hover{transform:translate(-50%,-80%) scale(1.1)}.mark-btn{width:var(--mark-size);height:var(--mark-size);object-fit:contain;filter:drop-shadow(var(--shadow-mark))}.fallback-mark{width:160px;height:160px;background-color:var(--error-bg);border-radius:var(--radius-round);border:4px solid var(--error-border);display:flex;justify-content:center;align-items:center;box-shadow:var(--shadow-sm)}.fallback-mark::after{content:"";width:120px;height:120px;border:4px dashed var(--error-accent);border-radius:var(--radius-round)}.bg-section{background-image:url("img/bg-section.png");background-image:-webkit-image-set(url("img/bg-section.webp") type("image/webp"));background-image:image-set(url("img/bg-section.webp") type("image/webp"));background-position:center;position:relative;width:90vw;height:100vh;margin:auto}.calendar-container{background:0 0;padding:var(--space-md);max-width:var(--calendar-max-w);width:100%;margin:0 auto}.guests-section .content-box{text-align:center}.calendar-title{font-family:var(--font-heading);font-size:var(--text-calendar-title);font-weight:400;line-height:.8;color:var(--accent-color);margin-bottom:var(--space-md);text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--calendar-gap);text-align:center}.day-name{font-weight:700;color:var(--accent-hover);margin-bottom:var(--space-xs);font-size:var(--text-sm)}.day{font-size:var(--text-md);padding:var(--calendar-gap) 0;position:relative;color:var(--text-heading);display:flex;justify-content:center;align-items:center}.day.empty{pointer-events:none}.special-day{font-weight:900;color:var(--accent-color);z-index:2}.wedding-ring{position:absolute;top:-50%;left:-30%;transform:translate(-50%,-50%);transform-origin:center 60%;width:80px;height:80px;object-fit:contain;pointer-events:none;z-index:-1}.countdown-container{display:flex;gap:var(--space-sm);justify-content:center;align-items:center;flex-wrap:nowrap}.countdown-item{display:flex;flex-direction:column;align-items:center;background:var(--overlay-bg);padding:var(--space-xs);border-radius:var(--radius-lg);min-width:80px;box-shadow:var(--shadow-card);border:2px solid var(--white)}.gallery-section{padding:var(--space-xl) var(--space-md)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:var(--gallery-row-h);gap:var(--space-sm);max-width:1200px;width:100%;margin:0 auto;z-index:2}.gallery-item{position:relative;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--white)}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-med)}.gallery-item:hover img{transform:scale(1.05)}.item-1{grid-column:span 4;grid-row:span 2}.item-2{grid-column:span 2;grid-row:span 3}.item-3{grid-column:span 2;grid-row:span 3}.item-4{display:none}.countdown-value{font-size:var(--text-xl);font-weight:700;color:var(--accent-color);line-height:1}.countdown-label{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;margin-top:var(--space-xs);letter-spacing:1px}.location-img{width:100%;max-width:600px;height:auto;border-radius:var(--radius-lg);margin-top:var(--space-lg);box-shadow:var(--shadow-lg);border:var(--timing-border) solid var(--white);transition:transform var(--transition-fast)}.location-img:hover{transform:scale(1.02)}.location-info{text-align:center;font-size:var(--text-lg);margin-top:var(--space-md);color:var(--text-heading);line-height:1.4}.map{width:100%;max-width:var(--map-max-w);margin:var(--space-lg) auto 0 auto;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:var(--timing-border) solid var(--white)}.map iframe{height:400px;border:none;display:block}.timeline{position:relative;max-width:1000px;width:100%;margin:0 auto;padding:var(--space-2xl) var(--space-md)}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background-color:var(--text-dark);transform:translateX(-50%);z-index:1}.timeline-heart{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);z-index:5;pointer-events:none;transition:top .1s ease-out}.timeline-item{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-xl);margin-bottom:var(--space-2xl);position:relative;z-index:2}.timeline-image-container{display:flex;justify-content:flex-end}.timing-img-circle{width:var(--timing-circle);height:var(--timing-circle);border-radius:var(--radius-round);object-fit:cover;border:var(--timing-border) solid var(--white);box-shadow:var(--shadow-md)}.timeline-point{width:12px;height:12px;background-color:var(--text-dark);border-radius:var(--radius-round);position:relative;z-index:4}.timeline-content{text-align:left}.event-time{font-family:var(--font-primary);font-weight:400;font-size:var(--text-event-time);color:var(--accent-color);margin-bottom:2px}.event-title{font-size:var(--text-lg);font-weight:400;color:var(--text-main);margin-bottom:var(--space-xs)}.content-box p{margin-bottom:var(--space-md)}.details-list{list-style:none;padding:0;text-align:left;max-width:650px;margin:0 auto}.details-list li{position:relative;padding-left:var(--space-xl);margin-bottom:var(--space-md);font-size:var(--text-md);line-height:1.6}.details-list li::before{content:"✦";position:absolute;left:0;color:var(--accent-color);font-size:var(--text-detail-marker)}.palette-container{display:flex;justify-content:center;gap:var(--space-sm);margin-top:var(--space-xl);flex-wrap:wrap}.color-strip{width:var(--color-strip-w);height:var(--color-strip-h);border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);font-weight:600;box-shadow:var(--shadow-card);border:2px solid var(--white);transition:transform var(--transition-fast);cursor:default}.color-strip:hover{transform:scale(1.05)}.rsvp-form{margin-top:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg);width:100%}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-weight:700;color:var(--accent-color);font-size:var(--text-md);margin-bottom:4px}.form-group input[type=text],.form-group textarea{padding:var(--space-sm);border:1px solid var(--bg-soft);border-radius:var(--radius-sm);background:rgba(255,255,255,.5);font-family:var(--font-primary);font-size:var(--text-md);color:var(--text-main);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus{outline:0;border-color:var(--accent-color);background:var(--white)}.checkbox-group,.radio-group{display:flex;gap:var(--space-lg);flex-wrap:wrap;margin-top:4px}.checkbox-label,.radio-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--text-md);color:var(--text-main)}.checkbox-label input,.radio-label input{accent-color:var(--accent-color);width:1.4rem;height:1.4rem}.final-section{background-image:none!important;background-color:var(--text-dark)!important;color:var(--bg-main);padding:100px var(--space-lg);position:relative;overflow:visible;margin-top:60px}.final-section .section-overlay{display:none}.final-section::before{content:"";position:absolute;top:-59px;left:0;width:100%;height:60px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100 Q 500 0, 1000 100 V 100 Z' fill='%234a342a' /%3E%3C/svg%3E");background-size:100% 60px;background-repeat:no-repeat}.final-text{font-family:var(--font-heading);font-size:var(--text-final);line-height:.8;max-width:950px;margin:0 auto;text-align:center;color:var(--bg-main);z-index:2}@media (max-width:768px){.wedding-ring{top:-65%;left:-70%}.flap-text-bottom{padding-top:35vh}.timeline-item{grid-template-columns:1fr auto 1fr;gap:var(--space-sm);padding-left:0}.timeline-image-container{padding:0}.wedding-ring{left:-65%}.gallery-grid{grid-template-columns:repeat(2,1fr)}.item-1{grid-column:span 2;grid-row:span 2}.item-2{grid-column:span 1;grid-row:span 2}.item-3{grid-column:span 1;grid-row:span 1}.item-4{grid-column:span 1;grid-row:span 1;display:block}.timeline-content{padding:0}.event-time{font-size:var(--text-event-time)}.event-title{font-size:var(--text-md)}.event-desc{font-size:.8rem;max-width:100%}.final-text{padding:0 var(--space-sm)}.timeline-point{position:static}.color-strip{max-width:240px}.toast-notification{top:auto;bottom:20px;right:20px;left:20px;max-width:none;transform:translateY(100px)}.toast-notification.show{transform:translateY(0)}}@media (max-width:480px){.section{padding:var(--space-sm) var(--space-md)}.invitation-card{padding:var(--space-lg) var(--space-sm)}.flap-text-top{padding-bottom:25vh}.flap-text-bottom{padding-top:38vh;max-width:90%}.wedding-ring{top:-95%;left:-74%}.countdown-container{flex-wrap:nowrap;gap:var(--space-xs)}.countdown-item{min-width:60px;display:flex;background:0 0;padding:0;box-shadow:none;border:2px solid var(--white)}.timeline-item{gap:var(--space-xs)}.gallery-grid{grid-template-columns:1fr}.item-1,.item-2,.item-3,.item-4{grid-column:span 1;grid-row:span 2}.calendar-container{padding:var(--space-sm)}.details-list{max-width:100%}.map iframe{width:100%!important}.final-section{padding:60px var(--space-sm);margin-top:40px}.color-strip{max-width:100%}.checkbox-group,.radio-group{gap:var(--space-sm)}}.toast-notification{position:fixed;top:30px;right:30px;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);color:var(--white);font-family:var(--font-sans);font-weight:600;z-index:9999;box-shadow:var(--shadow-md);transition:all .4s cubic-bezier(.68, -.55, .265, 1.55);opacity:0;transform:translateX(100px);max-width:320px;text-align:center}.toast-notification.show{opacity:1;transform:translateX(0)}.toast-success{background:var(--toast-success);border-left:5px solid var(--toast-success-border)}.toast-error{background:var(--toast-error);border-left:5px solid var(--toast-error-border)}