@font-face{font-family:'Cafe24 Oneprettynight';src:url('assets/fonts/cafe24-oneprettynight-names-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Gowun Batang';src:url('assets/fonts/gowun-batang-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Gowun Batang';src:url('assets/fonts/gowun-batang-700.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Petit Formal Script';src:url('assets/fonts/petit-formal-script-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#fffbf3;--cream:#f1eadb;--ink:#2d4539;--forest:#244639;--wine:#7c3040;--rose:#f1ded6;--gold:#ad976b;--muted:#66705b;--line:#ddd0b7;--serif:'Gowun Batang','Batang',serif;--english:'Gowun Batang',Georgia,serif;--script:'Petit Formal Script',cursive;--sans:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color-scheme:light;scrollbar-color:#8d7958 var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:64px}html,body{touch-action:pan-x pan-y}body{margin:0;background:var(--forest);color:var(--ink);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:#e9c4c0;color:#53232e}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none;text-underline-offset:4px}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button,a,summary{touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--wine);outline-offset:4px}h1,h2,p{margin:0}h2{font:700 27px/1.65 var(--serif);letter-spacing:-.02em;text-wrap:balance;color:var(--wine)}img{display:block;max-width:100%;height:auto}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:-100px;padding:12px 18px;background:var(--paper);z-index:50}.skip:focus{top:12px}.invitation{width:480px;margin:0 max(7vw,calc((100vw - 1220px)/2)) 0 auto;background:var(--paper);position:relative;overflow:hidden;box-shadow:0 18px 70px #10271f33}.section-pad{padding:76px 36px;text-align:center}

/* The desktop spread. */
.desktop-note{position:fixed;left:max(7vw,calc((100vw - 1220px)/2));top:0;bottom:0;width:calc(100vw - 480px - max(7vw,calc((100vw - 1220px)/2))*2 - 80px);max-width:600px;min-width:280px;display:flex;flex-direction:column;color:var(--paper)}
.wordmark{display:flex;align-items:center;gap:14px;font:11px var(--english);margin-top:46px;color:#ead9b9}.wordmark>span:first-child{font:19px var(--script)}.wordmark-line{width:40px;height:1px;background:#c4b28680;margin:0 5px}.desktop-story{margin:auto 0;position:relative;z-index:1;padding:60px 0 125px}.desktop-story h2{font:400 clamp(40px,4.8vw,66px)/1.45 var(--script);color:var(--paper);letter-spacing:-.02em}.desktop-story .desktop-names{font:700 25px var(--serif);margin-top:29px;color:#f0e2c3}.desktop-names span{font:20px var(--script);padding:0 8px}.fine-rule{width:44px;height:1px;background:#c4b28680;margin:25px 0}.desktop-story p:not(.desktop-names){font:14px/2.1 var(--serif);color:#dbe0cd}.text-link{display:inline-flex;align-items:center;gap:26px;font-size:13px;margin-top:30px;padding:8px 0;border-bottom:1px solid #d9c79799}.text-link svg{width:16px;height:16px}.desktop-birds{position:absolute;width:220px;right:0;bottom:100px;pointer-events:none}.desktop-bottom{display:flex;justify-content:space-between;margin-bottom:36px;font-size:11px;color:#d0d8c4;letter-spacing:.06em}.desktop-note :focus-visible{outline-color:#ead9b9}

/* The first page, with a real portrait and a little date bookmark. */
.cover{position:relative;padding-bottom:0}.cover::before{content:'';position:absolute;inset:66px 20px 24px;border:1px solid #c8b58f;border-radius:8px;pointer-events:none}.cover-top{display:flex;justify-content:space-between;gap:10px;margin:0 65px;padding:22px 0 18px;font:11px/1.7 var(--english);color:#665c43;white-space:nowrap}.cover-heading{text-align:center;padding:30px 25px 28px}.cover h1{display:flex;justify-content:center;align-items:center;gap:18px;font:400 35px/1.42 'Cafe24 Oneprettynight','Gowun Batang','Batang',serif;letter-spacing:.015em;color:var(--forest)}.cover h1 svg{width:19px;height:19px;stroke:var(--wine);stroke-width:1.3}.cover-script{font:26px/1.7 var(--script);color:var(--wine);margin-top:10px}.hero-photo{margin:0 43px;position:relative}.portrait-mat{padding:7px;border:1px solid #cbb994;border-radius:5px;background:var(--paper)}.portrait-mat>img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;max-height:max(280px,calc(100svh - 450px));border-radius:2px}.date-bookmark{position:absolute;top:-14px;right:16px;width:45px;padding:10px 0 19px;background:var(--wine);color:var(--paper);text-align:center;clip-path:polygon(0 0,100% 0,100% 100%,50% 91%,0 100%);transform:rotate(3deg);transform-origin:50% 0;animation:bookmark-settle 850ms cubic-bezier(.19,1,.22,1) both}.date-bookmark span{display:block;font:700 22px/1.3 var(--english)}.date-bookmark span+span{border-top:1px solid #e7c5b566;width:25px;margin:3px auto 0;padding-top:3px}.cover-birds{width:96px;max-width:100%;height:auto;margin:15px auto 0;pointer-events:none}.cover-caption{text-align:center;padding:26px 28px 36px}.cover-caption p{font:14px/2 var(--serif);color:#4d604b}.cover-caption strong{display:block;font-size:15px;font-weight:700;color:var(--wine)}.cover-caption p>span{display:block;margin-top:7px;font-size:13px}.scroll-hint{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:3px auto 0;color:var(--wine)}.scroll-hint svg{transform:rotate(90deg);width:16px;height:16px}
@keyframes bookmark-settle{from{transform:translateY(-12px) rotate(-6deg)}to{transform:translateY(0) rotate(3deg)}}

/* Quiet reading pages. */
.letter{padding-top:55px;padding-bottom:70px}.letter-mark{display:flex;justify-content:center;margin:24px auto;color:var(--forest)}.letter-mark svg{width:29px;height:29px;stroke-width:1.2}.poem{font:16px/2.2 var(--serif);color:#40553f}.poem+.poem{margin-top:25px}.family{max-width:330px;margin:39px auto 0;padding-top:26px;border-top:1px solid var(--line)}.family p{display:flex;align-items:center;justify-content:center;gap:9px;font:16px/2.5 var(--serif)}.family i{font-style:normal;color:#8a7857;padding:0 4px}.family small{font-size:12px;color:#6c715d;white-space:nowrap}.family strong{font-size:20px;font-weight:700;color:var(--wine);letter-spacing:.04em;margin-left:4px}

/* December is the red page of the book. */
.date-section{background:var(--wine);color:var(--paper);padding-top:56px;padding-bottom:57px}.date-section h2{color:var(--paper);font-weight:400}.date-line{font:700 32px/1.5 var(--english);margin-top:20px;color:#f3e2c5;letter-spacing:.02em;font-variant-numeric:tabular-nums}.time-line{font:16px/1.9 var(--serif);margin-top:4px;color:#f9eee0}.calendar{max-width:330px;margin:30px auto 0;border-top:1px solid #dcbba866;border-bottom:1px solid #dcbba866;padding:22px 0 17px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;font:25px var(--english);color:#f2dbb4}.calendar-heading span+span{font-size:20px}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}.weekdays{font-size:11px;line-height:1.7;color:#f2d9d0;margin-bottom:10px}.calendar-days span{display:flex;align-items:center;justify-content:center;height:43px;font:20px var(--english);position:relative}.calendar-days span.sunday{color:#f2d2b8}.calendar-days span.wedding-day{color:var(--wine);font-weight:700;z-index:1}.wedding-day::before{content:'';position:absolute;width:37px;height:37px;border-radius:50%;background:var(--paper);z-index:-1}.countdown{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:26px}.countdown>div{display:flex;flex-direction:column;min-width:48px}.countdown strong{font:700 33px/1.4 var(--english);color:#f6dfb8;font-variant-numeric:tabular-nums}.countdown span{font-size:11px;color:#f3dad0;letter-spacing:.07em}.countdown i{font:22px var(--english);color:#dfb4ac;margin-top:-16px}.countdown-copy{font:700 16px/2 var(--serif);margin-top:20px;color:var(--paper)}.outline-button{display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;margin-top:22px;border:1px solid #e0c7ad;border-radius:12px;font-size:13px;color:#fff5e4}.outline-button svg{width:17px;height:17px}.outline-button:hover{background:#904454}.date-section :focus-visible{outline-color:#ffebc7}

/* A photographic spread, followed by five small moments. */
.gallery-section{padding-bottom:65px}.section-heading{padding-bottom:30px}.section-subtitle{font:15px/1.9 var(--serif);margin-top:12px;color:#647052}.gallery-editorial{padding:0 34px}.gallery-feature{display:block;width:100%;padding:7px;border:1px solid #cebea0;border-radius:5px;position:relative;overflow:hidden}.gallery-feature>img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:2px}.gallery-feature>span{display:flex;align-items:center;gap:15px;position:absolute;bottom:18px;left:18px;background:#244639ed;padding:6px 10px;border-radius:6px;color:var(--paper);font-size:11px;line-height:1.7}.gallery-feature>span svg{width:15px;height:15px}.gallery-caption{font-size:12px;line-height:1.8;text-align:center;color:#606f53;margin:14px 24px 23px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 34px}.gallery-grid button{padding:0;overflow:hidden;border-radius:8px;aspect-ratio:3/4}.gallery-grid img{aspect-ratio:3/4;object-fit:cover;width:100%;height:100%;transition:transform .25s}.gallery-grid button:hover img{transform:scale(1.025)}.gallery-more{background:var(--forest);color:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}.gallery-more svg{width:22px;height:22px}.gallery-more>span{font:16px/1.5 var(--serif)}.photo-interlude{height:410px;position:relative;overflow:hidden;background:#142b22}.photo-interlude>img{width:100%;height:100%;object-fit:cover;object-position:50% 37%;opacity:.76}.photo-interlude>div{position:absolute;bottom:0;left:0;right:0;padding:38px 24px;background:#173827d9;text-align:center;color:var(--paper)}.photo-interlude p{font:20px/1.9 var(--serif);text-wrap:balance}

.location-section{padding-top:65px;padding-bottom:61px}.venue-name{font:700 21px/1.7 var(--serif);margin-top:27px;letter-spacing:-.02em;color:var(--forest)}.venue-hall{font:16px/1.8 var(--serif);margin-top:7px;color:#75603e}.address{font:14px/2 var(--sans);margin-top:18px;color:#57654e}.inline-button{display:inline-flex;gap:7px;align-items:center;min-height:44px;padding:9px 12px;font-size:12px;color:#6d5634;margin:8px 0 20px}.inline-button svg{width:15px;height:15px}.map-wrap{border:1px solid #d3c19d;border-radius:15px;overflow:hidden;text-align:left}.venue-map{display:block;width:100%;height:300px;border:0;background:#f1eadb}.map-detail{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:12px;background:#efe5d1;color:#3f543d}.map-detail svg{width:15px;height:15px}.map-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px;padding-bottom:28px}.map-links a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:8px 4px;font-size:11px;border:1px solid #d9cbae;border-radius:10px}.map-links a:hover{background:#f0e6d2}.map-links svg{width:15px;height:15px}.map-links b{font:700 12px var(--sans)}.naver{color:#32613d}.kakao{color:#806327}.transport{text-align:left;border-top:1px solid var(--line);padding-top:8px}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;cursor:pointer;font-size:15px;line-height:1.8;font-weight:500;padding:23px 0;gap:12px}summary::-webkit-details-marker{display:none}.transport summary>svg{width:19px;height:19px;color:#856737}.plus{margin-left:auto;width:12px;height:12px;position:relative;flex-shrink:0}.plus::before,.plus::after{content:'';position:absolute;width:10px;height:1px;left:1px;top:5px;background:currentColor}.plus::after{transform:rotate(90deg);transition:transform .2s}details[open] .plus::after{transform:rotate(0)}.details-content{padding:0 0 25px 31px;font-size:14px;line-height:2;color:#53644c}.details-content p+p{margin-top:13px}.details-content strong{font-weight:600;color:#345039}.details-content .muted{font-size:13px;color:#637050}.detail-link{display:inline-block;font-size:12px;margin-top:13px;text-decoration:underline;text-decoration-color:#baaa86}.detail-link svg,.official-link svg{width:12px;height:12px;vertical-align:-2px}.bus-list{display:grid;grid-template-columns:55px minmax(0,1fr);gap:9px;margin:16px 0 0}.bus-list dt{font-size:12px;color:#79603c}.bus-list dd{margin:0;overflow-wrap:anywhere}.official-link{display:inline-block;font-size:12px;color:#6b5734;margin-top:24px;text-decoration:underline;text-decoration-color:#b8a67f}

/* Gifts are open, soft-edged pages, with practical copy controls. */
.gift-section{background:#f2e9dc;padding-top:51px;padding-bottom:64px}.gift-mark{display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--wine)}.gift-mark svg{width:26px;height:26px;stroke-width:1.2}.gift-copy{font:16px/2 var(--serif);margin-top:20px;color:#56664e}.accounts-empty{font:15px/2 var(--serif);margin-top:25px;color:#647052}.account-group{background:var(--paper);border:0;border-radius:28px;margin-top:18px;padding:0 22px;text-align:left}.account-group:first-child{margin-top:29px}.account-group summary{padding:21px 0;font:700 16px/1.8 var(--serif);gap:12px;color:var(--wine)}.account-group .plus{width:26px;height:26px;flex-shrink:0;background:#f1e3d1;border-radius:50%;color:#705330}.account-group .plus::before,.account-group .plus::after{left:8px;top:12.5px}.account-row{padding:21px 0;border-top:1px solid #e8ddca;display:flex;align-items:center;justify-content:space-between;gap:12px}.account-row>div{min-width:0}.account-row p{font-size:13px;line-height:1.9;overflow-wrap:anywhere}.account-row .account-role{font-size:12px;color:#6d6a55;margin-bottom:3px}.account-row .account-number{font-size:14px;font-weight:500;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#2d4939}.copy-account{border-radius:999px;background:#f0ddd4;color:#763140;padding:10px 14px;min-height:44px;font-size:12px;flex-shrink:0;transition:background .2s}.copy-account:hover{background:#e9c8bd}

.closing{text-align:center;padding:50px 0 120px;background:var(--forest);color:var(--paper)}.closing-photo{margin:0 53px;overflow:hidden;border:7px solid var(--paper);border-radius:4px}.closing-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 60%}.closing-copy{padding:32px 24px 0}.closing-birds{width:120px;margin:0 auto 17px}.closing-script{font:22px/1.8 var(--script);color:#f0d5ac}.closing-copy>p:not(.closing-script){font:16px/2 var(--serif);margin-top:18px;color:#e4ead6}.closing-copy>span{display:block;font:18px var(--serif);margin-top:22px;color:#f6e7c7}.closing-copy i{font:16px var(--script);color:#e2c48e;padding:0 7px}.share-button,.copy-large-link{display:flex;justify-content:center;align-items:center;gap:9px;width:calc(100% - 92px);min-height:50px;margin:28px auto 0;padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.7}.share-button{background:#faefdc;color:var(--forest)}.share-button:hover{background:#f0ddba}.share-button svg{width:18px;height:18px}.copy-large-link{margin-top:12px;border:1px solid #bead8399;color:#f0dfbd}.copy-large-link>span{font:700 18px var(--serif)}.copy-large-link:hover{background:#345642}.footer-date{font:11px var(--english);letter-spacing:.04em;color:#d4dbc6;margin-top:27px}.music-credit{font-size:11px;line-height:2;color:#c7d2bb;margin:20px 28px 0}.music-credit a{text-decoration:underline;text-underline-offset:3px}.closing :focus-visible{outline-color:#ffebc7}

/* The reading controls stay small; their targets stay generous. */
.font-toggle,.music-toggle{position:fixed;z-index:9;top:calc(8px + env(safe-area-inset-top,0px));width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--paper);border:1px solid #cdbb98;border-radius:50%;color:var(--forest);transition:background .2s,color .2s}.font-toggle{left:calc(100vw - max(7vw,calc((100vw - 1220px)/2)) - 480px + 12px)}.music-toggle{right:calc(max(7vw,calc((100vw - 1220px)/2)) + 12px)}.font-toggle[aria-pressed='true'],.music-toggle.is-playing{background:var(--wine);border-color:var(--wine);color:var(--paper)}.font-icon{display:inline-flex;align-items:baseline;gap:1px;height:24px;font:700 19px/24px var(--serif)}.font-icon small{font-size:10px;line-height:1}.music-equalizer{display:flex;align-items:center;gap:3px;height:16px}.music-equalizer i{display:block;width:2px;background:currentColor;border-radius:1px;height:6px}.music-equalizer i:nth-child(2){height:13px}.music-equalizer i:nth-child(3){height:9px}.music-toggle:not(.is-playing)::after{content:'';position:absolute;width:20px;height:1px;background:currentColor;transform:rotate(-40deg)}#music-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.is-playing .music-equalizer i{animation:music-pulse 1s ease-in-out infinite alternate}.is-playing .music-equalizer i:nth-child(2){animation-delay:-.4s}.is-playing .music-equalizer i:nth-child(3){animation-delay:-.7s}@keyframes music-pulse{from{transform:scaleY(.4)}to{transform:scaleY(1.1)}}
.bottom-nav{position:fixed;bottom:0;right:max(7vw,calc((100vw - 1220px)/2));width:480px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--paper);border-top:1px solid #d9c8a4;z-index:8;padding:6px 16px max(6px,env(safe-area-inset-bottom))}.bottom-nav a,.bottom-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:50px;gap:4px;padding:3px 7px;font-size:11px;color:var(--forest)}.bottom-nav a+a,.bottom-nav button{border-left:1px solid #e3d7be}.bottom-nav svg{width:19px;height:19px}.bottom-nav a:hover,.bottom-nav button:hover{color:var(--wine)}.bottom-nav :focus-visible{outline-offset:0}.toast{position:fixed;bottom:calc(85px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%,8px);background:#244639f5;color:var(--paper);padding:13px 20px;border-radius:12px;font-size:14px;line-height:1.7;opacity:0;pointer-events:none;z-index:30;width:max-content;max-width:90vw;text-align:center;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}

/* Photos remain full-size and keyboard/swipe accessible. */
dialog{border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100dvh;background:#142e25;color:var(--paper);overflow:hidden}dialog::backdrop{background:#142e25}.lightbox-toolbar{height:64px;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;position:absolute;top:env(safe-area-inset-top);left:0;right:0;z-index:2}.lightbox-toolbar>span{font-size:13px;letter-spacing:.05em;color:#edd6ad}.lightbox-toolbar button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--paper)}.lightbox-toolbar svg{width:25px;height:25px}.lightbox-stage{height:calc(100% - 112px);margin-top:64px;display:flex;align-items:center;justify-content:center;position:relative}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox-stage button{position:absolute;top:50%;width:44px;height:52px;transform:translateY(-50%);color:var(--paper);background:#142e25b3;z-index:2;border-radius:8px}.lightbox-stage svg{width:17px;height:17px}.photo-prev{left:8px}.photo-prev svg{transform:rotate(180deg)}.photo-next{right:8px}.lightbox-hint{text-align:center;font-size:12px;line-height:1.9;color:#d5dec7;margin:10px 20px}.modal-open{overflow:hidden}dialog :focus-visible{outline-color:#ffebc7}

/* Large type is a URL-controlled reading mode, not a separate design. */
.large-text body{font-size:18px}.large-text .invitation h2{font-size:30px}.large-text .section-pad{padding-left:28px;padding-right:28px}.large-text .cover h1{font-size:39px;gap:16px}.large-text .cover-script{font-size:29px}.large-text .cover-caption strong{font-size:18px;line-height:2}.large-text .cover-caption p>span{font-size:17px;line-height:2}.large-text .cover-caption{padding-left:28px;padding-right:28px}.large-text .poem{font-size:19px;line-height:2.2}.large-text .family{max-width:100%}.large-text .family p{display:grid;grid-template-columns:1fr auto auto;font-size:19px;gap:8px;text-align:right;line-height:2.4}.large-text .family i{padding:0 2px}.large-text .family small{font-size:14px}.large-text .family strong{font-size:24px;letter-spacing:.02em}.large-text .date-line{font-size:38px}.large-text .time-line{font-size:20px}.large-text .calendar{max-width:360px}.large-text .calendar-heading{font-size:29px}.large-text .calendar-heading span+span{font-size:24px}.large-text .weekdays{font-size:12px}.large-text .calendar-days span{height:48px;font-size:24px}.large-text .wedding-day::before{width:41px;height:41px}.large-text .countdown strong{font-size:40px}.large-text .countdown span{font-size:11px}.large-text .countdown-copy{font-size:20px}.large-text .outline-button{font-size:17px;min-height:54px}.large-text .section-subtitle{font-size:18px;line-height:2}.large-text .gallery-caption{font-size:16px}.large-text .gallery-feature>span{font-size:14px}.large-text .gallery-more>span{font-size:18px}.large-text .photo-interlude p{font-size:24px}.large-text .venue-name{font-size:25px}.large-text .venue-hall{font-size:21px}.large-text .address{font-size:19px;line-height:2}.large-text .inline-button{font-size:17px;min-height:48px}.large-text .inline-button svg{width:18px;height:18px}.large-text .map-detail{font-size:16px;padding:16px}.large-text .map-links{grid-template-columns:1fr;gap:9px}.large-text .map-links a{font-size:18px;min-height:54px;gap:10px}.large-text .map-links b{font-size:17px}.large-text .map-links svg{width:18px;height:18px}.large-text .transport summary{font-size:20px;line-height:1.7;gap:12px}.large-text .transport summary>svg{width:22px;height:22px}.large-text .details-content{padding-left:0;font-size:19px;line-height:2}.large-text .details-content .muted{font-size:17px}.large-text .detail-link,.large-text .official-link{font-size:16px;line-height:2}.large-text .bus-list{grid-template-columns:70px minmax(0,1fr)}.large-text .bus-list dt{font-size:16px}.large-text .gift-copy{font-size:19px;line-height:2.1}.large-text .accounts-empty{font-size:18px}.large-text .account-group{padding:0 20px}.large-text .account-group summary{font-size:20px;line-height:1.8;padding:23px 0}.large-text .account-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:23px 0}.large-text .account-row p{font-size:18px;line-height:1.9}.large-text .account-row .account-role{font-size:16px}.large-text .account-row .account-number{font-size:20px;letter-spacing:0}.large-text .copy-account{font-size:16px;min-height:48px;padding:12px 22px;justify-self:end}.large-text .closing{padding-bottom:140px}.large-text .closing-copy>p:not(.closing-script){font-size:19px;line-height:2.1}.large-text .closing-copy>span{font-size:21px}.large-text .share-button,.large-text .copy-large-link{font-size:18px;min-height:56px;width:calc(100% - 56px);padding:13px 18px}.large-text .footer-date{font-size:13px}.large-text .music-credit{font-size:12px;line-height:2}.large-text .bottom-nav a,.large-text .bottom-nav button{font-size:14px;line-height:1.6;min-height:65px;gap:6px}.large-text .bottom-nav svg{width:21px;height:21px}.large-text .toast{font-size:17px;bottom:calc(105px + env(safe-area-inset-bottom,0px))}.large-text .lightbox-hint{font-size:15px}.large-text .lightbox-toolbar>span{font-size:16px}

@media(min-width:1500px){.invitation{margin-right:calc((100vw - 1220px)/2)}.bottom-nav{right:calc((100vw - 1220px)/2)}}
@media(max-width:1050px){.desktop-note{left:5vw;width:calc(100vw - 480px - 15vw);min-width:0}.desktop-story h2{font-size:39px}.desktop-story .desktop-names{font-size:22px}.desktop-story p:not(.desktop-names){font-size:12px}.wordmark{font-size:11px;gap:9px}.wordmark-line{width:20px}.desktop-birds{width:170px}.desktop-bottom{font-size:11px}.invitation{margin-right:5vw}.bottom-nav{right:5vw}.font-toggle{left:calc(100vw - 5vw - 480px + 12px)}.music-toggle{right:calc(5vw + 12px)}}
@media(max-width:800px){.desktop-note{display:none}.invitation{width:100%;max-width:480px;margin:0 auto;box-shadow:none}.bottom-nav{width:100%;max-width:480px;right:auto;left:50%;transform:translateX(-50%)}.font-toggle{left:max(12px,calc((100vw - 480px)/2 + 12px))}.music-toggle{right:max(12px,calc((100vw - 480px)/2 + 12px))}}
@media(max-width:370px){.section-pad{padding-left:25px;padding-right:25px}h2{font-size:25px}.cover-top{margin:0 61px;font-size:11px;gap:5px}.cover-heading{padding:26px 20px}.cover h1{font-size:33px;gap:14px}.cover-script{font-size:23px}.hero-photo{margin:0 35px}.cover-caption{padding-left:27px;padding-right:27px}.cover-caption strong{font-size:14px}.cover-caption p>span{font-size:12px}.family p{font-size:15px;gap:7px}.family small{font-size:11px}.family strong{font-size:19px}.gallery-editorial{padding:0 27px}.gallery-grid{margin-left:27px;margin-right:27px;gap:7px}.gallery-more>span{font-size:14px}.venue-name{font-size:19px}.map-links{gap:5px}.map-links a{font-size:11px;gap:4px}.account-group{padding:0 18px}.account-row{gap:9px}.account-row .account-number{font-size:13px}.copy-account{padding:10px 12px;font-size:11px}.closing-photo{margin-left:40px;margin-right:40px}.closing-script{font-size:20px}.large-text .section-pad{padding-left:24px;padding-right:24px}.large-text .cover h1{font-size:36px;gap:13px}.large-text .cover-script{font-size:26px}.large-text .family p{font-size:17px;gap:5px}.large-text .family small{font-size:12px}.large-text .family strong{font-size:22px}.large-text .gallery-more>span{font-size:16px}.large-text .account-group{padding:0 18px}.large-text .account-row .account-number{font-size:19px}.large-text .bottom-nav a,.large-text .bottom-nav button{font-size:13px;padding-left:3px;padding-right:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

@media(min-width:801px) and (max-height:800px){.desktop-story{padding:28px 0 85px}.desktop-story h2{font-size:clamp(36px,4vw,54px);line-height:1.25}.desktop-story .desktop-names{font-size:22px;margin-top:20px}.fine-rule{margin:20px 0}.desktop-story p:not(.desktop-names){font-size:13px}.text-link{margin-top:22px}.desktop-birds{width:180px;bottom:90px}}
@media(min-width:480px) and (max-height:800px){.portrait-mat>img{object-position:50% 15%}}

:root{--snow:#fff}
/* Quiet snow passes in front of images; fixed controls and dialogs stay above it. */
.snowfall{position:fixed;inset:0;z-index:3;overflow:hidden;pointer-events:none;user-select:none}
.snowfall i{position:absolute;top:-12px;left:var(--snow-x);width:var(--snow-size);height:var(--snow-size);border-radius:50%;background:var(--snow);box-shadow:0 1px 2px #24463918;opacity:0;animation:snow-fall var(--snow-duration) var(--snow-delay) linear infinite}
@keyframes snow-fall{0%{transform:translate3d(0,-12px,0);opacity:0}10%{opacity:var(--snow-opacity)}40%{transform:translate3d(var(--snow-drift),40vh,0)}70%{transform:translate3d(calc(var(--snow-drift) * .3),70vh,0);opacity:var(--snow-opacity)}100%{transform:translate3d(var(--snow-drift),calc(100vh + 24px),0);opacity:0}}
:where(.invitation) :where(h1,h2,p,.family,.calendar,.countdown,.hero-photo,.cover-birds,.gallery-feature,.gallery-grid,.photo-interlude,.closing-photo,.closing-birds,.map-wrap,.map-links,.transport,.account-group,a,button),:where(.desktop-note,.desktop-story,.desktop-birds,.desktop-note .wordmark,.desktop-bottom){position:relative;z-index:2}
.snowfall.is-paused i,.modal-open .snowfall i{animation-play-state:paused}
@media(max-width:800px){.snowfall i:nth-child(n+25){display:none}}
@media(prefers-reduced-motion:reduce){.snowfall{display:none}}
