:root{--bg: #f4ede1;--bg-deep: #ebe1d0;--ink: #2a241d;--ink-soft: #5a4e3f;--accent: #7a2a1c;--accent-soft: #b8896b;--line: #c9b99a;--error: #8b2a1c}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Cormorant Garamond,"Noto Serif Thai",Georgia,serif;font-weight:400;line-height:1.5;min-height:100vh;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(122,42,28,.04) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(184,137,107,.06) 0%,transparent 40%);pointer-events:none;z-index:0}body:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0 0.05 0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:multiply;pointer-events:none;z-index:1}.hero{position:relative;width:100%;height:90vh;min-height:500px;max-height:800px;overflow:hidden;z-index:2}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.92) contrast(1.02);animation:heroFade 1.8s ease-out}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,36,29,.55) 0%,rgba(42,36,29,.2) 20%,rgba(244,237,225,0) 40%,rgba(244,237,225,0) 60%,rgba(244,237,225,.85) 95%,var(--bg) 100%)}.hero-text{position:absolute;top:3rem;left:0;right:0;text-align:center;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.6);animation:fadeIn 1.2s ease-out .4s both}.hero-text .date-mark{font-family:Inter,sans-serif;font-size:.8rem;letter-spacing:.5em;text-transform:uppercase;color:#fff;font-weight:500;margin-bottom:.7rem}.hero-text .mmxxvii{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.4rem;color:#fff;letter-spacing:.3em}.container{position:relative;z-index:3;max-width:720px;margin:-6rem auto 0;padding:0 2rem 6rem}.flourish{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2.5rem;opacity:0;animation:fadeIn 1.2s ease-out 1.2s forwards}.flourish-line{height:1px;width:60px;background:var(--line)}.flourish-mark{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.1rem;color:var(--accent-soft);letter-spacing:.3em;text-transform:uppercase}.invitation{text-align:center;opacity:0;animation:fadeIn 1.2s ease-out 1.4s forwards}.you-are-invited{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.35rem;color:var(--ink-soft);margin-bottom:.3rem;letter-spacing:.02em}.you-are-invited-thai{font-family:"Noto Serif Thai",serif;font-size:1.15rem;color:var(--ink-soft);margin-bottom:.3rem;font-weight:300}.you-are-invited-de{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.35rem;color:var(--ink-soft);margin-bottom:2.5rem;letter-spacing:.02em}.names{font-family:Cormorant Garamond,serif;font-size:clamp(3.5rem,10vw,5.5rem);font-weight:300;line-height:1;color:var(--ink);margin-bottom:.5rem;letter-spacing:-.01em}.names .amp{font-style:italic;color:var(--accent);font-weight:400;margin:0 .3rem}.party-label{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.5rem;color:var(--accent);margin-top:.5rem;letter-spacing:.05em}.details{margin-top:3rem;text-align:center;opacity:0;animation:fadeIn 1.2s ease-out 1.6s forwards}.details-divider{width:40px;height:1px;background:var(--line);margin:0 auto 2rem}.date{font-family:Cormorant Garamond,serif;font-size:1.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--ink);margin-bottom:.8rem;font-weight:400}.location{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.3rem;color:var(--ink-soft);margin-bottom:.4rem}.location-tba{font-family:Inter,sans-serif;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-soft)}.coming-soon{margin:4rem auto 3rem;padding:2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.coming-soon p{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.1rem;color:var(--ink-soft);margin-bottom:.4rem}.coming-soon p.thai{font-family:"Noto Serif Thai",serif;font-style:normal;font-weight:300;font-size:1rem}.secondary-image{margin:5rem -2rem 4rem;position:relative;overflow:hidden}.secondary-image img{width:100%;height:auto;display:block;filter:saturate(.9) contrast(1.02)}.secondary-image .caption{position:absolute;bottom:1.5rem;left:0;right:0;text-align:center;font-family:Cormorant Garamond,serif;font-style:italic;font-size:1rem;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6);letter-spacing:.2em}.rsvp-section{margin-top:2rem}.rsvp-heading{text-align:center;margin-bottom:2.5rem}.rsvp-heading h2{font-family:Cormorant Garamond,serif;font-size:2.5rem;font-weight:400;letter-spacing:.15em;color:var(--accent);margin-bottom:.5rem}.rsvp-heading .subtitle{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-soft)}.rsvp-heading .thai-sub{font-family:"Noto Serif Thai",serif;font-size:.95rem;color:var(--ink-soft);margin-top:.4rem;font-weight:300}form{background:var(--bg-deep);padding:2.5rem 2rem;border:1px solid var(--line);box-shadow:0 20px 60px -30px #2a241d4d}.guest-card{padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px dashed var(--line);position:relative}.guest-card:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.guest-label{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.remove-btn{background:none;border:none;font-family:Inter,sans-serif;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;padding:.3rem .6rem;transition:color .2s}.remove-btn:hover{color:var(--error)}.field{margin-bottom:1rem}.field:last-child{margin-bottom:0}label{display:block;font-family:Cormorant Garamond,serif;font-style:italic;font-size:1rem;color:var(--ink-soft);margin-bottom:.4rem}input[type=text],input[type=email]{width:100%;padding:.8rem 0;font-family:Cormorant Garamond,serif;font-size:1.15rem;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);outline:none;transition:border-color .3s}input[type=text]:focus,input[type=email]:focus{border-bottom-color:var(--accent)}input::placeholder{color:var(--ink-soft);opacity:.4;font-style:italic}.add-guest{width:100%;padding:1rem;margin-top:1.5rem;background:transparent;border:1px dashed var(--accent-soft);color:var(--accent);font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.05rem;cursor:pointer;transition:all .3s;letter-spacing:.03em}.add-guest:hover{background:var(--bg);border-color:var(--accent);border-style:solid}.submit-btn{width:100%;padding:1.2rem;margin-top:2rem;background:var(--accent);color:var(--bg);border:none;font-family:Inter,sans-serif;font-size:.75rem;letter-spacing:.4em;text-transform:uppercase;cursor:pointer;transition:all .3s;font-weight:500}.submit-btn:hover{background:var(--ink);letter-spacing:.5em}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.success{display:none;text-align:center;padding:3rem 2rem;background:var(--bg-deep);border:1px solid var(--line)}.success.active{display:block}.success h3{font-family:Cormorant Garamond,serif;font-size:2.2rem;font-weight:400;color:var(--accent);margin-bottom:1rem;font-style:italic}.success p{font-family:Cormorant Garamond,serif;font-size:1.15rem;color:var(--ink-soft);margin-bottom:.5rem}.success p.thai{font-family:"Noto Serif Thai",serif;font-weight:300}footer{margin-top:5rem;text-align:center}.footer-mark{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1rem;color:var(--accent-soft);letter-spacing:.4em}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes heroFade{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:2rem;transition:opacity .8s ease,visibility .8s ease}.gate:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(122,42,28,.04) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(184,137,107,.06) 0%,transparent 40%);pointer-events:none}.gate:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0 0.05 0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:multiply;pointer-events:none}.gate.unlocked{opacity:0;visibility:hidden;pointer-events:none}.gate-content{position:relative;z-index:1;max-width:420px;width:100%;text-align:center;animation:fadeIn 1s ease-out}.gate-mark{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.1rem;color:var(--accent-soft);letter-spacing:.4em;text-transform:uppercase;margin-bottom:1.5rem}.gate-title{font-family:Cormorant Garamond,serif;font-size:clamp(2.5rem,7vw,3.5rem);font-weight:300;color:var(--ink);line-height:1;margin-bottom:.3rem}.gate-title .amp{font-style:italic;color:var(--accent);font-weight:400}.gate-subtitle{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.2rem;color:var(--ink-soft);margin-bottom:.3rem}.gate-subtitle.thai{font-family:"Noto Serif Thai",serif;font-style:normal;font-weight:300;font-size:1.05rem}.gate-divider{width:40px;height:1px;background:var(--line);margin:2.5rem auto}.gate-prompt{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.5rem}.gate-form{display:flex;flex-direction:column;gap:1rem}.gate-input{width:100%;padding:1rem;font-family:Cormorant Garamond,serif;font-size:1.3rem;color:var(--ink);background:var(--bg-deep);border:1px solid var(--line);outline:none;text-align:center;transition:border-color .3s;letter-spacing:.05em}.gate-input:focus{border-color:var(--accent)}.gate-input.error{border-color:var(--error);animation:shake .4s}.gate-submit{padding:1rem;background:var(--accent);color:var(--bg);border:none;font-family:Inter,sans-serif;font-size:.75rem;letter-spacing:.4em;text-transform:uppercase;cursor:pointer;transition:all .3s;font-weight:500}.gate-submit:hover{background:var(--ink);letter-spacing:.5em}.gate-error{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1rem;color:var(--error);min-height:1.5rem;margin-top:.5rem}.main-content{opacity:0;transition:opacity 1s ease .3s}.main-content.revealed{opacity:1}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@media(max-width:600px){.hero{height:70vh;min-height:420px}.container{padding:0 1.25rem 4rem;margin-top:-4rem}.names{font-size:3rem}form{padding:1.75rem 1.25rem}.date{font-size:1.2rem;letter-spacing:.3em}.secondary-image{margin:4rem -1.25rem 3rem}}.guest-hint-one-more{text-align:center}
