@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-ExtraLight.otf)format("opentype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-Light.otf)format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-SemiBold.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-SemiBold.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:MaruBuri;src:url(/maruburi/OTF/MaruBuri-Bold.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}#root{min-height:100svh}:root{color:#4a3d34;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f4ee;font-family:MaruBuri,Apple SD Gothic Neo,Malgun Gothic,serif}html{scroll-behavior:smooth}*{box-sizing:border-box}body{background:linear-gradient(90deg,#9c764f0b 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#f7f4ee,#efe8dd 42%,#f7f4ee);min-width:320px;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}main{background:#f7f4eef0;width:min(100%,520px);margin:0 auto;overflow:hidden;box-shadow:0 0 80px #46372a1f}section{padding:84px 24px}[data-reveal]{opacity:0;transition:opacity .78s,transform .78s cubic-bezier(.2,.72,.24,1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(24px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.hero-section{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100svh;padding:clamp(42px,6svh,72px) 0 clamp(34px,6svh,64px);display:flex;position:relative;overflow:hidden}.eyebrow,.section-title p{color:#b48d62;letter-spacing:.32em;text-transform:uppercase;margin:0;font-family:MaruBuri,Georgia,serif;font-size:12px}.line-art{aspect-ratio:1539/1022;place-items:center;width:150%;max-width:none;height:auto;display:grid;overflow:visible}.arch-art,.people-art{grid-area:1/1;width:100%;height:100%}.arch-art{overflow:visible}.people-art{object-fit:contain;mix-blend-mode:multiply;opacity:0;animation:1.05s .75s forwards people-fade}.draw{fill:none;stroke:#28231f;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.8s forwards draw-line}.draw-arch{animation-duration:2s}@keyframes draw-line{to{stroke-dashoffset:0}}@keyframes people-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-names{text-align:center;width:100%;padding-inline:14px;animation:.9s 1.15s both rise-in}.hero-names h1{letter-spacing:.035em;white-space:nowrap;color:#5e5145;justify-content:center;align-items:center;gap:clamp(7px,2.4vw,12px);margin:0;font-size:30px;font-weight:300;line-height:1.08;display:flex}.hero-names h1 span{color:#b48d62;letter-spacing:0;font-family:MaruBuri,Georgia,serif;font-size:.58em}.hero-names p{color:#76695d;letter-spacing:.04em;margin:18px 0 0;font-size:clamp(12px,3.45vw,14px);line-height:1.75}.hero-countdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(100%,180px);margin:14px auto 0;padding-top:4px;display:grid}.countdown-unit{justify-items:center;gap:3px;min-width:0;display:grid}.countdown-number{color:#2c2723;letter-spacing:.03em;font-variant-numeric:tabular-nums;height:24px;font-family:MaruBuri,Georgia,serif;font-size:12px;font-weight:400;line-height:24px;display:block;overflow:hidden}.countdown-number span{animation:.42s cubic-bezier(.2,.72,.24,1) countdown-roll;display:block}.countdown-label{color:#b48d62;letter-spacing:.18em;font-family:MaruBuri,Georgia,serif;font-size:8px}@keyframes countdown-roll{0%{opacity:0;transform:translateY(72%)}to{opacity:1;transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.invitation-section{text-align:center;padding-top:104px;padding-bottom:98px}.thanks-copy{color:#5f554d;max-width:310px;margin:0 auto 56px;font-size:15px;line-height:2.28}.message-lines{color:#3f352e;gap:13px;max-width:340px;margin:0 auto;font-size:17px;line-height:2.08;display:grid}.message-lines p,.family-lines p{margin:0}.family-lines{color:#73675c;gap:14px;max-width:330px;margin:24px auto 48px;padding-top:34px;font-size:14px;line-height:1.8;display:grid}.family-lines strong{color:#7f5e3d;letter-spacing:.03em;font-size:15px;font-weight:600}.section-title{text-align:center;margin-bottom:34px}.section-title h2{letter-spacing:.12em;margin:10px 0 0;font-size:22px;font-weight:400}.gallery-section{color:#4a3d34;background:#f7f4ee;border-top:1px solid #b48d6229;border-bottom:1px solid #b48d6229}.gallery-heading{color:#b48d62;letter-spacing:.32em;text-align:center;text-transform:uppercase;margin:0 0 28px;font-family:MaruBuri,Georgia,serif;font-size:12px}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.gallery-tile{aspect-ratio:1;cursor:pointer;background:#efe6dc;border:0;border-radius:4px;width:100%;padding:0;display:block;overflow:hidden}.gallery-tile img{object-fit:cover;width:100%;height:100%;transition:transform .45s,filter .45s}.gallery-tile:hover img{filter:saturate(1.08);transform:scale(1.06)}.gallery-more{color:#7f5e3d;cursor:pointer;letter-spacing:.08em;background:#fffdfa57;border:1px solid #a0805c5c;border-radius:999px;min-height:44px;margin:28px auto 0;padding:0 22px;font-size:13px;display:block}.lightbox{z-index:10;background:#14100deb;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:8px;max-width:min(100%,760px);max-height:78svh;box-shadow:0 20px 80px #00000057}.icon-button{color:#fffdfa;cursor:pointer;background:#fffdfa14;border:1px solid #fffdfa47;border-radius:999px;place-items:center;width:44px;height:44px;display:inline-grid}.close-button{position:fixed;top:18px;right:18px}.nav-button{position:fixed;top:50%;transform:translateY(-50%)}.nav-button.left{left:14px}.nav-button.right{right:14px}.lightbox-count{color:#fffdfabd;margin:0;font-family:MaruBuri,Georgia,serif;position:fixed;bottom:18px}.calendar-title{text-align:center;margin-bottom:34px}.calendar-title p{color:#b48d62;letter-spacing:.32em;text-transform:uppercase;margin:0;font-family:MaruBuri,Georgia,serif;font-size:12px}.calendar-title h2{color:#5e5145;letter-spacing:.08em;margin:12px 0 0;font-size:15px;font-weight:400}.calendar-box{border:1px solid #b48d6247;padding:26px 20px}.calendar-heading{align-items:center;gap:18px;margin-bottom:18px;display:flex}.calendar-heading span{background:#b48d6247;flex:1;height:1px}.calendar-heading strong{letter-spacing:.18em;text-transform:uppercase;font-family:MaruBuri,Georgia,serif;font-weight:500}.calendar-grid{grid-template-columns:repeat(7,1fr);place-items:center;gap:5px;display:grid}.calendar-grid b,.calendar-grid span{justify-content:center;align-items:center;width:100%;height:36px;font-family:MaruBuri,Georgia,serif;font-weight:500;display:flex;position:relative}.calendar-grid b{color:#a08d7b;font-size:12px}.calendar-grid span{color:#5c5148}.calendar-grid .wedding-day{color:#fffdfa;background:#b48d62;border-radius:999px;width:36px;box-shadow:0 8px 18px #b48d623d}.location-section{background:#f7f4ee}.venue-copy{text-align:center;color:#5c5148;line-height:1.75}.venue-copy h3{color:#27231f;margin:0;font-size:24px;font-weight:500}.gold-text{color:#b48d62;letter-spacing:.12em;margin:4px 0 10px;font-family:MaruBuri,Georgia,serif}.event-chip{color:#76695d;align-items:center;gap:8px;margin-top:8px;font-size:13px;display:inline-flex}.paper-map{background:#f7f4ee;border:1px solid #a9947947;border-radius:0;margin:32px 0 24px;position:relative;overflow:hidden}.paper-map img{width:100%;height:auto;display:block}.map-panel{background:#fffdfa;border:1px solid #a9947947;border-radius:6px;margin:32px 0 24px;position:relative;overflow:hidden;box-shadow:0 18px 44px #5847361c}.naver-map-canvas{aspect-ratio:3/2;width:100%;min-height:300px}.map-photo-marker{color:#b48d62;background:#fffdfaf0;border:2px solid #b48d62;border-radius:7px;justify-items:center;width:88px;padding:5px 5px 8px;display:grid;position:relative;transform:translateY(-5px);box-shadow:0 8px 18px #4837262e}.map-photo-frame{aspect-ratio:1;background:#eee8df;border-radius:4px;width:74px;overflow:hidden}.map-photo-frame img{object-fit:cover;width:100%;height:100%;display:block}.map-marker-label{letter-spacing:.06em;text-align:center;margin-top:5px;font-family:MaruBuri,Georgia,serif;font-size:12px;line-height:1.05}.map-marker-dot{background:#9b7b52;border:1px solid #fffdfaeb;border-radius:999px;width:11px;height:11px;position:absolute;bottom:-15px;left:50%;transform:translate(-50%);box-shadow:0 5px 10px #4837263d}.map-state{color:#76695d;text-align:center;background:linear-gradient(135deg,#fffdfaf0,#f8f1e9f0);place-items:center;padding:24px;font-size:14px;display:grid;position:absolute;inset:0}.route-list{color:#4f453d;border-top:1px solid #a9947947;gap:0;margin-top:36px;display:grid}.route-card{border-bottom:1px solid #a9947961;padding:30px 0}.route-heading{color:#5f554d7a;align-items:center;gap:13px;margin-bottom:22px;display:flex}.route-heading svg{color:#5f554d6b}.route-heading h4{color:#5f554da3;letter-spacing:.02em;margin:0;font-size:16px;font-weight:500}.route-body{gap:12px;display:grid}.route-body p{color:#4f453d;margin:0;font-size:15px;line-height:1.85}.route-item{gap:11px;display:grid}.route-item strong{color:#7f5e3d;font-size:15px;font-weight:600;display:block}.route-item span{color:#4f453d}.bus-number-list{flex-wrap:wrap;gap:6px;display:flex}.bus-number-list span{color:#4b3f35;background:#fffdfa5c;border:1px solid #a0805c47;justify-content:center;align-items:center;min-width:42px;min-height:30px;padding:0 10px;font-family:MaruBuri,Georgia,serif;font-size:14px;display:inline-flex}.route-item ul{color:#5f554d;gap:4px;margin:0;padding:0;font-size:13px;line-height:1.78;list-style:none;display:grid}.map-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:24px;display:grid}.map-actions a,.primary-button,.account-row button{color:#2f2924;cursor:pointer;background:#fffdfa61;border:1px solid #b48d625c;border-radius:3px;justify-content:center;align-items:center;gap:8px;min-height:46px;text-decoration:none;display:inline-flex}.map-actions .naver-map,.map-actions .kakao-map{color:#5e5145;background:#fffdfa61;border-color:#a0805c5c}.account-list{gap:14px;display:grid}.account-card{background:#fffdfa5c;border:1px solid #b48d6238;gap:0;padding:18px 18px 4px;display:grid}.account-row{justify-content:space-between;align-items:center;gap:14px;padding:14px 0;display:flex}.account-row+.account-row{border-top:1px solid #a0805c29}.account-side{color:#b48d62;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:12px}.account-row div{gap:3px;display:grid}.account-row strong{font-weight:600}.account-row span{color:#76695d;font-size:13px}.account-row button{white-space:nowrap;min-height:38px;padding:0 12px}.upload-section{background:#f7f4ee}.upload-copy{text-align:center}.upload-copy h3{color:#4a3d34;margin:0 auto 30px;font-size:17px;font-weight:400;line-height:1.9}.upload-form{gap:14px;display:grid}.upload-form label{color:#5f554d;letter-spacing:.04em;gap:9px;font-size:12px;display:grid}.upload-form input{color:#26211d;background:#fffdfa70;border:1px solid #4559502e;border-radius:0;outline:none;width:100%;min-height:50px;padding:0 16px;transition:border-color .2s,box-shadow .2s,background-color .2s;box-shadow:inset 0 1px #ffffffb8,0 8px 20px #4559500f}.upload-form input::placeholder{color:#5f554d6b}.upload-form input:focus{background:#fffdfa9e;border-color:#45595094;box-shadow:inset 0 1px #ffffffd1,0 0 0 3px #45595014,0 10px 24px #45595014}.upload-form .file-drop{color:#455950;cursor:pointer;text-align:center;background:linear-gradient(#fffdfa7a,#fffdfa47);border:1px dashed #45595061;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:132px;transition:border-color .2s,background-color .2s,box-shadow .2s;display:flex}.upload-form .file-drop svg{color:#6d6258;margin:0 auto;display:block}.upload-form .file-drop span{display:block}.upload-form .file-drop:hover{border-color:#45595094;box-shadow:0 10px 24px #45595014}.upload-form .file-drop input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.primary-button{color:#fffdfa;background:#5e5145;border-color:#5e5145}.primary-button:disabled{opacity:.68;cursor:wait}.upload-status{color:#5c5148;text-align:center;min-height:24px;margin:0;font-size:13px}.upload-prize-note{color:#5f554dad;text-align:center;margin:24px auto 0;font-size:12px;line-height:1.7}footer{color:#76695d;text-align:center;place-items:center;gap:6px;padding:72px 24px 88px;display:grid}footer p{color:#2f2924;margin:0;font-family:MaruBuri,Georgia,serif;font-size:34px}footer strong{color:#2f292424;font-size:54px;font-weight:300}footer span{letter-spacing:.18em;text-transform:uppercase;font-family:MaruBuri,Georgia,serif}@media (width<=390px){section{padding-inline:18px}.hero-section{padding-top:58px}.line-art{width:150%;max-width:none}.hero-names h1{color:#5e5145;gap:7px;font-size:30px}.gallery-grid{gap:5px}.calendar-grid b,.calendar-grid span{height:32px}.calendar-grid .wedding-day{width:32px}.route-card{padding:28px 0}}@media (width<=520px){html,body{scroll-snap-type:y proximity}.hero-section{padding-top:58px;padding-bottom:58px}.invitation-section{scroll-snap-align:start;scroll-snap-stop:always}}@media (prefers-reduced-motion:reduce){.draw,.people-art,.hero-names,.countdown-number span,.gallery-tile img,[data-reveal]{transition:none;animation:none}.draw{stroke-dashoffset:0}.people-art{opacity:1}[data-reveal]{opacity:1;transform:none}}
