:root{--red:#981625;--red-dark:#74111d;--paper:#fff3dd;--gold:#e2bd76;--ink:#682b24;--muted:#886256;--line:#be784951;--serif:"STZhongsong","Songti SC","Noto Serif SC","SimSun",serif}
.papercut{background:var(--paper)}
.papercut h1,.papercut h2,.date-cn,.cover-kicker,.invitation-mark,.medallion-xi,.footer-medallion span{font-family:var(--serif)}
.topbar{height:56px;background:var(--red-dark);color:#ffefd4;border-bottom:1px solid #e2bd7659}
.wordmark{font-size:15px;letter-spacing:.12em;display:flex;align-items:center;gap:12px}
.wordmark-seal{font-family:var(--serif)!important;display:inline-block;color:var(--gold)!important;font-style:normal!important;border:1px solid #e2bd7690;padding:4px 5px;letter-spacing:.12em;font-size:12px}
.top-date{color:var(--gold);font-size:13px}
.hero{position:relative;isolation:isolate;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:45px;padding:48px max(38px,calc((100vw - 1040px)/2)) 60px;min-height:680px;background:var(--red);color:var(--paper)}
.hero:before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:17px 19px;border:3px double #e2bd7688}
.hero:after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:24px 26px;border:1px solid #e2bd7640}
.hero-ornament{display:grid;justify-items:center;gap:23px;min-width:0}
.cover-kicker{font-size:18px;letter-spacing:.3em;line-height:1.8;color:var(--gold);text-align:center;white-space:nowrap}
.paper-medallion{position:relative;isolation:isolate;width:min(100%,480px);aspect-ratio:1;border-radius:50%;background:#fff1d5;box-shadow:0 0 0 8px #e2bd7615,0 0 0 9px #e2bd7670;padding:4%;display:grid;place-items:center}
.paper-medallion img{width:100%;height:auto}
.medallion-xi{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(62px,6.6vw,82px);line-height:1;color:var(--red);font-weight:700;text-shadow:0 1px 0 #7d122b20}
.hero-copy{min-width:0}
.invitation-mark{display:inline-block;border:1px solid var(--gold);font-size:16px;letter-spacing:.24em;padding:9px 20px;color:var(--gold);margin-bottom:22px}
.hero h1{display:flex;align-items:center;justify-content:center;gap:20px;font-weight:500;font-size:clamp(30px,3.4vw,44px);letter-spacing:.1em;white-space:nowrap;line-height:1.55}
.hero h1 em{font-family:var(--serif);font-size:16px;font-style:normal;color:var(--gold);border:1px solid #e2bd7670;line-height:1;padding:7px;letter-spacing:0}
.hero-message{font-family:var(--serif);font-size:18px;letter-spacing:.16em;line-height:2;margin-top:20px;color:#f8dfb7}
.hero-date{border-top:1px solid #e2bd7660;border-bottom:1px solid #e2bd7660;padding:21px 5px;margin:27px auto 23px;max-width:340px;gap:13px}
.hero-date .date-cn{font-size:16px;letter-spacing:.11em;line-height:1.8;color:var(--gold)}
.hero-date strong{font-family:Georgia,serif;font-size:29px;letter-spacing:.1em;color:var(--paper);font-weight:400}
.hero-date span:last-child{font-size:15px;letter-spacing:.1em}
.cover-open{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:11px 30px;background:var(--paper);border:1px solid var(--gold);outline:1px solid #e2bd7666;outline-offset:4px;color:var(--red);font-family:var(--serif);font-size:16px;font-weight:700;letter-spacing:.2em}
.section{padding-top:70px;padding-bottom:70px}
.section>.eyebrow{font-family:var(--serif);font-size:14px;letter-spacing:.25em;color:var(--red);margin-bottom:14px}
.section h2{font-family:var(--serif);font-size:clamp(27px,3.2vw,36px);letter-spacing:.12em;line-height:1.65;font-weight:500}
.invitation{position:relative}
.invitation-copy{font-family:var(--serif);font-size:18px;line-height:2.2;letter-spacing:.09em;margin-top:22px;color:var(--ink)}
.event-card{border:3px double #a92d3699;background:#fffcf1;box-shadow:0 0 0 7px #a92d360b;max-width:650px;position:relative;padding:30px;gap:30px}
.date-block{color:var(--red);border-color:#a92d3660}
.date-block>span{font-family:var(--serif);font-size:16px}
.date-block strong{font-size:78px}
.detail-value{font-family:var(--serif);font-size:22px;font-weight:500}
.detail-label{font-size:14px}
.venue-pending{font-size:17px}
.memories{background:#f8e9ce;border-top:1px solid var(--line);max-width:none;padding-left:max(24px,calc((100vw - 1016px)/2));padding-right:max(24px,calc((100vw - 1016px)/2));padding-bottom:60px}
.section-note{font-family:var(--serif);font-size:17px;letter-spacing:.08em;color:var(--muted)}
.portrait-feature{max-width:450px;margin:35px auto 46px;padding:10px;border:3px double #b17548;background:var(--paper);box-shadow:0 12px 25px #682b2410}
.portrait-paper{padding:8px;border:1px solid #a92d3660;position:relative}
.portrait-paper img{width:100%;height:auto}
.portrait-paper figcaption{padding:20px 4px 10px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;color:var(--red);font-family:var(--serif)}
.portrait-paper figcaption span{font-size:13px;letter-spacing:.12em;writing-mode:vertical-rl}
.portrait-paper figcaption b{font-size:22px;letter-spacing:.12em;font-weight:500}
.portrait-paper figcaption em{font-size:13px;font-style:normal;padding:0 5px}
.photo-reel{gap:22px;grid-auto-columns:calc((100% - 44px)/3);margin-top:30px}
.photo-reel figure{border:1px solid #b17548;background:#fff4df;padding:9px;box-shadow:none}
.photo-reel figcaption{color:var(--red);font-family:var(--serif);font-size:16px;line-height:1.8;padding-top:19px;letter-spacing:.06em}
.wide-photo{background:var(--paper);border:3px double #b17548;padding:12px;max-width:820px;margin-top:35px}
.film-section{padding-top:60px}
.film-frame{border:3px double #a92d3680;padding:10px;background:#fff8e9}
.closing{background:var(--red);color:var(--paper);position:relative;border-top:5px double #e2bd76}
.closing>.eyebrow{color:var(--gold)}
.closing>p:not(.eyebrow):not(.calendar-note){font-family:var(--serif);font-size:18px;line-height:2.1;letter-spacing:.06em;color:#f7dcba}
.closing-actions .button-red{background:var(--paper);color:var(--red);border:1px solid var(--gold)}
.closing-actions .button-outline{color:var(--paper);border-color:var(--gold)}
.button{border-radius:0;font-family:var(--serif);font-size:16px;letter-spacing:.08em}
.closing .calendar-note{color:#f0cfa2}
footer{background:var(--red-dark);padding-top:45px;padding-bottom:115px;border-top:1px solid #e2bd7638}
.footer-medallion{position:relative;width:130px;aspect-ratio:1;margin:0 auto 24px;border-radius:50%;background:var(--paper);padding:8px}
.footer-medallion img{width:100%;height:auto}
.footer-medallion span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:28px;color:var(--red);font-weight:700}
footer p{font-family:var(--serif);font-size:23px}footer small{color:#e6c69a;letter-spacing:.1em}
.bottom-bar{background:#fff3ddf8;border-top:3px double #a92d36aa}
.bottom-bar a,.bottom-bar button{border-radius:0;font-family:var(--serif);font-size:16px;letter-spacing:.13em}
dialog{border:3px double var(--red);border-radius:0}dialog .eyebrow{font-family:var(--serif);font-size:14px;letter-spacing:.12em}dialog h2{font-family:var(--serif);letter-spacing:.07em}
@media(max-width:760px){
 .topbar{padding:0 20px;height:50px}.wordmark{font-size:13px;gap:8px;letter-spacing:.05em}.wordmark-seal{font-size:11px;padding:4px}.top-date{font-size:12px}
 .hero{padding:31px 29px 40px;min-height:0;display:flex;flex-direction:column;gap:22px}
 .hero:before{inset:11px 12px;border-width:3px}.hero:after{inset:17px 18px}
 .hero-ornament{width:100%;gap:18px}.cover-kicker{font-size:16px;letter-spacing:.24em}
 .paper-medallion{width:min(100%,318px);padding:3.5%;box-shadow:0 0 0 5px #e2bd7615,0 0 0 6px #e2bd7660}.medallion-xi{font-size:58px}
 .invitation-mark{font-size:14px;letter-spacing:.22em;padding:7px 16px;margin-bottom:11px}
 .hero h1{font-size:clamp(26px,7.5vw,32px);gap:12px;letter-spacing:.09em;line-height:1.6}.hero h1 em{font-size:13px;padding:5px}
 .hero-message{font-size:16px;line-height:1.9;letter-spacing:.13em;margin-top:10px}.hero-message br{display:initial}
 .hero-date{margin:17px auto 22px;padding:14px 3px;gap:8px}.hero-date .date-cn{font-size:14px;letter-spacing:.04em}.hero-date strong{font-size:25px;letter-spacing:.08em}.hero-date span:last-child{font-size:14px}
 .cover-open{font-size:15px;min-height:42px;padding:9px 28px}
 .section{padding:50px 24px}.section h2{font-size:25px;letter-spacing:.075em}.section>.eyebrow{font-size:14px}
 .invitation-copy{font-size:17px;letter-spacing:.05em;line-height:2.1;margin-bottom:30px}
 .event-card{padding:23px 15px;grid-template-columns:95px minmax(0,1fr);gap:18px}.date-block{padding-right:18px}.date-block strong{font-size:61px}.date-block>span{font-size:13px}.detail-value{font-size:20px}.venue-pending{font-size:16px}
 .portrait-feature{padding:7px;margin:30px auto 32px}.portrait-paper{padding:5px}.portrait-paper figcaption{padding:18px 5px 9px}.portrait-paper figcaption b{font-size:19px;letter-spacing:.05em}.portrait-paper figcaption span{font-size:12px}
 .memories h2{font-size:25px;letter-spacing:.075em}.photo-reel{grid-auto-columns:87%;gap:16px;margin-left:-7px;margin-right:-7px}.photo-reel figure{padding:7px}.photo-reel figcaption{font-size:15px;padding:17px 4px 10px}.wide-photo{padding:7px;margin-top:28px}
 .film-frame{padding:7px}.closing{padding-top:48px;padding-bottom:48px}.closing>p:not(.eyebrow):not(.calendar-note){font-size:17px}
 .footer-medallion{width:115px}footer small{font-size:13px}.calendar-note{font-size:12px}
}
@media(max-width:350px){.hero{padding-left:27px;padding-right:27px}.paper-medallion{width:250px}.medallion-xi{font-size:48px}.hero h1{font-size:25px;gap:9px;letter-spacing:.04em}.hero-message{font-size:15px;letter-spacing:.04em}.event-card{grid-template-columns:82px minmax(0,1fr);gap:13px;padding-left:12px;padding-right:12px}.section{padding-left:20px;padding-right:20px}.date-block{padding-right:13px}.date-block>span{font-size:12px}.portrait-paper figcaption b{font-size:16px}.section h2,.memories h2{font-size:23px;letter-spacing:.025em}}
.date-block .event-weekday{line-height:1.6;letter-spacing:.06em;text-align:center}
