:root{--ivory: #f6f1e7;--paper: #fbf8f1;--ink: #322d29;--muted: #73695f;--sage: #7f8974;--terracotta: #a56f55;--line: rgba(64, 56, 49, .18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Georgia,Times New Roman,"Noto Serif TC",serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.language-switch{position:fixed;z-index:20;top:22px;right:22px;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.7);border-radius:99px;padding:7px 13px 7px 7px;background:#2f2b27a8;color:#fff;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.08em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.language-switch span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#ffffffeb;color:var(--ink);font-size:10px;font-weight:700}.hero{position:relative;min-height:100svh;overflow:hidden;background:#ebe1d0}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#faf7ef0a,#faf7ef05 42%,#faf7efad 70%,#faf7eff5)}.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:100svh;max-width:780px;margin:0 auto;padding:42px 24px 96px;text-align:center}.eyebrow{margin:0 0 20px;color:var(--terracotta);font-family:Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.32em;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(54px,7vw,92px);font-weight:400;line-height:.83;letter-spacing:-.055em;text-shadow:0 1px 0 rgba(255,255,255,.5)}.hero h1 span{display:inline-block;margin:0 .08em;color:var(--terracotta);font-size:.55em;font-style:italic}.hero-invitation{max-width:650px;margin:16px auto 0;color:#211d1a;font-size:clamp(16px,2vw,22px);line-height:1.4;text-shadow:0 1px 2px rgba(255,255,255,.9)}.hero .eyebrow{color:#8b5139;text-shadow:0 1px 2px rgba(255,255,255,.85)}.hero-date{display:inline-flex;align-items:center;gap:14px;margin-top:14px;padding:11px 17px;border:1px solid rgba(116,91,72,.22);border-radius:999px;background:#fffbf3c2;box-shadow:0 4px 18px #362b221a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#302821;font-family:Arial,sans-serif;font-size:clamp(14px,1.2vw,17px);font-weight:800;letter-spacing:.18em;text-shadow:0 1px 1px rgba(255,255,255,.95)}.hero-date span+span{border-left:1px solid var(--line);padding-left:14px}.scroll-cue{position:absolute;left:50%;bottom:24px;width:30px;height:44px;transform:translate(-50%);border:1px solid rgba(255,255,255,.65);border-radius:22px}.scroll-cue span{position:absolute;top:8px;left:50%;width:4px;height:4px;transform:translate(-50%);border-radius:50%;background:#fff;animation:scroll 1.8s infinite}@keyframes scroll{0%{transform:translate(-50%);opacity:0}30%{opacity:1}to{transform:translate(-50%,19px);opacity:0}}.section-shell{max-width:1050px;margin:0 auto;padding:110px 28px}.invitation{text-align:center}.invitation h2,.venue-copy h2,.rsvp-heading h2,.gift-note h2{margin:0;font-size:clamp(38px,6vw,72px);font-weight:400;line-height:1.15;letter-spacing:-.035em}.lead{max-width:700px;margin:30px auto 0;color:var(--muted);font-size:18px;line-height:2}.ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:38px auto 0;color:var(--terracotta);font-style:italic}.ornament i{width:56px;height:1px;background:var(--line)}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:1150px;padding-top:0}.details article{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:38px;border:1px solid var(--line);background:#ffffff47;text-align:center}.details article span{display:block;margin-bottom:25px;color:var(--terracotta);font-family:Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.3em}.details strong{display:block;font-size:21px;font-weight:400;line-height:1.7}.details .time-lines{display:flex;flex-direction:column;gap:4px}.details .time-lines b{font-weight:400}.details small{display:block;margin-top:11px;color:var(--muted);font-size:14px;line-height:1.7}.palette-section{padding:105px 28px 115px;background:#f9f5ee;text-align:center}.palette-heading{max-width:760px;margin:0 auto 46px}.palette-heading h2{margin:0;font-size:clamp(38px,5vw,64px);font-weight:400;line-height:1.15;letter-spacing:-.035em}.palette-heading>p:not(.eyebrow){margin:22px auto 0;color:var(--muted);font-size:17px;line-height:1.85}.attire-notes{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:25px}.attire-notes span{padding:10px 16px;border:1px solid rgba(64,56,49,.16);border-radius:999px;background:#ffffff7a;color:#5f554c;font-size:14px;line-height:1.4}.palette-image{display:block;width:min(100%,1280px);height:auto;margin:0 auto;border:1px solid rgba(64,56,49,.1);box-shadow:0 24px 65px #43362b1a}.palette-link{display:block;color:var(--muted);text-decoration:none}.palette-link>span{display:inline-block;margin-top:14px;border-bottom:1px solid rgba(64,56,49,.35);font-size:13px}.venue-section{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(460px,1.22fr);min-height:640px;background:#dfe3d8}.venue-copy{display:flex;flex-direction:column;justify-content:center;padding:70px clamp(35px,7vw,105px)}.venue-copy>p:not(.eyebrow){margin:24px 0 0;color:#5f675a;line-height:1.8}.venue-copy .venue-name{margin-top:38px;color:var(--ink);font-size:19px}.venue-copy a{align-self:flex-start;margin-top:35px;padding-bottom:8px;border-bottom:1px solid var(--ink);color:var(--ink);text-decoration:none;font-family:Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.08em}.venue-copy a span{margin-left:14px}.map-frame{min-height:520px;filter:saturate(.7) sepia(.08)}.map-frame iframe{width:100%;height:100%;min-height:520px;border:0}.rsvp-section{position:relative;max-width:none;margin:0;padding:120px 28px;background:linear-gradient(180deg,#f6f1e794,#f6f1e7b3),url(/rsvp-background.webp) center / cover no-repeat}.rsvp-heading{max-width:720px;margin:0 auto 65px;text-align:center}.rsvp-heading>p:not(.eyebrow){margin:25px auto 0;color:var(--muted);font-size:17px;line-height:1.8}.draft-badge{display:inline-block;margin-top:24px;padding:8px 13px;border-radius:99px;background:#a56f551c;color:#865b46;font-family:Arial,sans-serif;font-size:11px}.rsvp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;max-width:1050px;margin:0 auto;padding:clamp(25px,5vw,58px);border:1px solid var(--line);background:#fbf8f1e6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 25px 75px #42362b14}.rsvp-form label>span,.rsvp-form legend{display:block;margin-bottom:11px;color:var(--ink);font-size:14px;line-height:1.5}.rsvp-form input[type=text],.rsvp-form select,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid #bfb5a9;border-radius:0;padding:11px 2px;outline:none;background:transparent;color:var(--ink);line-height:1.5}.rsvp-form textarea{resize:vertical}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--terracotta)}.rsvp-form fieldset{margin:0;padding:0;border:0}.full-width{grid-column:1 / -1}.attendance-choice{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.attendance-choice legend{grid-column:1 / -1}.attendance-choice label{cursor:pointer}.attendance-choice input{position:absolute;opacity:0}.attendance-choice label>span{margin:0;padding:18px 20px;border:1px solid var(--line);text-align:center;transition:.2s ease}.attendance-choice input:checked+span{border-color:var(--terracotta);background:#a56f5517;color:#7e503a}.inline-radios{display:flex;gap:22px;padding-top:9px}.inline-radios label{display:flex;align-items:center;gap:8px;cursor:pointer}.inline-radios label>span{margin:0;color:var(--muted)}.inline-radios input,.footer-acknowledgement input{accent-color:var(--terracotta)}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid var(--line)}.form-footer p{margin:0;color:var(--muted);font-size:13px}.form-footer button,.review-note-button,.thank-you button,.footer-submit{display:inline-flex;align-items:center;justify-content:center;border:0;padding:15px 22px;background:var(--ink);color:#fff;text-decoration:none;cursor:pointer}.form-footer button span,.review-note-button span,.footer-submit span{margin-left:24px}.thank-you{max-width:1050px;margin:0 auto;padding:75px 30px;border:1px solid var(--line);background:#fbf8f1f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center}.thank-you>span{color:var(--terracotta);font-size:23px;font-style:italic}.thank-you h3{margin:22px 0 0;font-size:38px;font-weight:400}.thank-you p{max-width:560px;margin:18px auto 28px;color:var(--muted);line-height:1.8}.submit-error{margin:0;color:#9a3f34;font-size:14px;text-align:center}.footer-submit:disabled{cursor:wait;opacity:.65}.wedding-footer{padding:100px 28px 45px;background:#343a32;color:#f4efe7;text-align:center}.gift-note{max-width:1300px;margin:0 auto}.gift-note h2{color:#fff;font-size:clamp(42px,4.2vw,58px);white-space:nowrap}.gift-note>p:not(.eyebrow){margin:25px auto 0;color:#c9cec4;font-size:16px;line-height:1.9;white-space:nowrap}.content-note{max-width:820px;margin:50px auto 0;padding:28px;border:1px solid rgba(255,255,255,.18);color:#c9cec4}.content-note h3{margin:0;color:#fff;font-size:17px;font-weight:400}.content-note p{margin:15px 0 0;font-family:Arial,sans-serif;font-size:13px;line-height:1.8}.footer-confirmation{max-width:820px;margin:16px auto 0}.footer-confirmation-before{margin:0 auto 52px}.footer-acknowledgement{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:#e8e4dc;text-align:left;cursor:pointer}.footer-acknowledgement input{flex:0 0 auto;margin-top:3px}.footer-acknowledgement span{font-family:Arial,sans-serif;font-size:13px;line-height:1.65}.footer-submit{margin-top:18px;background:#f3eee5;color:var(--ink)}.footer-mark{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:80px;font-size:31px}.footer-mark i{color:#c89d83;font-size:23px}.footer-mark small{flex-basis:100%;color:#9da396;font-family:Arial,sans-serif;font-size:10px;letter-spacing:.35em}@media(max-width:760px){.language-switch{top:14px;right:14px}.hero-copy{padding:36px 18px 92px}.hero .eyebrow{margin-bottom:10px}.hero h1{font-size:clamp(42px,13vw,62px);white-space:nowrap}.hero h1 span{display:inline-block;margin:0 .08em}.hero-invitation{max-width:335px;margin-top:12px;font-size:15px;line-height:1.35}.hero-date{margin-top:11px;padding:8px 13px;font-size:13px}main[lang=en] .hero-invitation{max-width:none;margin-left:-12px;margin-right:-12px;font-size:clamp(10.5px,3.45vw,14px);letter-spacing:-.015em;white-space:nowrap}.section-shell,.rsvp-section{padding:78px 20px}.details{grid-template-columns:1fr;padding-top:0}.details article{min-height:0;padding:30px 22px}.details article span{margin-bottom:12px}.palette-section{padding:74px 14px 80px}.palette-heading{margin-bottom:30px;padding:0 8px}.palette-heading>p:not(.eyebrow){font-size:15px}.attire-notes{align-items:stretch;flex-direction:column}.attire-notes span{border-radius:6px}.venue-section{grid-template-columns:1fr}.venue-copy{padding:75px 25px}.map-frame,.map-frame iframe{min-height:420px}.rsvp-form{grid-template-columns:1fr;gap:26px;padding:28px 20px}.full-width{grid-column:auto}.attendance-choice{grid-template-columns:1fr}.attendance-choice legend{grid-column:auto}.form-footer{align-items:stretch;flex-direction:column}.form-footer button,.review-note-button{width:100%}.wedding-footer{padding:80px 22px 38px}.gift-note h2,.gift-note>p:not(.eyebrow){white-space:normal}.gift-note h2{font-size:40px}.footer-submit{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-cue span{animation:none}}
