:root{--paper:#861f2d;--ink:#eed9bd;--accent:#edbb95;--kaiti:'STKaiti','华文楷体','Kaiti SC','KaiTi','楷体',serif;--serif:var(--kaiti);--sans:var(--kaiti);font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink)}h1,h2,p,figure{margin:0}a{color:inherit;text-decoration:none;text-underline-offset:5px}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:5px}button:disabled{cursor:wait}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}.skip-link{position:fixed;top:-90px;left:20px;z-index:200;background:white;color:#222;padding:12px}.skip-link:focus{top:12px}.page-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:90}.sample-note{padding:12px 24px;text-align:center;font-size:12px;letter-spacing:.06em;border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent);opacity:.75}.sample-note[hidden]{display:none}.invitation-viewport{container-type:inline-size;container-name:invitation}.composition{--rule:color-mix(in srgb,var(--ink) 28%,transparent);padding:40px 5cqw 48px;max-width:1600px;margin:auto;background:var(--paper);color:var(--ink);overflow:clip}.title{font:400 clamp(58px,8cqw,128px)/1.15 var(--serif);letter-spacing:-.055em;overflow-wrap:anywhere}.title>span{display:block}.couple{display:flex;align-items:baseline;justify-content:inherit;gap:20px;font:400 24px/1.5 var(--serif);letter-spacing:.1em}.couple i{font:italic 1.05em var(--kaiti);letter-spacing:0}.note{font:400 21px/1.75 var(--serif);overflow-wrap:anywhere}.photo{position:relative;aspect-ratio:4/5;min-width:0;min-height:0;overflow:hidden}.photo-empty{position:relative;width:100%;height:100%;min-height:80px;background:linear-gradient(135deg,transparent,color-mix(in srgb,var(--ink) 8%,transparent)),color-mix(in srgb,var(--paper) 84%,var(--ink));border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);display:flex;align-items:center;justify-content:center}.p2 .photo-empty{background-color:color-mix(in srgb,var(--paper) 72%,var(--ink))}.p3 .photo-empty{background-color:color-mix(in srgb,var(--paper) 91%,var(--ink))}.p4 .photo-empty{background-color:color-mix(in srgb,var(--paper) 79%,var(--ink))}.photo-index{position:absolute;top:18px;left:18px;font:12px var(--sans);letter-spacing:.1em;opacity:.6}.photo-label{display:flex;flex-direction:column;align-items:center;gap:12px;font:24px var(--serif);letter-spacing:.15em;opacity:.72}.photo-label small{font:12px var(--sans);letter-spacing:.12em}.photo-cross{position:absolute;bottom:12px;right:16px;font:24px var(--sans);opacity:.35}.photo img{width:100%;height:100%;object-fit:cover}.photo figcaption{display:none;font:12px/1.5 var(--sans);letter-spacing:.14em}.event{display:grid;grid-template-columns:1fr 1fr;gap:30px;text-align:left}.event-date,.event-place{display:flex;flex-direction:column;align-items:start;min-width:0}.event-label{font:12px/1.5 var(--sans);letter-spacing:.15em;opacity:.7;margin-bottom:10px}.event time{display:flex;flex-direction:column;gap:9px}.event strong{font:400 24px/1.6 var(--serif);overflow-wrap:anywhere}.event time>span,.event .address{font:14px/1.7 var(--sans);opacity:.8}.event .address{margin-top:8px}.map-button{background:none;padding:0 0 4px;margin-top:18px;border-bottom:1px solid currentColor;font:14px/1.6 var(--sans);text-align:left}.map-button span{margin-left:16px}.end{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-top:55px;margin-top:65px;border-top:1px solid var(--rule)}.end p{font:400 clamp(35px,5cqw,76px)/1.5 var(--serif);letter-spacing:-.03em}.end a{font:30px/1 var(--sans);padding:15px}.red-thread{padding-top:30px}.book-spread{display:grid;grid-template-columns:1fr 1fr;background:#f4e8d2;color:#852636;--rule:#85263633;box-shadow:0 22px 35px #33101b24}.book-left{padding:40px 35px;box-shadow:inset -15px 0 25px #6a3b2410}.book-left .photo{aspect-ratio:4/5}.book-left .couple{justify-content:center;margin-top:28px}.book-right{padding:44px 40px 40px;border-left:1px solid #85263633}.book-right>.note:first-child{font-size:14px;letter-spacing:.14em;margin-bottom:35px}.book-right .title{font-size:clamp(60px,6.8cqw,110px)}.book-right>.note{font-size:21px;margin:20px 0 35px}.book-right .event{grid-template-columns:1fr;gap:25px}.book-right .event strong{font-size:22px}.book-right .map-button{margin-top:12px}.book-album{display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:60px 4%0}.book-album>div>.note{font-size:14px;border-bottom:1px solid var(--rule);padding:15px 0}.book-album>.p4{grid-column:1/-1;aspect-ratio:2/1}.status-message{position:fixed;z-index:110;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 30px);padding:12px 20px;background:#263027;color:#fff;border-radius:8px;box-shadow:0 4px 20px #0002;font:14px/1.5 var(--sans);pointer-events:none}.status-message:empty{display:none}dialog{border:0;padding:0;border-radius:18px;background:#f8f8f2;color:#2c352a;box-shadow:0 25px 100px #0004;max-height:90dvh;overscroll-behavior:contain}dialog::backdrop{background:#1a251a99;backdrop-filter:blur(7px)}.dialog-header{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:32px 35px 22px}.dialog-header h2{font:400 34px/1.4 var(--serif);margin:10px 0}.dialog-eyebrow{font:12px var(--sans);letter-spacing:.16em;color:#7b826f}.dialog-header p{font:14px/1.7 var(--sans);color:#78806e}.close-dialog{width:44px;height:44px;border-radius:50%;border:1px solid #d6ddce;font:30px/1 var(--sans);background:transparent;flex-shrink:0}.map-dialog{width:min(800px,calc(100% - 30px))}.map-dialog .dialog-header{padding:25px 28px 20px}.map-dialog .dialog-header h2{font-size:27px}.map-content{padding:0 28px 28px}.map-frame-wrap{height:auto;background:#e1e6d7;border:1px solid #ced6c3}.map-frame-wrap img{display:block;width:100%;height:auto}.map-actions{display:flex;gap:25px;flex-wrap:wrap;padding-top:22px;font:14px/1.7 var(--sans)}.map-actions a{text-decoration:underline}.map-help{font:12px/1.7 var(--sans);color:#7b846d;margin-top:18px}.noscript-note{max-width:650px;padding:50px 25px;margin:auto;font:18px/1.8 var(--sans)}@container invitation (max-width:740px){.composition{padding:25px 6cqw 32px}.title{font-size:clamp(45px,12cqw,78px)}.couple{font-size:20px;gap:13px}.note{font-size:19px}.photo-label{font-size:20px;letter-spacing:.1em;gap:9px}.photo-label small{font-size:12px;letter-spacing:.06em}.photo-index{font-size:12px;top:12px;left:12px}.photo-cross{font-size:18px;bottom:8px;right:10px}.event{gap:22px}.event-label{font-size:12px;letter-spacing:.07em;margin-bottom:8px}.event strong{font-size:20px;line-height:1.55}.event time>span,.event .address{font-size:12px}.map-button{font-size:12px;margin-top:15px}.map-button span{margin-left:5px}.end{padding-top:30px;margin-top:40px;gap:12px}.end p{font-size:clamp(30px,8cqw,48px)}.end a{font-size:24px;padding:10px}.red-thread{padding-inline:4cqw}.book-left{padding:24px 12px;display:flex;flex-direction:column}.book-left .photo{aspect-ratio:auto;flex:1;min-height:250px}.book-left .couple{font-size:16px;gap:8px;letter-spacing:0;margin-top:22px}.book-right{padding:25px 15px}.book-right>.note:first-child{font-size:12px;letter-spacing:0;margin-bottom:25px}.book-right .title{font-size:clamp(32px,9.8cqw,65px);line-height:1.25}.book-right>.note{font-size:15px;margin:18px 0 22px}.book-right .event{gap:22px}.book-right .event strong{font-size:17px}.book-right .event-label{font-size:12px}.book-right .address,.book-right .event time>span{font-size:12px}.book-right .map-button{font-size:12px}.book-album{gap:20px;padding:35px 2%0}.book-album>div>.note{font-size:12px;padding:12px 0}.book-album>.p4{aspect-ratio:4/3}}@container invitation (max-width:360px){.event{gap:15px}.event strong{font-size:17px}.event time>span,.event .address{font-size:12px}.map-button{font-size:12px}.book-right{padding-inline:12px}.book-right .event strong{font-size:15px}.book-right .title{font-size:30px}.photo-label small{font-size:12px}}@media (max-width:600px){.sample-note{font-size:12px;padding:10px 15px;letter-spacing:0}.status-message{bottom:20px;font-size:12px}.dialog-header{padding:24px 20px 18px;gap:10px}.dialog-header h2{font-size:27px;max-width:240px}.dialog-header p{font-size:12px}.dialog-eyebrow{font-size:12px;letter-spacing:.1em}.close-dialog{width:38px;height:38px;font-size:26px}.map-dialog{width:calc(100% - 20px);border-radius:14px}.map-dialog .dialog-header{padding:23px 20px 18px}.map-dialog .dialog-header h2{font-size:24px}.map-content{padding:0 20px 23px}.map-frame-wrap{height:auto}.map-actions{gap:18px;font-size:13px}.map-help{font-size:12px;line-height:1.8}}@media (max-width:360px){.dialog-header h2{font-size:24px}.map-actions{flex-direction:column;gap:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{dialog,.status-message,.page-progress,.skip-link{display:none!important}.composition{padding-bottom:20px}.photo{break-inside:avoid}}.red-thread .book-left{display:flex;flex-direction:column;justify-content:center}.red-thread .book-left .photo{aspect-ratio:2/3;flex:none;min-height:0}.red-thread .book-album>div>.photo{aspect-ratio:2/3}.red-thread .book-album>.p4{aspect-ratio:3/2}.red-thread .photo img{object-fit:contain}.red-thread .book-left .couple{font-size:clamp(1rem,3.8cqw,2rem);line-height:1.4;letter-spacing:.015em;flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:clamp(6px,1cqw,12px);margin-top:28px;white-space:nowrap}.red-thread .book-left .couple span{white-space:nowrap;flex-shrink:0}.red-thread .book-left .couple i{font-size:.8em;line-height:1.1}.red-thread .book-album .season-photo{align-self:start}.red-thread .book-album .season-photo>.photo{aspect-ratio:2/3}@container invitation (max-width:740px){.red-thread .book-left .couple{margin-top:24px}}@container invitation (max-width:420px){.red-thread .book-spread{grid-template-columns:minmax(0,1fr)}.red-thread .book-right{border-left:0;border-top:1px solid #85263633;padding:28px 24px}.red-thread .book-left{padding:24px}.red-thread .book-left .couple{font-size:clamp(1rem,7cqw,1.75rem);margin-bottom:8px}}.map-frame-wrap{position:relative;border-radius:10px;overflow:hidden;background:#e8ebdf}.map-frame-wrap a{display:block}.map-frame-wrap [hidden]{display:none}.map-image-error{padding:48px 24px;text-align:center;font:16px/1.7 var(--kaiti)}.map-attribution{font:12px/1.6 var(--kaiti);color:#68725e;margin-top:8px}.map-attribution a{text-decoration:underline}.map-actions{gap:12px}.map-actions a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid #861f2d;border-radius:8px;color:#861f2d;text-decoration:none;font:18px/1.4 var(--kaiti)}.map-actions #navigation-link{background:#861f2d;color:#fff4e2}.map-actions a[hidden]{display:none}.map-actions a:hover{filter:brightness(.92)}@media (max-width:600px){.map-frame-wrap{height:auto}.map-actions{display:grid;grid-template-columns:1fr 1fr}.map-actions a{padding:12px 10px;font-size:16px}}
