@import "https://fonts.googleapis.com/css2?family=Cutive+Mono&family=Inconsolata:wght@200..900&family=Karla:ital,wght@0,200..800;1,200..800&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Space+Grotesk:wght@300..700&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap";:root{--color-burgundy:#7a0000;--color-burgundy-soft:#7a2e2e;--color-dark-yellow:#947338;--color-bg-beige:#faf8f5;--color-card-white:#fdfbf7;--color-text:#2d0808;--color-border:#5d121280;--font-main:"Libre Baskerville", serif;--font-text:"Lora", "Playfair Display", serif;--border-radius:4px;--shadow-card:0 4px 20px #0000000d}*,:before,:after{box-sizing:border-box}html,body{width:100%;margin:0;padding:0;overflow-x:clip}.app,.main-content{flex-direction:column;align-items:center;width:100%;display:flex}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background-color:var(--color-bg-beige);text-align:center;background-repeat:repeat;background-size:800px;min-height:100vh;margin:0}h1,h2{color:var(--color-burgundy);font-family:var(--font-main);text-transform:uppercase;letter-spacing:2px}button:hover{background-color:var(--color-burgundy-soft)}a{text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}li{list-style:none}.fine-print{letter-spacing:.5px;color:var(--color-burgundy);opacity:.9;font-family:Playfair Display,serif;font-size:.9rem;font-style:italic;font-weight:0}.section-container{flex-direction:column;align-items:center;max-width:600px;margin:0 auto;padding:60px 20px;display:flex}.section-title{letter-spacing:.4rem;margin-bottom:.5rem;font-size:2rem}.section-content{width:100%;margin-top:1.5rem}.typewriter-label{font-family:var(--font-main);color:var(--color-burgundy);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.5rem;font-size:.85rem}.typewriter-text{font-family:var(--font-text);margin-bottom:1.5rem;font-size:1.1rem;line-height:1.8}.thin-line{border-top:1px solid var(--color-border);width:100%;max-width:300px;height:0;margin:1.25rem auto}.mini-castle-divider{opacity:.3;width:60px;height:auto;margin-top:2rem}@media (width<=600px){.section-container{padding:35px 20px}.section-title{letter-spacing:.3rem;font-size:1.6rem}.section-content{margin-top:1.25rem}.typewriter-text{font-size:.95rem;line-height:1.6}.thin-line{margin:1rem auto}}.hero-section{text-align:center;margin:0;padding:1.5rem 0 0}.hero-intro{color:var(--color-text);max-width:600px;margin:0 auto;padding:0 2rem;font-size:1rem}.hero-intro .fine-print{margin-top:-.5rem;font-size:1.2rem}.hero-intro .typewriter{font-family:var(--font-main);color:var(--color-text);margin-top:4rem;font-size:1.1rem;line-height:1.8}.hero-intro .typewriter+.typewriter,.castle-container{margin-top:1rem}.castle-img{width:100%;max-width:350px;height:auto;margin:0 auto;display:block}@media (width<=600px){.hero-section{padding-top:1rem}.hero-intro{padding:0 1.25rem}.hero-intro .typewriter{font-size:.95rem}.castle-img{max-width:280px}.castle-container{margin-top:.75rem}}.info-section{text-align:center;gap:1.5rem;padding-top:30px}.info-section .thin-line{margin:0 auto 1rem}.info-block{width:100%}.info-block .typewriter-label{margin-bottom:.4rem}.info-block .typewriter-text{margin-bottom:0;font-size:1rem;line-height:1.5}.info-sub-list{flex-direction:column;align-items:center;gap:1.1rem;margin-top:1.5rem;display:flex}.info-sub-block{width:100%;max-width:420px}.info-sub-label{color:var(--color-burgundy);letter-spacing:.04em;opacity:.9;margin:0 0 .25rem;font-family:Playfair Display,serif;font-size:1.05rem;font-style:italic}.info-sub-block .info-sub-text{margin:0;font-size:.95rem;line-height:1.55}.info-sub-block .info-sub-text+.info-sub-text{margin-top:.1rem}@media (width<=600px){.info-section{gap:1.25rem}.info-block .typewriter-text{font-size:.95rem}.info-sub-list{gap:.9rem}.info-sub-label{font-size:1rem}.info-sub-block .info-sub-text{font-size:.9rem}}.form-page{justify-content:center;min-height:100vh;padding-top:2rem;display:flex}.form-page .section-container{flex-direction:column;align-items:center;width:100%;padding:0 20px;display:flex}.form-header{letter-spacing:.3em;text-align:center;margin-bottom:.5rem}.wedding-form{flex-direction:column;gap:30px;width:100%;max-width:450px;margin-top:40px;display:flex}.form-group{text-align:center;flex-direction:column;gap:10px;display:flex}.form-group select{appearance:none;text-align-last:center;border-radius:0}.form-group label{font-family:var(--font-main);color:var(--color-burgundy);text-transform:uppercase;letter-spacing:2px;font-size:1rem}.form-group input[type=text],.form-group textarea,.form-group select{font-family:var(--font-main);border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);text-align:center;background:0 0;outline:none;padding:10px 5px;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus{border-bottom:1px solid var(--color-burgundy)}.radio-group{font-family:var(--font-main);justify-content:center;gap:30px;margin-top:10px;display:flex}.radio-group label{text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:8px;display:flex}.submit-btn{width:100%;max-width:250px;color:var(--color-burgundy);font-family:var(--font-main);text-transform:uppercase;letter-spacing:2px;border:1px solid var(--color-burgundy);cursor:pointer;background-color:#0000;margin:20px auto 0;padding:14px 20px;font-size:.85rem;transition:background-color .25s,color .25s,transform .2s}.submit-btn:hover{background-color:var(--color-burgundy);color:#fff;transform:translateY(-2px)}.submit-btn.is-loading,.submit-btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.submit-btn.is-loading:hover{color:var(--color-burgundy);background-color:#0000;transform:none}.loading-dots{letter-spacing:.05em;margin-left:2px;display:inline-block}.loading-dots span{opacity:0;animation:1.4s ease-in-out infinite dot-fade;display:inline-block}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-fade{0%,60%,to{opacity:0}30%{opacity:1}}.guest-block{border:1px dashed var(--color-border);border-radius:10px;flex-direction:column;gap:20px;padding:20px;display:flex}.guest-block:first-of-type{border-top:none;padding-top:0}.guest-header{justify-content:space-between;align-items:center;min-height:1.5rem;display:flex}.guest-number{font-family:var(--font-main);color:var(--color-burgundy);letter-spacing:.2em;text-transform:uppercase;opacity:.7;font-size:.85rem}.remove-guest-btn{cursor:pointer;color:var(--color-burgundy);opacity:.55;background:0 0;border:none;padding:4px 6px;font-family:Playfair Display,serif;font-size:.8rem;font-style:italic;transition:opacity .2s}.remove-guest-btn:hover{opacity:1;background-color:#0000}.add-guest-btn{width:auto;color:var(--color-burgundy);font-family:var(--font-main);text-transform:uppercase;letter-spacing:1.5px;border:1px solid var(--color-border);cursor:pointer;opacity:.85;background-color:#0000;margin:0 auto;padding:10px 22px;font-size:.75rem;transition:opacity .2s,border-color .25s,color .25s}.add-guest-btn:hover{opacity:1;border-color:var(--color-burgundy);color:var(--color-burgundy);background-color:#0000}@media (width<=600px){.form-page{justify-content:flex-start;min-height:auto;padding-top:1rem}.wedding-form{gap:20px;margin-top:20px}.form-group label{font-size:.85rem}.radio-group{flex-direction:column;align-items:center;gap:15px}.submit-btn{padding:12px;font-size:.9rem}.guest-block{gap:15px;padding-top:15px}.guest-number{letter-spacing:.15em;font-size:.75rem}.remove-guest-btn{font-size:.75rem}.add-guest-btn{padding:9px 18px;font-size:.7rem}}.header{background-color:var(--color-bg-beige);flex-direction:column;justify-content:center;align-items:center;padding-top:1rem;display:flex}.header h1{margin:.75rem 1rem;padding:0}h1{font-size:3rem;font-family:var(--font-main);color:var(--color-text)}@media (width<=600px){.header h1{white-space:nowrap;margin:-.2rem 0;font-size:clamp(2rem,8vw,2.5rem)}}.navbar{z-index:1000;border-bottom:2px solid var(--color-border);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);will-change:transform;background-color:#faf8f580;margin:0 5rem;padding:1rem;position:sticky;top:0;transform:translateZ(0)}.navbar ul{justify-content:center;gap:3rem;margin:0;padding:0;list-style:none;display:flex}.navbar li{position:relative}.navbar a{color:var(--color-burgundy);text-transform:uppercase;letter-spacing:1px;padding:5px 0;font-family:Cutive Mono,monospace;font-size:.9rem;text-decoration:none;transition:color .3s}.navbar a:after{content:"";background-color:var(--color-burgundy);width:0;height:1.5px;transition:width .3s;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.navbar a:hover:after,.navbar a.active:after{width:100%}.navbar a:hover,.navbar a.active{color:var(--color-burgundy)}.navbar a:active{opacity:.7;transition:none}.lang-toggle{align-items:center;gap:.25rem;display:flex;position:absolute;top:50%;right:1.5rem;transform:translateY(-50%)}.lang-toggle button{cursor:pointer;color:var(--color-burgundy);text-transform:uppercase;letter-spacing:1px;opacity:.4;background:0 0;border:none;padding:0;font-family:Cutive Mono,monospace;font-size:.55rem;transition:opacity .2s}.lang-toggle button.active{opacity:1}.lang-toggle button:hover{opacity:.75;background-color:#0000}.lang-toggle span{color:var(--color-burgundy);opacity:.3;pointer-events:none;font-family:Cutive Mono,monospace;font-size:.55rem}@media (width<=800px) and (width>=601px){.navbar{margin:0 1.5rem}.navbar ul{gap:1.5rem}.navbar a{font-size:.78rem}}@media (width<=600px){.navbar{margin:0;padding:1rem 0}.navbar ul{gap:1.2rem;padding:0 5px}.navbar a{letter-spacing:.5px;font-size:.7rem}.lang-toggle{right:.75rem}.lang-toggle button,.lang-toggle span{font-size:.55rem}}.scroll-to-top{z-index:1000;position:fixed;bottom:30px;right:30px}.scroll-btn{background-color:var(--color-bg-beige);color:var(--color-burgundy);border:1px solid var(--color-border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;font-size:20px;transition:all .3s;display:flex;box-shadow:0 4px 10px #0000001a}.scroll-btn:hover{background-color:var(--color-burgundy);color:#fff;transform:translateY(-5px)}@media (width<=600px){.scroll-to-top{bottom:20px;right:20px}.scroll-btn{width:38px;height:38px;font-size:16px}}.coming-soon-page{background-color:var(--color-bg-beige);box-sizing:border-box;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;overflow:hidden}.coming-soon-content{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:600px;animation:1.5s ease-in fadeIn;display:flex}.coming-soon-content h1{white-space:nowrap;letter-spacing:1px;margin:0 0 10px;font-size:clamp(1.5rem,8.5vw,3.5rem)}.coming-soon-castle{margin-bottom:5px;line-height:0}.coming-soon-castle .castle-img{width:auto;max-width:200px;max-height:28vh}.date-text{margin:5px 0;font-size:clamp(1.2rem,5vw,1.6rem)}.coming-soon-content .thin-line{width:60%;max-width:150px;margin:15px auto}.typewriter-text .fine-print{margin-top:1rem;font-size:1.5rem;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.footer{background-color:var(--color-bg-beige);border-top:1px solid var(--color-border);width:100%;margin-top:2rem;padding:2rem 3rem}.footer-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;max-width:900px;margin:0 auto;display:grid}.footer-castle{opacity:.8;flex-shrink:0;width:70px;height:auto}.footer-names{font-family:var(--font-main);color:var(--color-text);letter-spacing:.15em;text-transform:uppercase;margin:0 0 .3rem;font-size:1.1rem}.footer-venue{font-family:var(--font-text);color:var(--color-text);opacity:.65;letter-spacing:.04em;margin:0;font-size:.85rem}.footer-contact{font-family:var(--font-text);color:var(--color-text);opacity:.8;text-align:right;justify-self:end;margin:0;font-size:.85rem;line-height:1.6}.footer-contact a{color:var(--color-burgundy);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s}.footer-contact a:hover{border-bottom:1px solid var(--color-burgundy)}@media (width<=600px){.footer{margin-top:1.25rem;padding:2rem 1.5rem}.footer-inner{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.footer-text-left{display:none}.footer-castle{width:55px}.footer-contact{text-align:center}}.code-gate{background-color:var(--color-bg-beige);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1.5rem;display:flex;position:relative}.code-gate-lang{align-items:center;gap:.35rem;display:flex;position:absolute;top:1.5rem;right:1.5rem}.code-gate-lang button{cursor:pointer;color:var(--color-burgundy);text-transform:uppercase;letter-spacing:1px;opacity:.4;background:0 0;border:none;padding:0;font-family:Cutive Mono,monospace;font-size:.65rem;transition:opacity .2s}.code-gate-lang button.active{opacity:1}.code-gate-lang button:hover{opacity:.75;background-color:#0000}.code-gate-lang span{color:var(--color-burgundy);opacity:.3;pointer-events:none;font-family:Cutive Mono,monospace;font-size:.65rem}.code-gate-card{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:420px;display:flex}.code-gate-castle{opacity:.95;width:180px;height:auto;margin-bottom:.5rem}.code-gate-title{font-family:var(--font-main);color:var(--color-text);text-transform:uppercase;letter-spacing:2px;margin:.5rem 0 1rem;font-size:2rem}.code-gate-date{margin-top:0;margin-bottom:1rem}.code-gate .thin-line{margin:1rem auto 1.5rem}.code-gate-form{flex-direction:column;align-items:center;gap:.75rem;width:100%;display:flex}.code-gate-form .typewriter-label{margin-bottom:0}.code-gate-input{font-family:var(--font-main);border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);text-align:center;letter-spacing:1rem;width:180px;caret-color:var(--color-burgundy);background:0 0;outline:none;padding:.5rem 0 .5rem 1rem;font-size:1.75rem;transition:border-color .3s}.code-gate-input:focus{border-bottom-color:var(--color-burgundy)}.code-gate-error{font-family:var(--font-text);color:var(--color-burgundy);opacity:0;min-height:1.2rem;margin:0;font-size:.85rem;font-style:italic;transition:opacity .2s}.code-gate-error.visible{opacity:.9}.code-gate .submit-btn{margin-top:.5rem}.code-gate .submit-btn:disabled{opacity:.35;cursor:not-allowed;color:var(--color-burgundy);background-color:#0000;transform:none}@media (width<=600px){.code-gate{padding:1.5rem 1rem}.code-gate-castle{width:140px}.code-gate-title{letter-spacing:1.5px;font-size:1.5rem}.code-gate-input{letter-spacing:.85rem;width:160px;font-size:1.5rem}}.error-page{background-color:var(--color-bg-beige);text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1.5rem;display:flex}.error-code{font-family:var(--font-main);color:var(--color-burgundy);letter-spacing:.5rem;opacity:.85;margin:0;font-size:4.5rem;line-height:1}.error-title{font-family:var(--font-main);color:var(--color-burgundy);text-transform:uppercase;letter-spacing:.3rem;margin:1.5rem 0 0;font-size:1.5rem}.error-text{max-width:360px;margin:1rem 0 0}.error-page .thin-line{margin:2rem auto 1.75rem}.error-btn{text-align:center;text-decoration:none;display:inline-block}@media (width<=600px){.error-page{padding:50px 20px 40px}.error-code{letter-spacing:.35rem;font-size:3.25rem}.error-title{letter-spacing:.25rem;font-size:1.2rem}.error-text{font-size:.95rem}}
