:root{color-scheme:light;--paper:#fffcf8;--surface:#fff;--soft:#fff3df;--honey:#f2d8b1;--ink:#594333;--muted:#78614e;--line:#ecdfce;--edge:#a18461;--gold:#b58b55;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#302b27;--surface:#3c342e;--soft:#493d31;--ink:#fff6e9;--muted:#e3cdb6;--line:#74604d;--edge:#af9273;--gold:#e2bb83}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.7}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.skip-link{position:fixed;left:16px;top:-100px;z-index:20;background:var(--surface);padding:12px 20px}.skip-link:focus{top:12px}.invitation{max-width:640px;margin:auto;padding:0 24px}.hero{text-align:center;padding:84px 0 52px}.eyebrow{margin:0 0 24px;color:var(--muted);font-size:16px;font-weight:500;letter-spacing:.16em}.names{font:500 clamp(52px,9vw,76px)/1.1 Georgia,'Times New Roman',serif;letter-spacing:-.04em;margin:0;outline:none}.names span{display:block;font:italic 34px/1.6 Georgia,serif;color:var(--gold);letter-spacing:0}.event-date{margin:28px 0 24px;color:var(--muted);letter-spacing:.1em}.hero-copy{max-width:380px;margin:0 auto;font-size:18px;line-height:1.8}.families{display:flex;justify-content:center;gap:28px;margin:32px 0 0;color:var(--muted)}.families p{margin:0}.families strong{display:block;font-weight:600;color:var(--ink)}.families .family-line{width:1px;background:var(--line)}.scroll-cue{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;margin-top:32px;font-size:26px;text-decoration:none;color:var(--gold)}.divider{display:flex;align-items:center;gap:18px;color:var(--gold);margin:0 0 40px}.divider:before,.divider:after{content:'';height:1px;background:var(--line);flex:1}.divider span{font:24px Georgia,serif}.section{padding:0 0 48px}.section .eyebrow{text-align:center;margin-bottom:8px}.section h2{text-align:center;font:500 36px/1.25 Georgia,serif;margin:0 0 28px;letter-spacing:-.02em}.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px 24px}.details{margin:0}.detail-row{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.detail-row:first-child{padding-top:0}.detail-row:last-child{border:0;padding-bottom:0}.details dt{color:var(--muted)}.details dd{margin:0;text-align:right;font-weight:600}.button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;padding:12px 18px;border:1px solid var(--edge);border-radius:6px;background:var(--honey);color:#594333;text-align:center;text-decoration:none;font-size:16px;font-weight:600;line-height:1.5}.button svg{height:22px;width:22px;flex:none}.button.secondary{color:var(--ink);background:transparent}.calendar{margin-top:24px}.venue{text-align:center;font:500 28px/1.3 Georgia,serif;margin:0 0 16px}.address{font-style:normal;text-align:center;color:var(--muted);line-height:1.9;margin-bottom:28px}.actions{display:grid;gap:12px}.status{color:var(--muted);text-align:center;margin:12px 0 0;min-height:0}.status:empty{display:none}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.countdown div{text-align:center;padding:20px 4px;border-top:1px solid var(--edge);border-bottom:1px solid var(--line);background:var(--soft)}.countdown strong{font:500 clamp(28px,6vw,40px)/1.3 Georgia,serif;font-variant-numeric:tabular-nums;display:block}.countdown span{display:block;color:var(--muted);font-size:16px;margin-top:4px}.closing{text-align:center;padding:16px 0 48px;color:var(--muted)}.closing .footer-names{font:italic 32px/1.4 Georgia,serif;color:var(--ink);margin:0 0 16px}.closing p{margin:4px 0}.intro{position:fixed;inset:0;z-index:10;overflow:auto;background:var(--paper);padding:72px 24px 32px;display:flex;align-items:center;justify-content:center}.intro-inner{width:100%;max-width:390px;text-align:center;margin:auto}.intro-skip{position:absolute;right:20px;top:16px;min-height:48px;min-width:72px;border:0;background:transparent;color:var(--muted);text-decoration:underline}.intro-open{width:100%;padding:12px 12px 0;border:0;background:transparent;color:var(--ink);display:block}.paper-photo{display:block;position:relative;max-width:310px;margin:0 auto 62px;padding:12px 12px 24px;border:1px solid var(--line);background:var(--surface);box-shadow:0 8px 28px #a57e4920;transform:rotate(-3deg)}.paper-photo picture,.paper-photo img{display:block;width:100%;height:auto;aspect-ratio:1.339;object-fit:cover}.seal{display:flex;align-items:center;justify-content:center;position:absolute;bottom:-40px;left:calc(50% - 40px);width:80px;height:80px;border-radius:50%;color:#594333;background:radial-gradient(circle at 30% 20%,#fff3df,#e2bd89);box-shadow:0 5px 14px #a57e4930,inset 0 0 0 5px #fff4;font:24px Georgia,serif;outline:1px solid #a1846180;outline-offset:-9px;transform:rotate(3deg)}.intro-names{display:block;font:500 38px/1.25 Georgia,serif;letter-spacing:-.04em}.intro-tag{display:block;font-size:18px;margin-top:14px;font-weight:400}.intro-hint{font-size:16px;color:var(--muted);margin:20px 0 0}.intro-date{margin:12px 0 0;color:var(--muted);font-size:16px}.noscript{margin:0 0 24px;color:var(--muted)}
@media(min-width:700px){.hero{padding-top:100px}.invitation{padding:0 40px}.detail-card{padding:32px}.actions{grid-template-columns:1fr 1fr}.countdown{gap:16px}.intro-open{padding-top:0}}@media(max-width:360px){.invitation{padding:0 20px}.families{gap:20px}.detail-card{padding:24px 18px}.detail-row{display:block}.details dd{text-align:left;margin-top:4px}.countdown{gap:6px}.countdown span{font-size:16px}.hero{padding-top:64px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.paper-photo,.seal{transform:none}*,*:before,*:after{animation:none!important;transition:none!important}}

body.is-intro-open{overflow:hidden}.is-intro-open>.skip-link{display:none}

.intro{outline:none}
