:root{color:#171717;background:#efefef;font-family:Pretendard,Noto Sans KR,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent, #d9a6a0);outline-offset:3px}.page-shell{--paper: #fbfaf7;--ink: #171717;--muted: #8b8178;--line: #e8e3dd;--accent: #d9a6a0;--surface: #f4f1ec;--radius: 10px;--section-space: 104px;--content-space: 24px;--display-font: Didot, "Times New Roman", serif;--body-font: Pretendard, "Noto Sans KR", sans-serif;--motion-duration: .65s;min-height:100vh;color:var(--ink);font-family:var(--body-font)}.invitation{width:min(100%,430px);min-height:100vh;margin:0 auto;overflow:clip;background:var(--paper)}.load-state{display:grid;min-height:100vh;place-items:center;background:#fbfaf7;color:#655f59}.hero{display:flex;min-height:920px;padding:64px 28px 42px;align-items:center;flex-direction:column;text-align:center}.hero__mark{margin:0;font-family:var(--display-font);font-size:clamp(2.2rem,11vw,3.1rem);font-weight:400;line-height:1;letter-spacing:.06em}.hero__eyebrow,.eyebrow{margin:0;font-family:var(--display-font);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase}.hero__eyebrow{margin:0 0 24px}.hero__date-stack{display:grid;margin-top:56px;gap:8px;color:var(--muted);font-family:var(--display-font);font-size:.62rem;letter-spacing:.16em}.hero__date-stack p,.hero__date-stack time{margin:0}.hero__date-stack strong{font-size:1.25em;font-weight:400;letter-spacing:.03em}.hero__date-stack sup{margin-left:1px;font-size:.55em;vertical-align:super}.hero__divider{width:1px;height:108px;margin:32px 0 28px;background:var(--line)}.hero__subtitle{max-width:270px;margin:14px 0 0;color:var(--muted);font-family:serif;font-size:.95rem;line-height:1.8}.hero__names{display:flex;flex-direction:column;gap:16px;font-size:1.03rem;letter-spacing:.22em}.hero__venue{margin:40px 0 0;color:var(--muted);font-size:.76rem;letter-spacing:.04em}.hero__line{width:1px;height:92px;margin-top:auto;background:var(--line)}[id^=invitation-section-]{scroll-margin-top:24px}.section{padding:var(--section-space) var(--content-space);text-align:center}.section--surface{background:var(--surface)}.section-heading{margin:0 auto 42px}.section-heading .eyebrow{margin-bottom:17px;color:var(--muted)}.section-heading h2{margin:0;font-family:serif;font-size:1.45rem;font-weight:500;letter-spacing:-.025em}.section-heading>p:last-child:not(.eyebrow){max-width:310px;margin:16px auto 0;color:var(--muted);font-size:.85rem;line-height:1.75}.multiline{white-space:pre-line}.invitation-section>.multiline{margin:0 auto 38px;color:#5e5954;font-family:serif;font-size:.95rem;line-height:2.05}.media{display:block;width:100%;object-fit:cover}.media--placeholder{display:grid;overflow:hidden;place-items:center;background:var(--surface);color:var(--muted);font-family:var(--display-font);font-size:.72rem;letter-spacing:.18em}.media--placeholder:before{width:42px;height:64px;border:1px solid var(--line);border-radius:50% 50% 45% 45%;content:"";position:absolute;transform:rotate(12deg)}.media--placeholder span{position:relative;z-index:1}.greeting-photo{position:relative;aspect-ratio:4 / 5;border-radius:var(--radius)}.couple-line{display:grid;margin:40px 0 22px;align-items:center;grid-template-columns:auto auto 1px auto auto;gap:8px;font-size:.76rem}.couple-line span{color:var(--muted)}.couple-line strong{font-weight:500}.couple-line i{width:1px;height:20px;margin:0 5px;background:var(--line)}.family-relations{display:grid;width:fit-content;margin:40px auto 22px;gap:10px}.family-relation{display:grid;align-items:center;grid-template-columns:max-content auto;column-gap:14px;font-size:.74rem}.family-relation__label{color:var(--ink);text-align:right;font-size:1rem;font-weight:600}.family-relation__details{display:flex;align-items:baseline;gap:7px;min-width:0;white-space:nowrap}.family-relation__details>span:nth-last-child(2),.family-relation__details em{color:var(--muted)}.family-relation__details em{font-style:normal}.family-relation__details strong{font-weight:500}.family-relation--simple>span:first-child{color:var(--ink);text-align:right;font-size:1rem;font-weight:600}.contact-button{display:flex;min-width:202px;min-height:52px;margin:8px auto 0;padding:0 26px;border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);align-items:center;justify-content:center;gap:8px;background:var(--paper);color:var(--ink);box-shadow:0 6px 18px #26211d0a;cursor:pointer;font-size:.8rem}.contact-button svg{width:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.profile-section{padding-top:calc(var(--section-space) - 12px)}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:center}.profile-card{min-width:0}.profile-card__image{aspect-ratio:4 / 5;border-radius:var(--radius)}.profile-card__body{display:grid;margin-top:15px;gap:4px;color:var(--muted);font-size:.69rem;line-height:1.55}.profile-card__body p{margin:0}.profile-card__name{display:flex;margin-bottom:6px!important;align-items:baseline;justify-content:center;gap:5px;color:var(--ink)}.profile-card__name span{color:var(--muted);font-size:.67rem}.profile-card__name strong{font-size:.95rem;font-weight:500}.profile-card__message{margin-top:10px!important;color:var(--ink)}.text-button,.primary-button,.secondary-button,.small-button,.share-button{min-height:44px;border:0;border-radius:var(--radius);cursor:pointer}.text-button{padding:8px 12px;background:transparent;color:var(--ink);font-size:.8rem}.text-button span{margin-left:8px}.primary-button,.secondary-button{width:100%;padding:13px 18px}.primary-button{background:var(--ink);color:var(--paper)}.primary-button:disabled{cursor:not-allowed;opacity:.35}.secondary-button{border:1px solid var(--line);background:var(--paper);color:var(--ink)}.secondary-button:disabled{cursor:not-allowed;opacity:.35}.interview-grid{display:grid;margin-bottom:20px;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.interview-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.portrait-placeholder{display:grid;aspect-ratio:1;place-items:center;background:#e9e4de;color:var(--muted);font-family:serif;font-size:.8rem}.interview-card h3{margin:18px 14px 7px;font-family:serif;font-size:.92rem;font-weight:500;line-height:1.5}.interview-card p{display:-webkit-box;overflow:hidden;margin:0 14px 18px;color:var(--muted);font-size:.72rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.calendar{padding:28px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar__month{margin:0 0 24px;font-family:var(--display-font);font-size:1.1rem;letter-spacing:.08em}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:13px}.calendar__grid span{display:grid;min-height:28px;place-items:center;font-size:.72rem}.calendar__weekdays{margin-bottom:12px;color:var(--muted)}.calendar__selected{width:28px;margin:0 auto;border-radius:50%;background:var(--accent);color:#fff}.countdown{display:grid;margin-top:34px;grid-template-columns:repeat(4,1fr)}.countdown div{display:flex;padding:0 7px;border-right:1px solid var(--line);flex-direction:column;gap:8px}.countdown div:last-child{border-right:0}.countdown strong{font-family:var(--display-font);font-size:1.5rem;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{color:var(--muted);font-size:.55rem;letter-spacing:.12em}.section--timeline{background:#1c1b1a;color:var(--paper)}.section--timeline .section-heading .eyebrow,.section--timeline .timeline-card__date,.section--timeline .timeline-card>p:last-child{color:#aaa39c}.timeline-card{min-height:450px}.timeline-card__image{position:relative;aspect-ratio:4 / 5;margin-bottom:28px;border-radius:var(--radius);background:#2b2927}.timeline-card__date{margin:0 0 8px;font-family:var(--display-font);font-size:.7rem;letter-spacing:.18em}.timeline-card h3{margin:0 0 10px;font-family:serif;font-size:1.2rem;font-weight:500}.timeline-card>p:last-child{margin:0;font-size:.8rem;line-height:1.7}.carousel-controls{display:flex;margin-top:28px;align-items:center;justify-content:center;gap:22px}.carousel-controls span{min-width:44px;color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}.icon-button{display:inline-grid;width:42px;height:42px;padding:0;border:1px solid currentColor;border-radius:50%;place-items:center;background:transparent;color:inherit;cursor:pointer;text-decoration:none}.cta-section{padding-right:44px;padding-left:44px}.venue h3{margin:0 0 10px;font-family:serif;font-size:1rem;font-weight:500}.venue p,.venue a{color:var(--muted);font-size:.78rem}.venue a{display:inline-block;margin-top:7px}.map-embed{display:block;width:100%;min-height:214px;margin-top:34px;aspect-ratio:1.35;border:0;border-radius:var(--radius);background:var(--surface)}.map-embed--fallback{display:grid;min-height:174px;border:1px solid var(--line);place-items:center;color:var(--muted);font-size:.76rem;text-decoration:none}.navigation-links{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.map-sketch-button{display:grid;width:min(100% - 44px,350px);min-height:58px;margin:26px auto 42px;border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);place-items:center;background:var(--paper);color:var(--ink);box-shadow:0 6px 18px #26211d0a;cursor:pointer;font-size:.82rem}.navigation-block{margin-top:36px;padding:0 0 26px;border-bottom:1px solid var(--line);text-align:left}.navigation-block h3,.navigation-block p{margin:0}.navigation-block h3{font-size:.8rem}.navigation-block p{margin-top:15px;color:var(--muted);font-size:.72rem}.navigation-links a{display:flex;min-height:52px;padding:12px 4px;border:1px solid var(--line);border-radius:calc(var(--radius) - 2px);align-items:center;justify-content:center;color:var(--ink);font-size:.68rem;gap:6px;text-decoration:none}.navigation-service-icon{width:18px;height:18px;flex:0 0 auto}.navigation-block .navigation-links{margin-top:18px}.transport-list{margin-top:0;text-align:left}.transport-list article{display:grid;padding:20px 0;border-bottom:1px solid var(--line);grid-template-columns:74px 1fr;gap:14px}.transport-list h3,.transport-list p{margin:0}.transport-list h3{font-size:.76rem}.transport-list p{color:var(--muted);font-size:.72rem;line-height:1.7}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gallery-photo-button{position:relative;display:block;overflow:hidden;width:100%;margin:0;padding:0;border:0;border-radius:var(--radius);background:var(--surface);color:#fff;cursor:zoom-in}.gallery-grid .gallery-photo-button{aspect-ratio:1}.gallery-photo-button .media{width:100%;height:100%;object-fit:cover}.gallery-photo-button__zoom{position:absolute;right:10px;bottom:10px;display:grid;width:30px;height:30px;border:1px solid rgb(255 255 255 / 34%);border-radius:50%;place-items:center;background:#0a0a0a70;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);opacity:0;pointer-events:none;transition:opacity .16s ease}.gallery-photo-button:is(:hover,:focus-visible) .gallery-photo-button__zoom{opacity:1}.gallery-photo-button__zoom svg{width:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.5}.gallery-carousel{position:relative;margin:0 calc(var(--content-space) * -1) 30px}.gallery-carousel__viewport{overflow-x:auto;padding:0 var(--content-space) 6px;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery-carousel__viewport::-webkit-scrollbar{display:none}.gallery-carousel__track{display:flex;width:max-content;gap:10px}.gallery-carousel__slide{width:min(78vw,300px);min-width:min(78vw,300px);aspect-ratio:4 / 5;scroll-snap-align:start}.gallery-carousel__slide .gallery-photo-button{height:100%}.gallery-carousel .media{backface-visibility:hidden;opacity:0;transform:translateZ(0);transition:opacity .16s ease}.gallery-carousel .gallery-photo-button.is-decoded .media{opacity:1}.gallery-carousel__hint{position:absolute;z-index:1;top:50%;right:calc(var(--content-space) + 10px);display:grid;width:34px;height:34px;border:1px solid rgb(255 255 255 / 38%);border-radius:50%;place-items:center;background:#14121061;color:#fff;opacity:.72;pointer-events:none;transform:translateY(-50%)}.gallery-carousel__hint svg{width:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.gallery-section>.text-button{margin-top:24px}.dialog.dialog--gallery-viewer,.page-shell--catalog .dialog.dialog--gallery-viewer{width:min(100%,430px);max-width:430px;height:100dvh;max-height:none;border-radius:0;background:#090909;color:#fff;overflow:hidden}.dialog--gallery-viewer::backdrop{background:#000000e0}.dialog--gallery-viewer .dialog__header{box-sizing:border-box;height:60px;min-height:60px;padding:0 18px;border-bottom-color:#ffffff24;border-radius:0;background:#090909}.dialog--gallery-viewer .dialog__header h2{color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.12em}.dialog--gallery-viewer .icon-button{color:#fff}.dialog--gallery-viewer .dialog__body,.page-shell--catalog .dialog--gallery-viewer .dialog__body{height:calc(100dvh - 60px);padding:0;background:#090909}.gallery-viewer{display:grid;height:100%;grid-template-rows:minmax(0,1fr) 72px}.gallery-viewer__frame{display:grid;overflow:hidden;padding:18px 16px;place-items:center}.gallery-viewer__frame .media{width:100%;height:100%;max-height:calc(100dvh - 168px);object-fit:contain}.dialog--gallery-viewer .media--placeholder,.page-shell--catalog .dialog--gallery-viewer .media--placeholder{background:#151515;color:#ffffff94}.gallery-viewer__controls{display:grid;padding:0 18px max(12px,env(safe-area-inset-bottom));align-items:center;grid-template-columns:52px 1fr 52px;border-top:1px solid rgb(255 255 255 / 12%)}.gallery-viewer__controls button{width:44px;height:44px;border:1px solid rgb(255 255 255 / 24%);border-radius:50%;background:transparent;color:#fff;cursor:pointer}.gallery-viewer__controls button:disabled{opacity:.3}.gallery-viewer__controls span{color:#ffffffb8;font-size:.68rem;letter-spacing:.12em;text-align:center}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.middle-image{position:relative;overflow:hidden;background:#1c1b1a}.placeholder-band{position:relative;height:460px;filter:grayscale(.25);object-fit:cover;clip-path:ellipse(92% 74% at 50% 26%)}.middle-image>div:last-child{position:absolute;right:0;bottom:48px;left:0;color:#fff;text-align:center}.middle-image p{font-family:var(--display-font);font-size:.65rem;letter-spacing:.26em}.middle-image strong{font-family:var(--display-font);font-size:1.5rem;font-weight:400}.account-groups{display:grid;gap:28px}.account-group__title{margin:0 0 12px;font-family:var(--display-font);font-size:.9rem;font-weight:500;text-align:left}.account-list{display:grid;gap:10px}.account-card{display:grid;padding:18px;border:1px solid var(--line);border-radius:var(--radius);align-items:center;grid-template-columns:1fr auto auto;gap:8px;text-align:left}.account-card>div{display:flex;min-width:0;flex-direction:column;gap:6px}.account-card span{color:var(--muted);font-size:.68rem}.account-card strong{font-size:.76rem;font-weight:500;overflow-wrap:anywhere}.small-button{display:inline-flex;min-height:34px;padding:7px 10px;border:1px solid var(--line);align-items:center;background:transparent;color:var(--ink);font-size:.66rem;text-decoration:none}.polaroid-stack{position:relative;height:240px;margin:18px 0 34px}.polaroid-stack span{position:absolute;top:20px;left:50%;display:grid;width:150px;height:195px;border:8px solid white;border-bottom-width:34px;overflow:hidden;box-shadow:0 8px 30px #28231e1a;place-items:center;background:#d8d1c9;color:#fff;font-family:var(--display-font)}.polaroid-stack span:nth-child(1){transform:translate(-72%) rotate(-8deg)}.polaroid-stack span:nth-child(2){z-index:2;transform:translate(-50%) rotate(2deg);background:#bdb6ad}.polaroid-stack span:nth-child(3){transform:translate(-29%) rotate(9deg);background:#a59d94}.polaroid-stack span>img,.polaroid-stack span>.media{width:100%;height:100%;object-fit:cover}.upload-date{margin:0 0 20px;color:var(--muted);font-size:.68rem}.closing{padding-bottom:56px;text-align:center}.closing__image{position:relative;height:540px;object-fit:cover;clip-path:polygon(0 5%,8% 3%,18% 7%,29% 3%,39% 6%,51% 2%,61% 6%,72% 3%,83% 7%,92% 3%,100% 6%,100% 100%,0 100%)}.closing__copy{padding:42px 28px 34px}.closing__copy .eyebrow{margin-bottom:18px}.closing__copy p:last-child{color:var(--muted);font-family:serif;font-size:.9rem;line-height:1.9}.share-actions{display:grid;width:calc(100% - 48px);margin:0 auto;gap:10px}.share-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 18px;background:#f7df78;color:#342d17}.share-button--kakao{background:#fee500;color:#191919;font-weight:600}.share-button--secondary{border:1px solid var(--line);background:transparent;color:var(--ink)}.share-button__kakao-icon{width:24px;height:24px;flex:0 0 auto;fill:currentcolor}.share-button__kakao-word{fill:#fee500;font-family:Arial,sans-serif;font-size:5px;font-weight:800;letter-spacing:-.15px}.ambient-guestbook-letter{position:fixed;z-index:19;top:clamp(230px,43vh,430px);right:max(0px,calc((100vw - 430px)/2));width:min(268px,calc(100vw - 72px));min-height:116px;padding:30px 42px 22px 26px;overflow:hidden;border:1px solid #d9d9d9;border-radius:0;background:#fff;color:#101010;box-shadow:0 14px 36px #00000029;text-align:left;transform:translate(18px) rotate(-.6deg);animation:ambient-letter-arrive .42s cubic-bezier(.2,.75,.25,1) both;cursor:pointer}.ambient-guestbook-letter:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--accent);content:""}.ambient-guestbook-letter:after{position:absolute;right:-1px;bottom:-1px;width:24px;height:24px;border-top:1px solid #d9d9d9;border-left:1px solid #d9d9d9;background:linear-gradient(135deg,#f0f0f0 0 49%,#fff 50%);content:""}.ambient-guestbook-letter__postmark{position:absolute;top:14px;right:18px;color:#777;font-size:.5rem;font-weight:700;letter-spacing:.18em}.ambient-guestbook-letter>strong{display:-webkit-box;overflow:hidden;font-size:.88rem;font-weight:620;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ambient-guestbook-letter>span:last-child{display:flex;margin-top:15px;align-items:center;gap:8px;color:#656565;font-size:.68rem}.ambient-guestbook-letter time:before{margin-right:8px;content:"·"}.ambient-guestbook-dock{position:fixed;z-index:19;top:56vh;left:max(0px,calc((100vw - 430px)/2));display:grid;width:48px;min-height:64px;padding:10px 8px 8px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;place-items:center;background:#fffffff0;color:#111;box-shadow:0 8px 24px #0000001f;cursor:pointer}.ambient-guestbook-dock svg{width:20px;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.ambient-guestbook-dock strong{font-size:.72rem;font-weight:700}.page-shell--catalog .ambient-guestbook-letter:before{background:linear-gradient(to bottom,#1746a2 0 25%,#d7261e 25% 50%,#f2c230 50% 75%,#218c4a 75%)}.page-shell--catalog .ambient-guestbook-letter,.page-shell--catalog .ambient-guestbook-dock{border-color:#111;font-family:var(--body-font)}.music-button,.floating-menu-button,.github-button{position:fixed;z-index:20;right:max(20px,calc((100vw - 430px)/2 + 18px));display:grid;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;place-items:center;background:#fbfaf7eb;color:var(--ink);box-shadow:0 8px 24px #26211d14;cursor:pointer}.music-button{top:20px}.github-button{top:20px;left:max(20px,calc((100vw - 430px)/2 + 18px));color:var(--ink)}.github-button svg{width:23px;height:23px;fill:currentColor}.music-button:before{position:absolute;inset:4px;border:1px solid currentColor;border-radius:50%;content:"";opacity:.18}.music-note-icon{width:23px;height:23px;fill:currentColor}.music-button.is-playing:before{animation:music-pulse 1.8s ease-out infinite}.music-button.is-playing .music-note-icon{animation:music-note 1.1s ease-in-out infinite alternate}.floating-menu-button{bottom:22px;width:auto;min-width:64px;height:40px;padding:0 11px;border-radius:999px;grid-auto-flow:column;gap:5px}.page-shell[data-channel-talk=enabled] .floating-menu-button{bottom:96px}.celebration-button{position:fixed;z-index:20;right:max(20px,calc((100vw - 430px)/2 + 18px));bottom:78px;display:grid;width:auto;min-width:64px;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:999px;place-items:center;grid-auto-flow:column;gap:5px;background:#fbfaf7eb;color:var(--ink);box-shadow:0 8px 24px #26211d14;cursor:pointer}.page-shell[data-channel-talk=enabled] .celebration-button{bottom:152px}.celebration-button svg{width:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.floating-menu-button svg{width:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.floating-action__label{font-size:.6rem;font-weight:680;letter-spacing:.02em;line-height:1}.dialog{width:min(100%,430px);max-width:430px;height:min(88vh,760px);max-height:760px;padding:0;border:0;border-radius:16px 16px 0 0;background:var(--paper, #fbfaf7);color:var(--ink, #171717)}.dialog::backdrop{background:#1717178c}.dialog[open]{animation:dialog-in .24s ease-out both}.dialog__header{position:sticky;z-index:2;top:0;display:flex;padding:22px 22px 16px;border-bottom:1px solid var(--line, #e8e3dd);align-items:center;justify-content:space-between;background:var(--paper, #fbfaf7)}.dialog__header h2{margin:0;font-family:serif;font-size:1.05rem;font-weight:500}.dialog__header .icon-button{width:36px;height:36px;border-color:var(--line, #e8e3dd)}.dialog__body{padding:26px 22px 40px}.dialog--rsvp-welcome{box-sizing:border-box;width:min(calc(100% - 40px),390px);height:auto;max-height:min(76vh,600px);margin:0 auto;inset:auto 0 0}.dialog--rsvp-welcome .dialog__header{min-height:58px;padding:18px 22px 8px;border-bottom:0;justify-content:center}.dialog--rsvp-welcome .dialog__header .icon-button{position:absolute;right:18px;top:12px}.dialog--rsvp-welcome .dialog__body{padding:4px 28px 26px}.rsvp-welcome{display:grid;text-align:center}.rsvp-welcome__icon{color:var(--muted);font-family:serif;font-size:1.65rem}.rsvp-welcome__lead{max-width:290px;margin:18px auto 26px;color:var(--muted);font-family:var(--body-font);font-size:.88rem;line-height:1.8}.rsvp-welcome__details{display:grid;margin:0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:14px;text-align:left}.rsvp-welcome__details div{display:grid;grid-template-columns:64px 1fr;gap:10px}.rsvp-welcome__details dt,.rsvp-welcome__details dd{margin:0;font-size:.72rem;line-height:1.5}.rsvp-welcome__details dt{color:var(--muted)}.rsvp-welcome__details dd{color:var(--ink)}.rsvp-welcome__actions{display:grid;margin-top:18px;align-items:center;grid-template-columns:1fr 1.35fr;gap:12px}.rsvp-welcome__actions .text-button{margin:0;font-size:.69rem}.rsvp-welcome__actions .primary-button{min-height:48px;padding:0 12px;font-size:.76rem}.dialog--celebration{box-sizing:border-box;width:min(calc(100% - 40px),390px);height:auto;max-height:min(76vh,600px);margin:0 auto;inset:auto 0 0}.dialog--celebration .dialog__header{min-height:58px;padding:18px 22px 8px;border-bottom:0;justify-content:center}.dialog--celebration .dialog__header .icon-button{position:absolute;top:12px;right:18px}.dialog--celebration .dialog__body{padding:4px 28px 26px}.guest-upload-showcase{margin:0 0 18px}.guest-upload-showcase>p{margin:0 0 10px;color:var(--muted);font-size:.84rem;font-weight:700;text-align:center}.guest-upload-showcase__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.guest-upload-showcase__grid img,.guest-upload-showcase__grid .media{width:100%;aspect-ratio:1;border-radius:calc(var(--radius) * .55);object-fit:cover}.celebration-sheet{display:grid;text-align:center}.celebration-sheet__names{display:flex;margin:14px 0 20px;align-items:center;justify-content:center;gap:10px;font-size:.75rem}.celebration-sheet__names strong{margin-left:3px;font-size:.95rem;font-weight:500}.celebration-sheet__names i{color:var(--muted);font-size:1.25rem;font-style:normal}.celebration-sheet__message{margin:0 auto 24px;color:#5d5751;font-family:var(--body-font);font-size:.88rem;line-height:1.8;white-space:pre-wrap}.celebration-sheet__details{display:grid;margin:0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:14px;text-align:left}.celebration-sheet__details div{display:grid;grid-template-columns:64px 1fr;gap:10px}.celebration-sheet__details dt,.celebration-sheet__details dd{margin:0;font-size:.72rem;line-height:1.5}.celebration-sheet__details dt{color:var(--muted)}.celebration-sheet__link{display:grid;min-height:50px;margin-top:20px;border:1px solid var(--ink);border-radius:var(--radius);place-items:center;color:var(--ink);font-size:.78rem;text-decoration:none}.quick-menu{display:grid;gap:30px}.quick-menu__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quick-menu__actions>:only-child{grid-column:1 / -1}.quick-menu__actions .quick-menu__share{grid-column:1 / -1}.quick-menu__actions button{min-height:48px;padding-right:10px;padding-left:10px;font-size:.72rem}.quick-menu__nav ul{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.quick-menu__nav button{display:grid;width:100%;min-height:52px;padding:0 2px;border:0;border-bottom:1px solid var(--line);align-items:center;grid-template-columns:34px 1fr 20px;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.quick-menu__nav button>span{color:var(--muted);font-family:var(--display-font);font-size:.62rem;letter-spacing:.08em}.quick-menu__nav strong{font-size:.78rem;font-weight:500}.quick-menu__nav svg{width:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.quick-menu__share{min-height:46px}.sketch-map-image{height:min(calc(88vh - 190px),540px);border-radius:var(--radius);object-fit:contain}.contact-groups{display:grid;gap:30px}.contact-groups section{display:grid;gap:12px}.contact-groups h3{margin:0;color:var(--muted);font-size:.68rem;font-weight:500;letter-spacing:.08em}.contact-list{display:grid;gap:12px}.contact-list article{display:flex;padding:17px;border:1px solid var(--line);border-radius:var(--radius);align-items:center;justify-content:space-between}.contact-list article>div:first-child{display:flex;flex-direction:column;gap:5px}.contact-list article>div:last-child{display:flex;gap:7px}.contact-list span{color:var(--muted);font-size:.65rem}.contact-list strong{font-size:.82rem;font-weight:500}.contact-list .icon-button{width:38px;height:38px;border-color:var(--line)}.contact-list .icon-button svg{width:15px;height:15px;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.qa-list article{padding:24px 0;border-bottom:1px solid var(--line)}.qa-list article>span{color:var(--accent);font-family:var(--display-font);font-size:.68rem;letter-spacing:.12em}.qa-list h3{margin:10px 0 14px;font-family:serif;font-size:1rem;font-weight:500}.qa-list p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.8}.form-stack{display:grid;gap:18px}.form-stack>label{display:grid;gap:8px;color:#5d5751;font-size:.72rem;text-align:left}.form-stack input,.form-stack select,.form-stack textarea{width:100%;min-height:45px;padding:11px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);resize:vertical}.choice-grid{display:grid;margin:0;padding:0;border:0;grid-template-columns:1fr 1fr;gap:8px}.choice-grid legend{margin-bottom:8px;color:#5d5751;font-size:.72rem}.choice-grid label{display:flex;min-height:45px;padding:10px;border:1px solid var(--line);border-radius:7px;align-items:center;gap:8px;font-size:.75rem}.choice-grid input,.check-line input{width:auto;min-height:auto}.form-stack .check-line{display:flex;align-items:flex-start;grid-template-columns:auto 1fr}.form-help{margin:-9px 0 0;color:var(--muted);font-size:.67rem}.required-mark{color:#a33e37;font-weight:700}.field-label{display:inline-flex;align-items:baseline;gap:.2em}.guestbook-list{display:grid;gap:10px}.guestbook-list article{padding:16px;border:1px solid var(--line);border-radius:var(--radius)}.guestbook-list article>div{display:flex;align-items:center;justify-content:space-between}.guestbook-list strong{font-size:.78rem;font-weight:500}.guestbook-list time{color:var(--muted);font-size:.62rem}.guestbook-list__meta{display:inline-flex;align-items:center;gap:9px}.guestbook-list__meta button{padding:0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);font:inherit;font-size:.6rem;cursor:pointer}.guestbook-list p{margin:13px 0 0;color:#625c56;font-size:.76rem;line-height:1.7}.empty-state{padding:72px 12px;color:var(--muted);text-align:center}.toast{position:fixed;z-index:100;right:20px;bottom:22px;left:20px;display:flex;width:min(calc(100% - 40px),390px);min-height:50px;margin:auto;padding:12px 14px;border-radius:9px;align-items:center;justify-content:space-between;background:#1c1b1a;color:#fff;font-size:.75rem;opacity:0;pointer-events:none;transform:translateY(14px);transition:.18s ease}.toast.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.toast button{border:0;background:transparent;color:inherit;cursor:pointer}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity var(--motion-duration) ease,transform var(--motion-duration) ease}[data-reveal].is-visible{opacity:1;transform:none}[data-reveal=from-left]{transform:translate(-24px)}[data-reveal=from-right]{transform:translate(24px)}.page-shell--catalog{--paper: #ffffff;--ink: #0a0a0a;--muted: #6f6f6f;--line: #dedede;--accent: #0a0a0a;--surface: #f4f4f4;--sicilian-noir: #0a0a0a;--sicilian-frieze-height: 44px;--sicilian-transition-art: url(/assets/sicilian-courtyard-transition.webp);--sicilian-frieze-art: url(/assets/sicilian-ornamental-frieze.webp);--sicilian-medallion-art: url(/assets/sicilian-star-medallion.png);--sicilian-calendar-rail-art: url(/assets/sicilian-calendar-ornament.webp);--display-font: "Avenir Next", "Helvetica Neue", Arial, Pretendard, "Noto Sans KR", sans-serif;--body-font: "Avenir Next", "Helvetica Neue", Arial, Pretendard, "Noto Sans KR", sans-serif;--radius: 0;--section-space: 96px;--content-space: 24px;background:#fff;color-scheme:light}.page-shell--catalog .invitation{background:var(--paper);box-shadow:0 0 72px #0000003d}.page-shell[data-theme=photo-editorial]{--sicilian-transition-art: none;--sicilian-frieze-art: none;--sicilian-medallion-art: none;--sicilian-calendar-rail-art: none}.photo-hero{position:relative;display:grid;min-height:100svh;overflow:hidden;place-items:center;background:#28231f;color:#fff;isolation:isolate}.photo-hero__image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}.photo-hero__image.media--placeholder{display:grid;background:linear-gradient(145deg,#4f433a,#1e1a17);color:#ffffffa6}.photo-hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0d0a084d,#0d0a0814 42%,#0d0a087a)}.photo-hero__copy{display:flex;width:min(100%,360px);padding:64px 28px 84px;align-items:center;flex-direction:column;text-align:center;text-shadow:0 1px 16px rgb(0 0 0 / 30%)}.photo-hero__copy>p,.photo-hero__copy time{margin:0;font-family:var(--body-font);font-size:.61rem;font-weight:550;letter-spacing:.27em}.photo-hero__copy h1{max-width:100%;margin:20px 0 24px;font-family:var(--display-font);font-size:clamp(2.7rem,14vw,4.2rem);font-weight:400;letter-spacing:.03em;line-height:.92;overflow-wrap:anywhere}.photo-hero__names{display:flex;align-items:center;gap:11px;font-family:var(--body-font);font-size:.78rem;font-weight:500;letter-spacing:.14em}.photo-hero__names strong{font-weight:500}.photo-hero__names strong+strong:before{margin-right:11px;content:"/";font-weight:300}.photo-hero__copy time{margin-top:auto;padding-top:178px}.photo-hero__subtitle{margin:12px 0 0;max-width:280px;font-family:var(--body-font);font-size:.7rem;letter-spacing:.08em;line-height:1.6}.photo-hero__scroll{position:absolute;bottom:28px;width:1px;height:42px;background:#ffffffb3}.catalog-hero{min-height:100vh;background:var(--paper)}.catalog-hero__masthead{display:grid;min-height:74px;padding:0 20px;align-items:center;grid-template-columns:64px minmax(0,1fr) 64px;background:var(--sicilian-noir);color:#fff;text-align:center}.catalog-hero__masthead h1{overflow:hidden;margin:0;font-family:var(--body-font);font-size:1.08rem;font-weight:650;letter-spacing:-.045em;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.catalog-hero__masthead span{color:#d9d2c8;font-size:.5rem;font-weight:650;letter-spacing:.15em}.catalog-hero__masthead span:first-child{text-align:left}.catalog-hero__masthead span:last-child{text-align:right}.catalog-hero__tile-ribbon{height:var(--sicilian-frieze-height);background:var(--sicilian-frieze-art) center / auto 100% repeat-x}.catalog-hero__canvas{padding:24px 24px 56px}.catalog-hero__visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-hero__image{min-width:0;aspect-ratio:1;background:var(--surface)}.catalog-hero__image:nth-child(3){grid-column:1 / -1;aspect-ratio:3 / 2}.catalog-hero__visual .media--placeholder{position:relative;overflow:hidden;border:0;background:#f4f4f4;color:var(--muted)}.page-shell--catalog .catalog-hero__visual .media--placeholder:before{content:none}.catalog-hero__visual .media--placeholder span{display:none}.catalog-hero__details{display:grid;margin-top:8px;padding:30px 24px 32px;grid-template-columns:minmax(0,1fr) auto;gap:20px 16px;background:var(--sicilian-noir);color:#fff}.catalog-hero__eyebrow,.catalog-hero__venue,.catalog-hero__subtitle,.catalog-hero__event p,.catalog-hero__event time{margin:0}.catalog-hero__eyebrow{grid-column:1 / -1;color:#fff;font-size:.52rem;font-weight:650;letter-spacing:.2em;text-transform:uppercase}.catalog-hero__names{display:flex;grid-column:1 / -1;flex-wrap:wrap;gap:7px 16px}.catalog-hero__names strong{font-size:clamp(1.4rem,6vw,1.78rem);font-weight:520;letter-spacing:-.045em;line-height:1.08}.catalog-hero__event{display:grid;gap:5px;font-size:.64rem;font-variant-numeric:tabular-nums;letter-spacing:.07em;text-transform:uppercase}.catalog-hero__event sup{margin-left:1px;font-size:.6em}.catalog-hero__venue{max-width:150px;justify-self:end;color:#b9b0a5;font-size:.6rem;line-height:1.55;text-align:right;text-transform:uppercase}.catalog-hero__subtitle{grid-column:1 / -1;color:#b9b0a5;font-size:.7rem;line-height:1.7}.page-shell--catalog .section{position:relative;padding-top:var(--section-space);padding-bottom:var(--section-space);border-bottom:0;background:var(--paper);text-align:left}.page-shell--catalog .section-heading{max-width:none;margin:0 0 36px;text-align:left}.page-shell--catalog .section-heading .eyebrow{display:flex;align-items:center;gap:9px;color:var(--accent);font-family:var(--body-font);font-size:.52rem;font-weight:700;letter-spacing:.2em}.page-shell--catalog .section-heading .eyebrow:before{width:22px;height:22px;flex:0 0 auto;background:var(--sicilian-medallion-art) center / contain no-repeat;content:""}.page-shell--catalog .section-heading h2{font-family:var(--display-font);font-size:clamp(1.35rem,5.6vw,1.7rem);font-weight:560;line-height:1.28;letter-spacing:-.04em;text-wrap:balance}.page-shell--catalog .section-heading>p:last-child:not(.eyebrow){max-width:320px;margin:12px 0 0;font-size:.76rem;line-height:1.7;text-align:left}.page-shell--catalog .invitation-section>.multiline{color:var(--muted);font-family:var(--body-font);font-size:.8rem;line-height:1.9;text-align:left}.page-shell--catalog .media{filter:none}.page-shell--catalog .media--placeholder,.page-shell--catalog .portrait-placeholder{position:relative;background:#f4f4f4}.page-shell--catalog .media--placeholder:before{content:none}.page-shell--catalog .media--placeholder>span{display:none}.page-shell--catalog .greeting-photo,.page-shell--catalog .profile-card__image,.page-shell--catalog .portrait-placeholder,.page-shell--catalog .timeline-card__image,.page-shell--catalog .gallery-carousel .media,.page-shell--catalog .map-embed,.page-shell--catalog .sketch-map-image{border-radius:var(--radius)}.page-shell--catalog .greeting-photo{aspect-ratio:4 / 5;border:0}.page-shell--catalog .family-relations,.page-shell--catalog .couple-line{padding:24px 18px;background:var(--surface);text-align:center}.page-shell--catalog .contact-button,.page-shell--catalog .map-sketch-button{border:0;border-radius:var(--radius);background:var(--sicilian-noir);color:#fff;box-shadow:0 10px 24px #08080824;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}.page-shell--catalog .profile-grid{gap:12px;background:transparent;text-align:left}.page-shell--catalog .profile-card{padding-bottom:0;background:transparent}.page-shell--catalog .profile-card__body{margin-top:12px}.page-shell--catalog .profile-card__name{justify-content:flex-start}.page-shell--catalog .profile-card__name strong,.page-shell--catalog .interview-card h3,.page-shell--catalog .timeline-card h3,.page-shell--catalog .venue h3,.page-shell--catalog .dialog__header h2,.page-shell--catalog .qa-list h3{font-family:var(--display-font);font-weight:560}.page-shell--catalog .section--surface{background:var(--surface)}.page-shell--catalog .interview-grid{gap:12px}.page-shell--catalog .interview-card{border:0;border-radius:var(--radius);background:var(--paper)}.page-shell--catalog .interview-card .portrait-placeholder.media--placeholder{aspect-ratio:4 / 3;background:#f4f4f4}.page-shell--catalog .calendar{position:relative;overflow:hidden;padding:28px 60px 28px 22px;border:0;background:var(--surface)}.page-shell--catalog .calendar:after{position:absolute;top:0;right:0;bottom:0;width:42px;background:var(--sicilian-calendar-rail-art) center top / 100% auto repeat-y;content:"";pointer-events:none}.page-shell--catalog .calendar__selected{border-radius:50%;background:var(--accent);color:#fff}.page-shell--catalog .section--timeline{background:var(--sicilian-noir);color:#fff}.page-shell--catalog .section--timeline .section-heading .eyebrow,.page-shell--catalog .section--timeline .timeline-card__date{color:#fff}.page-shell--catalog .section--timeline .timeline-card>p:last-child{color:#b9b0a5}.page-shell--catalog .timeline-card__image{border:0}.page-shell--catalog .timeline-card__image.media--placeholder{background:#242424}.page-shell--catalog .primary-button{background:var(--sicilian-noir);color:#fff;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase}.page-shell--catalog .secondary-button,.page-shell--catalog .navigation-links a,.page-shell--catalog .account-card{background:var(--paper)}.page-shell--catalog .guestbook-section .button-row button{font-size:.67rem;letter-spacing:.12em;text-transform:uppercase}.page-shell--catalog .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:transparent}.page-shell--catalog .gallery-grid .gallery-photo-button{aspect-ratio:3 / 4}.page-shell--catalog .gallery-grid .media--placeholder{background:#f4f4f4}.page-shell--catalog .gallery-carousel{gap:10px}.page-shell--catalog .gallery-carousel__slide{width:min(72vw,280px);min-width:min(72vw,280px)}.page-shell--catalog .middle-image{border:0;background:var(--sicilian-noir)}.page-shell--catalog .placeholder-band,.page-shell--catalog .closing__image{clip-path:none}.page-shell--catalog .placeholder-band{filter:none}.page-shell--catalog .middle-image .media--placeholder{background:linear-gradient(180deg,transparent 42%,rgb(10 10 10 / 76%) 100%),var(--sicilian-transition-art) center / cover}.page-shell--catalog .closing__image.media--placeholder{background:#242424}.page-shell--catalog .middle-image .media--placeholder:before,.page-shell--catalog .closing__image.media--placeholder:before{content:none}.page-shell--catalog .middle-image .media--placeholder>span,.page-shell--catalog .closing__image.media--placeholder>span{display:none}.page-shell--catalog .polaroid-stack span{border-color:#fff;background:#2a2a2a;color:#fff;box-shadow:0 16px 30px #08080829}.page-shell--catalog .polaroid-stack span:nth-child(2){background:#595959}.page-shell--catalog .polaroid-stack span:nth-child(3){background:#8a8a8a}.page-shell--catalog .closing{background:var(--sicilian-noir);color:#fff}.page-shell--catalog .closing:before{display:block;height:var(--sicilian-frieze-height);background:var(--sicilian-frieze-art) center / auto 100% repeat-x;content:""}.page-shell--catalog .closing__copy .eyebrow{color:#fff}.page-shell--catalog .closing__copy p:last-child{color:#b9b0a5;font-family:var(--body-font)}.page-shell--catalog .closing .share-button--secondary{border-color:#fff;color:#fff}.page-shell--catalog .music-button,.page-shell--catalog .floating-menu-button,.page-shell--catalog .github-button,.page-shell--catalog .celebration-button{border:0;border-radius:999px;background:#080808f0;color:#fff;box-shadow:0 8px 22px #0000003d}.page-shell--catalog .dialog{border:0;border-radius:18px 18px 0 0;background:var(--paper);color:var(--ink)}.page-shell--catalog .dialog__header{border-radius:18px 18px 0 0}.page-shell--catalog .dialog--rsvp-welcome{overflow:hidden;border-radius:0;background:var(--paper);color:var(--ink);box-shadow:0 -18px 52px #00000047;font-family:var(--body-font)}.page-shell--catalog .dialog--rsvp-welcome::backdrop{background:#0a0a0aad}.page-shell--catalog .dialog--rsvp-welcome .dialog__header{min-height:72px;padding:18px 62px;border-radius:0;background:var(--ink);color:var(--paper)}.page-shell--catalog .dialog--rsvp-welcome .dialog__header .icon-button{top:13px;right:16px;border:1px solid rgb(255 255 255 / 72%);border-radius:50%;background:transparent;color:var(--paper)}.page-shell--catalog .dialog--rsvp-welcome .dialog__body{padding:24px 28px 28px;background:var(--paper)}.page-shell--catalog .rsvp-welcome__icon{width:38px;height:38px;margin:0 auto;background:var(--sicilian-medallion-art) center / contain no-repeat;font-size:0}.page-shell--catalog .rsvp-welcome__lead{margin:14px auto 24px;color:var(--muted);font-family:var(--body-font);font-size:.82rem;line-height:1.75}.page-shell--catalog .rsvp-welcome__details{padding:18px;border:0;background:var(--surface);gap:12px}.page-shell--catalog .rsvp-welcome__details dt{color:var(--muted);font-weight:650;letter-spacing:.04em}.page-shell--catalog .rsvp-welcome__details dd{color:var(--ink);font-weight:520}.page-shell--catalog .rsvp-welcome__actions{gap:10px}.page-shell--catalog .rsvp-welcome__actions .text-button{min-height:48px;border:1px solid var(--ink);border-radius:0;background:var(--paper)}.page-shell--catalog .rsvp-welcome__actions .primary-button{border-radius:0;background:var(--ink);color:var(--paper);font-weight:650}.page-shell--catalog .rsvp-welcome__lead,.page-shell--catalog .celebration-sheet__message,.page-shell--catalog .form-stack>label,.page-shell--catalog .choice-grid legend,.page-shell--catalog .guestbook-list p{color:var(--muted)}.page-shell--catalog .form-stack input,.page-shell--catalog .form-stack select,.page-shell--catalog .form-stack textarea{border-radius:var(--radius);background:#fff;color:var(--ink)}.page-shell[data-theme=photo-editorial] .section-heading .eyebrow:before,.page-shell[data-theme=photo-editorial] .calendar:after,.page-shell[data-theme=photo-editorial] .middle-image .media--placeholder:before,.page-shell[data-theme=photo-editorial] .closing:before,.page-shell[data-theme=photo-editorial] .rsvp-welcome__icon{display:none;background:none;content:none}.page-shell[data-theme=photo-editorial] .invitation-section,.page-shell[data-theme=photo-editorial] .invitation-section .section-heading{text-align:center}.page-shell[data-theme=photo-editorial] .invitation-section .section-heading .eyebrow{justify-content:center}.page-shell[data-theme=photo-editorial] .invitation-section>.multiline{text-align:center}.page-shell[data-theme=photo-editorial] .photo-hero__copy h1{font-family:"Great Vibes",var(--display-font);font-size:clamp(4.1rem,20vw,6.2rem);letter-spacing:0;line-height:.72}@keyframes music-pulse{0%{opacity:.3;transform:scale(.88)}70%,to{opacity:0;transform:scale(1.22)}}@keyframes music-note{to{transform:rotate(-4deg) translateY(-1px)}}@keyframes ambient-letter-arrive{0%{opacity:0;transform:translate(calc(100% + 30px)) translateY(-7px) rotate(1.4deg)}to{opacity:1;transform:translate(18px) translateY(0) rotate(-.6deg)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(24px)}}@media(min-width:700px){.dialog{border-radius:16px}}@media(max-width:440px){:root{background:var(--paper, #fbfaf7)}.music-button,.floating-menu-button,.github-button,.celebration-button{right:16px}.github-button{left:16px}.ambient-guestbook-letter{right:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}.ambient-guestbook-letter{animation:none;transform:translate(18px)}}.album-link{display:block;width:fit-content;margin:24px auto 0;color:inherit;text-underline-offset:5px;font-size:.85rem}.photo-album{background:var(--paper)}.photo-album__main{max-width:1060px;margin:auto;padding:24px 24px 0}.photo-album__nav{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--line);font-size:.75rem}.photo-album__nav a{color:inherit;padding:12px 0;text-decoration:none}.photo-album__nav span{letter-spacing:.14em;font-size:.6rem}.photo-album__header{text-align:center;padding:64px 0 44px}.photo-album__header h1{font-size:clamp(2rem,5vw,3rem);font-weight:400;margin:18px 0}.photo-album__header p{line-height:1.8}.photo-album__note,.photo-album__count{font-size:.78rem;color:var(--muted)}.photo-album__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-album__tile{padding:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;min-width:0}.photo-album__tile img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.photo-album__tile>span:last-child{display:flex;justify-content:space-between;padding:12px 3px 3px;font-size:.72rem}.photo-album__unavailable{display:grid;place-content:center;min-height:160px;padding:14px;font-size:.75rem;line-height:1.8}.photo-album__empty{text-align:center;padding:48px 20px 64px;border:1px solid var(--line);background:var(--surface)}.photo-album__empty>span{font-size:2rem}.photo-album__empty h2{font-size:1.1rem;font-weight:500;margin-top:24px}.photo-album__empty p{font-size:.85rem;line-height:1.9}.photo-album__status{text-align:center;padding:20px;line-height:1.8}.photo-album__more{display:block;margin:32px auto}.photo-album__footer{padding:56px 0 40px;text-align:center;font-size:.75rem;color:var(--muted)}.photo-album__viewer{width:min(900px,calc(100% - 32px))}.photo-album__viewer img{display:block;width:100%;max-height:70vh;object-fit:contain}@media(max-width:600px){.photo-album__main{padding:16px 16px 0}.photo-album__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-album__tile{padding:6px}.photo-album__header{padding:44px 0 28px}}.photo-album__header{display:flex;align-items:center;justify-content:center;gap:clamp(32px,6vw,80px);text-align:left;padding:64px 12px 56px}.photo-album__intro{flex:1;max-width:500px}.photo-album__intro .eyebrow{font-family:var(--display-font);letter-spacing:.16em;font-size:.68rem}.photo-album__couple{font-family:var(--display-font);font-size:1.05rem;margin:32px 0 0}.photo-album__couple span{padding:0 8px;color:var(--muted);font-style:italic}.photo-album__header h1{margin:14px 0 24px;letter-spacing:-.04em}.photo-album__description{white-space:pre-line;font-size:.9rem}.photo-album__intro time{display:block;color:var(--muted);margin-top:24px;font-size:.75rem}.photo-album__cover{flex:0 1 300px;margin:0;padding:12px 12px 20px;background:var(--surface);border:1px solid var(--line);transform:rotate(3deg);box-shadow:0 8px 24px #0000000d}.photo-album__cover .media{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:0}.photo-album__cover figcaption{text-align:center;margin-top:16px;font-size:.67rem;line-height:1.6}.photo-album__guide{display:flex;align-items:center;justify-content:space-between;gap:32px;border-block:1px solid var(--line);padding:28px 0;margin:0 0 40px}.photo-album__guide>div{max-width:640px}.photo-album__guide .eyebrow{font-size:.67rem;letter-spacing:.05em;color:var(--muted)}.photo-album__guide h2{font-size:1.1rem;font-weight:500;margin:12px 0}.photo-album__guide p:not(.eyebrow){font-size:.8rem;line-height:1.9;margin:8px 0 0}.photo-album__upload{width:auto;max-width:100%;flex-shrink:0;display:flex;gap:16px;align-items:center;justify-content:center;text-decoration:none;font-size:.78rem}.photo-album__empty{border:0;background:transparent;padding-block:36px 56px}.photo-album__empty p{max-width:350px;margin-inline:auto}.photo-album__footer{border-top:1px solid var(--line);margin-top:40px}.photo-album__footer a{display:inline-block;color:var(--ink);margin-top:12px;padding:12px;text-underline-offset:5px}.photo-album__viewer-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:20px}.photo-album__viewer-nav button{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:12px;min-height:44px;cursor:pointer;font-size:.78rem}.photo-album__viewer-nav button:disabled{opacity:.4;cursor:default}.photo-album__viewer-nav span{font-size:.75rem}.photo-album__viewer .photo-album__note{text-align:center;line-height:1.8}@media(max-width:700px){.photo-album__header{flex-direction:column;text-align:center;padding:40px 8px;gap:32px}.photo-album__cover{flex:none;width:200px;padding:8px 8px 14px}.photo-album__cover figcaption{margin-top:12px;font-size:.6rem}.photo-album__guide{display:block;padding-block:24px}.photo-album__upload{margin-top:20px}}.photo-album__nav{padding-bottom:8px}.photo-album__header{padding:24px 0;gap:24px}.photo-album__cover{flex-basis:140px;padding:6px}.photo-album__cover figcaption{display:none}.photo-album__couple{margin-top:8px}.photo-album__header h1{margin:8px 0 12px}.photo-album__intro time{margin-top:10px}.photo-album__guide{padding:16px 0;margin-bottom:20px;gap:16px;align-items:flex-start}.photo-album__guide-copy{flex:1;min-width:0}.photo-album__guide h2{font-size:.85rem;margin:0 0 8px;line-height:1.6}.photo-album__help summary{cursor:pointer;font-size:.75rem;color:var(--muted);min-height:28px;padding-block:4px}.photo-album__help p{white-space:pre-line}.photo-album__hour{margin:20px 0 28px}.photo-album__hour h2{font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:12px;margin:0 0 12px}.photo-album__hour h2 span{color:var(--muted);font-size:.7rem}.photo-album__grid{gap:12px}.photo-album__tile{padding:5px}.photo-album__tile>span:last-child{padding:6px 2px 2px;font-size:.65rem}@media(max-width:700px){.photo-album__main{padding:8px 12px 0}.photo-album__nav{padding-bottom:4px}.photo-album__header{flex-direction:row;text-align:left;padding:16px 0;gap:14px}.photo-album__intro{min-width:0}.photo-album__intro>.eyebrow,.photo-album__description{display:none}.photo-album__couple{font-family:var(--body-font);font-size:.75rem;margin:0}.photo-album__header h1{font-size:1.5rem;margin:6px 0}.photo-album__intro time{font-size:.65rem;margin-top:6px;line-height:1.6}.photo-album__cover{flex:0 0 72px;width:72px;padding:4px;transform:rotate(2deg)}.photo-album__guide{padding:12px 0;margin-bottom:14px;display:block}.photo-album__guide h2{font-size:.78rem;margin-bottom:2px}.photo-album__upload{min-height:40px;margin-top:8px;padding:10px 12px}.photo-album__count{font-size:.7rem;margin:10px 0}.photo-album__hour{margin:16px 0 20px}.photo-album__hour h2{font-size:.78rem;margin-bottom:8px}.photo-album__grid{gap:8px}.photo-album__empty{padding:20px 12px}.photo-album__footer{margin-top:20px;padding:24px 0}}@media(min-width:360px)and (max-width:700px){.photo-album__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.guest-photo-upload .form-stack{gap:14px}.guest-photo-upload__results>p{margin:0 0 8px;font-size:.8rem}.guest-photo-upload__results progress{width:100%;accent-color:var(--ink)}.guest-photo-upload__results ul{list-style:none;padding:0;margin:8px 0 0;max-height:180px;overflow-y:auto}.guest-photo-upload__results li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.78rem}.guest-photo-upload__results li>span{overflow-wrap:anywhere;min-width:0;flex:1}.guest-photo-upload__results small{max-width:55%;line-height:1.5}.guest-photo-upload__results [data-state=success] small{font-weight:700}.guest-photo-upload__results [data-state=error] small{color:#a32626}.guest-photo-upload input[type=file]{max-width:100%}.photo-album__detail+.photo-album__detail{margin-top:14px}.photo-album__caption{border-top:1px solid var(--line);padding:10px 0 8px;overflow-wrap:anywhere}.photo-album__caption h3{margin:0;font-size:.8rem;font-weight:600}.photo-album__caption p{margin:4px 0 0;font-size:.75rem;line-height:1.65;white-space:pre-wrap;color:var(--muted)}.photo-album__tile img[aria-busy=true]{background:var(--line);color:transparent}
