@font-face {
  font-family: 'Wedding Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/noto-serif-kr-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Wedding Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/noto-serif-kr-1.ttf) format('truetype');
}

@font-face {
  font-family: 'Wedding Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/noto-sans-kr-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Wedding Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/noto-sans-kr-1.ttf) format('truetype');
}

:root{color-scheme:light;--paper:#fcfcf8;--ink:#35412e;--muted:#72786e;--green:#485737;--line:#dfe3d8;--serif:'Wedding Serif',serif;--sans:'Wedding Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#e8eae3;color:var(--ink);font:16px/1.8 var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #839563;outline-offset:5px}main{max-width:540px;margin:auto;background:var(--paper);overflow:clip;box-shadow:0 0 80px #17211512}p,h1,h2,h3{margin:0}button{color:inherit}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:20;pointer-events:none}.reading-progress i{display:block;width:100%;height:100%;background:#8ca467;transform:scaleX(0);transform-origin:left}.hero{position:relative;height:100svh;min-height:700px;max-height:1050px;background:#dcebf3;isolation:isolate;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 56%;will-change:transform}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#e1f2ff35 0%,transparent 45%,#14201305 63%,#12200cc2 100%);z-index:0;pointer-events:none}.hero-heading{position:absolute;top:7%;left:16px;right:16px;text-align:center;z-index:1;animation:cover-in 1.4s ease both}.eyebrow{font:12px/1.6 var(--sans);letter-spacing:.2em}.hero-heading .eyebrow{font-family:'Wedding Serif',serif;font-size:13px;letter-spacing:.17em}.hero h1{font:clamp(34px,9.5vw,53px)/1.08 'Wedding Serif',serif;letter-spacing:.025em;margin:19px 0 15px}.hero h1 em{font-weight:400;font-size:.75em}.hero-korean{font-family:var(--serif);font-size:15px;letter-spacing:.2em}.hero-korean span{font-size:12px;letter-spacing:0;margin:0 10px}.hero-bottom{position:absolute;bottom:24px;left:14px;right:14px;text-align:center;color:#fff;z-index:1;animation:cover-in 1.5s .2s ease both}.hero-script{font:italic clamp(25px,7vw,38px)/1.3 'Wedding Serif',serif;margin-bottom:12px}.hero-bottom>p:not(.hero-script){font-size:12px;letter-spacing:.12em}.hero-bottom a{display:flex;align-items:center;justify-content:center;gap:20px;min-height:48px;font-size:10px;letter-spacing:.18em;text-decoration:none;margin-top:15px}.hero-bottom a span{font-size:20px;animation:drift 2.4s ease-in-out infinite}.section{padding:92px 32px;text-align:center}.section .eyebrow{color:#72815d;margin-bottom:25px}h2{font:400 29px/1.7 var(--serif);letter-spacing:-.04em;word-break:keep-all}.fine-line{width:1px;height:52px;background:#aab69b;margin:29px auto}.letter{font:16px/2.3 var(--serif);white-space:pre-line;word-break:keep-all;letter-spacing:-.055em}.family{margin-top:40px;border-top:1px solid var(--line);padding-top:30px;display:flex;flex-direction:column;align-items:center;gap:13px}.family>div{display:flex;gap:18px;align-items:center}.family p{font-size:14px}.family small{font-size:12px;margin-left:5px;color:var(--muted)}.family strong{font:19px var(--serif);white-space:nowrap}.family-amp{display:none}.story-scroll{height:160svh;min-height:850px;position:relative;background:#23351e}.story-sticky{position:sticky;top:0;height:100svh;min-height:550px;max-height:1100px;overflow:hidden}.story-sticky>img{position:absolute;width:100%;height:100%;object-fit:cover;will-change:transform;transform:scale(1.12)}.story-sticky:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#14200b06 25%,#13230bab)}.story-caption{position:absolute;bottom:10%;left:32px;right:32px;color:white;z-index:1;will-change:transform}.story-caption .eyebrow{font-size:11px;margin-bottom:20px}.story-title{font:34px/1.6 var(--serif);letter-spacing:-.04em}.story-title em{font-style:normal}.story-caption>span{display:block;margin-top:20px;font-size:13px;letter-spacing:.08em}.gallery-section{padding-left:22px;padding-right:22px}.subtitle{font-size:14px;color:var(--muted);margin-top:14px}.featured-pair{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:45px 0 42px;padding-bottom:34px;align-items:start}.photo-button{display:block;border:0;padding:0;background:#e8eade;overflow:hidden;width:100%;border-radius:2px}.featured-pair .photo-button{aspect-ratio:2/3}.featured-pair .photo-button:nth-child(2){margin-top:58px}.photo-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s}.photo-button:hover img{transform:scale(1.04)}.pair-caption{position:absolute;bottom:0;left:0;right:0;font:italic 17px 'Wedding Serif',serif;color:#72815d}.gallery-hint{font-size:12px;color:var(--muted);margin-bottom:20px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.photo-grid .photo-button{aspect-ratio:3/4}.photo-grid .photo-button:nth-child(3n+2){transition-delay:60ms}.photo-grid .photo-button:nth-child(3n+3){transition-delay:120ms}.more-button{background:transparent;border:1px solid var(--line);border-radius:2px;margin:25px auto 0;min-height:48px;width:100%;font-size:14px}.more-button span{margin-left:15px}.date-section{background:#f0f3e9}.date-title{font:36px/1.5 'Wedding Serif',serif;letter-spacing:.08em}.calendar-wrap{margin:28px 0}.calendar{width:100%;border-collapse:collapse;table-layout:fixed}.calendar th{font-weight:400;font-size:12px;color:var(--muted);height:44px}.calendar td{height:46px;font-size:14px}.calendar th:first-child,.calendar td:first-child{color:#a16760}.calendar td span{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}.calendar .selected{background:var(--green);border-radius:50%;color:white;position:relative}.calendar .selected:after{content:'';position:absolute;inset:-5px;border:1px solid #84966c;border-radius:50%}.countdown{border-top:1px solid #d7decb;padding-top:25px;font-size:15px}.countdown strong{font-family:'Wedding Serif',serif;font-weight:400;font-size:28px;margin:0 6px}.date-note{font:15px/2 var(--serif);margin-top:18px;color:var(--muted)}.location{padding-top:85px;padding-bottom:80px}.venue-card{margin-top:35px;border:1px solid var(--line);padding:32px 20px}.venue-number{font:38px 'Wedding Serif',serif;display:block;margin-bottom:22px}.venue-number small{font-size:17px}.venue-card h3{font:21px/1.8 var(--serif)}.venue-card>p{font-size:15px;line-height:1.9}.venue-rule{width:28px;height:1px;background:#9ca58e;margin:25px auto}#venue-address{font-size:14px;color:var(--muted)}.actions{display:flex;gap:8px;margin-top:25px}.actions a,.actions button{display:flex;align-items:center;justify-content:center;flex:1;min-height:48px;font-size:13px;border:1px solid var(--line);background:transparent;text-decoration:none;border-radius:2px}.actions a{background:var(--green);color:white;border-color:var(--green)}.hotel-link{display:inline-block;margin-top:16px;font-size:12px;color:var(--muted);text-underline-offset:4px;padding:8px}.closing{height:850px;height:100svh;min-height:650px;max-height:950px;position:relative;color:#fff;background:#151712;isolation:isolate}.closing>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}.closing:after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,#10130ee8 0%,#10130e4d 55%,#10130e24)}.closing-content{position:absolute;bottom:7%;left:30px;right:30px;z-index:1;text-align:center}.closing-title{font:38px/1.5 var(--serif);margin:20px 0}.closing-content>p:not(.eyebrow):not(.closing-title){font-size:14px;line-height:2}.closing-content>span{display:block;font:18px var(--serif);margin-top:25px}.back-top{display:block;font-size:12px;min-height:44px;padding:15px;margin-top:15px;text-decoration:none;color:#d5dbcc}.reveal{opacity:1;transform:none}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(30px)}.motion-ready .reveal{transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}dialog{padding:0;border:0;background:#10120f;color:white;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;overscroll-behavior:contain}dialog::backdrop{background:#10120ff5}.lightbox-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:20px;right:12px;display:flex;justify-content:space-between;align-items:center;z-index:2}.lightbox-top>span{font-size:14px;letter-spacing:.1em}dialog button{border:1px solid #ffffff33;background:#151811bd;color:white;width:48px;height:48px;border-radius:50%;font-size:23px;line-height:1}.lightbox-stage{height:100%;padding:80px 0 105px;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom;position:relative}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}#photo-error{position:absolute;max-width:80%;text-align:center;font-size:14px}.lightbox-nav{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;gap:25px;align-items:center;justify-content:center}.lightbox-nav span{font-size:12px;color:#cbd1c5}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 20px;border-radius:5px;background:#26301f;color:white;z-index:30;max-width:90vw;width:max-content;opacity:0;pointer-events:none;font-size:14px;transition:opacity .2s}.toast.visible{opacity:1}.noscript-note{text-align:center;padding:30px;font-size:14px}@keyframes cover-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{50%{transform:translateY(6px)}}@media(min-width:700px){main{margin:28px auto}.hero{height:900px}.story-sticky{height:900px}.story-scroll{height:1400px}}@media(max-width:360px){.section{padding-left:22px;padding-right:22px}.hero{min-height:650px}.hero h1{font-size:34px}.family>div{gap:10px}.family p{font-size:13px}.letter{font-size:15px}.gallery-section{padding-left:15px;padding-right:15px}.actions{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.hero-image,.story-sticky>img,.story-caption{transform:none!important;will-change:auto}.story-scroll{height:100svh;min-height:650px}.story-sticky{position:relative;height:100%;min-height:650px}}
