.wedding-home{max-width:1080px;padding-top:16px}.home-masthead{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--border-highlight);padding:6px 0 16px}.home-monogram{font:30px Cormorant Garamond,Georgia,serif;color:var(--milk-tea-900);white-space:nowrap}.home-monogram i{color:var(--milk-tea-500);font-weight:400}.home-edition{font-size:10px;letter-spacing:.18em;margin-right:auto}.invitation-replay,.invitation-skip{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:0;background:transparent;color:var(--milk-tea-700);font-family:inherit;font-size:13px;cursor:pointer}.invitation-replay{margin-left:auto;flex-shrink:0}.wedding-home :is(h1,h2,h3),.invitation-heading h2{font-family:"Noto Serif TC",serif;font-weight:500;color:var(--milk-tea-900)}.wedding-home h2{font-size:clamp(22px,3vw,30px);line-height:1.6}.wedding-home :is(a,button):focus-visible,.invitation-intro button:focus-visible{outline:3px solid var(--milk-tea-700);outline-offset:5px}.wedding-hero{display:grid;grid-template-columns:1.12fr 1fr;gap:65px;align-items:center;padding:68px 14px 52px}.wedding-hero-copy{min-width:0}.home-greeting{font-size:14px;margin:16px 0 20px}.wedding-hero h1{font-size:clamp(28px,3.5vw,39px);line-height:1.75;letter-spacing:.07em;white-space:nowrap}.wedding-hero h1:focus{outline:none}.wedding-hero h1 span{color:var(--milk-tea-700)}.home-couple{font:23px/1.6 "Noto Serif TC",serif;letter-spacing:.13em;color:var(--milk-tea-900);margin-top:28px}.home-couple i{font:italic 26px Cormorant Garamond,Georgia,serif;color:var(--milk-tea-500);margin:0 10px}.home-couple-english{font:italic 24px Cormorant Garamond,Georgia,serif;margin-top:5px}.home-wedding-date{font:26px Cormorant Garamond,Georgia,serif;letter-spacing:.1em;margin:22px 0;color:var(--milk-tea-900)}.home-wedding-date span{display:block;font:13px/1.8 Plus Jakarta Sans,sans-serif;letter-spacing:.06em;margin-top:9px}.wedding-home .home-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:auto;padding:14px 23px;margin:0}.home-story-link{display:flex;align-items:center;gap:8px;width:fit-content;padding:16px 0 6px;color:var(--text-muted);text-decoration:none;font-size:13px}.home-story-link svg{transition:transform .25s}.home-story-link:hover svg{transform:translateY(4px)}.wedding-hero-art{position:relative;min-width:0;padding:10px 0}.hero-arch-frame{position:relative;overflow:hidden;border-radius:220px 220px 16px 16px;background:var(--milk-tea-100);aspect-ratio:4 / 5;border:1px solid var(--milk-tea-200);box-shadow:var(--shadow-elegant)}.hero-arch-frame:after{content:"";position:absolute;inset:10px;border:1px solid #ffffff90;border-radius:inherit;pointer-events:none}.hero-arch-frame img{display:block;width:100%;height:100%;object-fit:cover}.hero-arch-frame .hero-color-reveal{position:absolute;inset:0;clip-path:inset(100% 0 0)}.invitation-opened .hero-color-reveal{animation:photoUnveil 1.8s .25s cubic-bezier(.22,1,.36,1) both}.hero-art-caption{display:flex;justify-content:space-between;align-items:center;margin:18px 12px 0;color:var(--milk-tea-700)}.hero-art-caption span{font:32px Alex Brush,cursive}.hero-art-note{position:absolute;right:-25px;top:31%;writing-mode:vertical-rl;font-size:9px;letter-spacing:.3em;color:var(--milk-tea-700)}.invitation-opened .wedding-hero-copy{animation:homeArrive .9s .1s both}.home-countdown{border-block:1px solid var(--border-highlight);padding:28px 12px 32px;text-align:center}.wedding-clock-digits{display:flex;justify-content:center;gap:clamp(18px,5vw,64px);margin-top:18px}.clock-unit{min-width:48px}.clock-window{overflow:hidden;height:59px}.clock-window span{display:block;font:52px/1.1 Cormorant Garamond,Georgia,serif;font-variant-numeric:tabular-nums;color:var(--milk-tea-900);animation:clockTick .35s ease-out}.clock-unit small{font-size:11px;color:var(--text-muted)}.wedding-clock-message p{font:24px/1.6 "Noto Serif TC",serif}.home-next{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-top:28px;padding:30px 32px;background:var(--milk-tea-900);border-radius:var(--radius-card);color:var(--milk-tea-100);position:relative;overflow:hidden}.home-next:before{content:"";position:absolute;width:200px;height:200px;border-radius:50%;border:1px solid #ffffff13;right:-70px;top:-70px;pointer-events:none}.home-next h2{color:var(--milk-tea-50);font-size:23px;margin:9px 0}.home-next p{font-size:13px;line-height:1.9}.home-next-label{display:flex;align-items:center;gap:8px;color:var(--gold-light)}.home-status-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--gold-light);box-shadow:0 0 0 4px #ebd8a917}.home-next .btn{flex-shrink:0}.home-next a:focus-visible{outline-color:var(--gold-light)}.home-return{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:center;padding-top:26px}.home-return .home-countdown{border:0}.home-return .wedding-clock-digits{gap:26px}.home-return .home-next{margin-top:0;flex-direction:column;align-items:stretch;gap:15px;padding:24px}.home-return .home-next h2{font-size:22px}.our-story{padding:98px 24px 48px;scroll-margin-top:30px}.story-heading{text-align:center;margin-bottom:58px}.story-heading>p:last-child{font-size:14px;margin-top:16px}.story-timeline{position:relative;max-width:740px;margin:auto}.story-timeline:before{content:"";position:absolute;top:14px;bottom:32px;left:210px;width:1px;background:linear-gradient(var(--milk-tea-200),var(--milk-tea-300),transparent)}.story-chapter{display:grid;grid-template-columns:176px 1fr;gap:70px;padding-bottom:52px;position:relative}.story-chapter:before{content:"";position:absolute;top:12px;left:205px;width:11px;height:11px;border:2px solid var(--bg-body);border-radius:50%;background:var(--milk-tea-500);box-shadow:0 0 0 1px var(--milk-tea-200)}.story-date{text-align:right}.story-date>span{display:block;font:italic 42px/1 Cormorant Garamond,Georgia,serif;color:var(--milk-tea-300);margin-bottom:12px}.story-date time{display:block;font-size:14px;letter-spacing:.1em;color:var(--milk-tea-900)}.story-date small{font-size:12px;color:var(--text-muted)}.story-copy h3{font-size:23px;line-height:1.6;margin-bottom:14px}.story-copy>p{font-size:15px;line-height:2.1}.moving-photo{overflow:hidden;background:var(--milk-tea-100)}.moving-photo img{display:block;width:100%;height:100%;object-fit:cover;transform:translateY(var(--photo-shift, 0px)) scale(1.12)}.story-portrait{aspect-ratio:1.35;border-radius:130px 12px 12px;margin-top:24px}.story-portrait img{object-position:center 37%}.story-heart{margin-top:24px;stroke-width:1;color:var(--rose-accent)}.story-album{text-align:center}.story-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:28px}.story-photo-grid .moving-photo{aspect-ratio:3 / 4;border-radius:140px 140px 10px 10px}.story-photo-grid>:nth-child(2){margin-top:35px}.story-album-link{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--milk-tea-700);min-height:44px;text-underline-offset:7px}.home-meet{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:45px 36px;border-radius:var(--radius-card);background:var(--bg-card-subtle);border:1px solid var(--border-highlight);align-items:center}.home-meet-heading>p:not(.guest-eyebrow){margin-top:16px;font-size:14px}.home-meet .calendar-action{margin-top:22px}.home-meet .event-details-card{margin:0}.home-essentials{margin-top:76px}.home-essentials>.wedding-reveal{text-align:center;margin-bottom:30px}.home-essentials .nav-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.home-essentials .nav-card{height:100%}.home-signoff{text-align:center;padding:65px 0 28px}.home-signoff svg{color:var(--rose-accent);stroke-width:1}.home-signoff p{font:21px/1.8 "Noto Serif TC",serif;margin:16px 0}.home-signoff>span{font:30px Alex Brush,cursive;color:var(--milk-tea-700)}.wedding-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--reveal-delay, 0ms),transform .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms)}.wedding-reveal[data-visible=true],.wedding-reveal:focus-within{opacity:1;transform:none}.invitation-intro{position:fixed;z-index:1000;inset:0;height:100%;height:100dvh;overflow:hidden;isolation:isolate;outline:none}.invitation-paper{position:absolute;inset-block:0;width:calc(50% + 1px);background:var(--milk-tea-50)}.invitation-paper:after{content:"";position:absolute;top:20px;bottom:20px;border:1px solid var(--milk-tea-200);pointer-events:none}.invitation-paper-left{left:0;background:linear-gradient(110deg,var(--milk-tea-100),var(--milk-tea-50) 70%)}.invitation-paper-left:after{left:18px;right:0;border-right:0}.invitation-paper-right{right:0;background:linear-gradient(250deg,var(--milk-tea-100),var(--milk-tea-50) 70%)}.invitation-paper-right:after{right:18px;left:0;border-left:0}.invitation-skip{position:absolute;z-index:3;right:max(24px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));padding:6px 12px;font-size:12px;border-radius:22px;background:var(--milk-tea-50)}.invitation-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:clamp(14px,2.3svh,22px);height:100%;width:min(100%,480px);margin:auto;padding:max(68px,calc(env(safe-area-inset-top) + 44px)) 30px max(36px,calc(env(safe-area-inset-bottom) + 20px));text-align:center}.invitation-content>*{flex-shrink:0}.invitation-heading{color:var(--milk-tea-900)}.invitation-kicker{font:9px/1.7 Plus Jakarta Sans,sans-serif;letter-spacing:.18em;color:var(--milk-tea-700);margin-bottom:10px}.invitation-heading h2{font:500 clamp(40px,10vw,54px)/1.15 "Cormorant Garamond",Georgia,serif;white-space:nowrap}.invitation-heading h2 i{font-weight:400;color:var(--milk-tea-500)}.invitation-couple{font:15px/1.7 "Noto Serif TC",serif;letter-spacing:.24em;margin-top:9px}.invitation-couple span{font-size:11px;color:var(--milk-tea-700);margin:0 10px}.invitation-portrait{position:relative;height:clamp(140px,28svh,238px);aspect-ratio:.96;margin:5px 0 10px;border-radius:150px 150px 9px 9px;box-shadow:0 14px 25px #7e604714}.invitation-portrait:before{content:"";position:absolute;inset:-7px;border:1px solid var(--milk-tea-300);border-radius:inherit}.invitation-portrait img{display:block;height:100%;width:100%;object-fit:cover;object-position:center 40%;border-radius:inherit}.invitation-portrait-note{position:absolute;bottom:-15px;left:50%;transform:translate(-50%) rotate(-5deg);white-space:nowrap;font:28px/1 Alex Brush,cursive;color:var(--milk-tea-700);background:var(--milk-tea-50);padding:0 9px}.invitation-promise{font:20px/1.65 "Noto Serif TC",serif;letter-spacing:.07em;color:var(--milk-tea-900)}.invitation-date{font:24px/1.3 Cormorant Garamond,Georgia,serif;letter-spacing:.14em;color:var(--milk-tea-700);margin-top:12px}.invitation-venue{font-size:11px;color:var(--text-muted);letter-spacing:.03em;margin-top:6px}.invitation-open{display:inline-flex;align-items:center;justify-content:center;gap:23px;min-height:52px;width:min(100%,262px);border:1px solid var(--milk-tea-700);border-radius:28px;padding:12px 22px;background:var(--milk-tea-700);color:var(--milk-tea-50);box-shadow:0 7px 18px #7e60471c;font:14px/1.6 Plus Jakarta Sans,sans-serif;letter-spacing:.08em;cursor:pointer;touch-action:manipulation}.invitation-open:active{background:var(--milk-tea-900)}.invitation-footnote{font-size:10px;letter-spacing:.12em;color:var(--text-muted)}.is-opening .invitation-content{animation:invitationContentLeave .18s ease-out both;pointer-events:none}.is-opening .invitation-paper-left{animation:invitationPaperLeft .9s .18s cubic-bezier(.65,0,.25,1) both}.is-opening .invitation-paper-right{animation:invitationPaperRight .9s .18s cubic-bezier(.65,0,.25,1) both}@keyframes invitationContentLeave{to{opacity:0;transform:translateY(-10px)}}@keyframes invitationPaperLeft{to{transform:translate(-100%)}}@keyframes invitationPaperRight{to{transform:translate(100%)}}@keyframes homeArrive{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes photoUnveil{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes clockTick{0%{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:760px){.home-edition{max-width:135px;font-size:9px;line-height:1.7}.home-masthead{gap:12px}.wedding-hero{grid-template-columns:1fr;gap:36px;padding:38px 6px 32px;text-align:center}.wedding-hero h1{font-size:clamp(26px,6.9vw,37px)}.wedding-hero .guest-eyebrow{font-size:10px;letter-spacing:.14em}.home-greeting{margin:12px 0 16px;font-size:13px}.home-couple{margin-top:22px}.home-story-link{margin:auto}.wedding-hero-art{width:min(310px,86%);margin:0 auto}.hero-arch-frame{aspect-ratio:1}.hero-art-note{right:-20px}.home-next{flex-direction:column;align-items:stretch;gap:20px;padding:26px 23px}.home-next h2{font-size:22px}.home-return{grid-template-columns:1fr;gap:6px;padding-top:8px}.home-return .home-countdown{padding:24px 8px}.our-story{padding:70px 5px 32px}.story-heading{margin-bottom:40px}.story-heading .guest-eyebrow{font-size:10px}.story-timeline:before{left:8px}.story-chapter{grid-template-columns:1fr;gap:15px;padding-left:32px;padding-bottom:38px}.story-chapter:before{left:3px;top:10px}.story-date{text-align:left;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.story-date>span{display:none}.story-date time{font-size:14px}.story-copy h3{font-size:22px}.story-copy>p{font-size:14px}.story-photo-grid{gap:9px}.story-photo-grid>:nth-child(2){margin-top:18px}.home-meet{grid-template-columns:1fr;gap:25px;padding:28px 21px}.home-meet-heading{text-align:center}.home-essentials{margin-top:56px}.home-essentials .nav-cards{grid-template-columns:1fr}.home-essentials h2{font-size:22px}.home-signoff{padding-top:45px}}@media(max-height:680px){.invitation-content{gap:13px;padding-top:60px;padding-bottom:27px}.invitation-heading h2{font-size:39px}.invitation-kicker{font-size:8px;margin-bottom:5px}.invitation-couple{font-size:13px;margin-top:5px}.invitation-portrait{height:25svh;margin-block:3px 8px}.invitation-promise{font-size:18px}.invitation-date{margin-top:6px;font-size:21px}.invitation-venue{margin-top:3px}.invitation-footnote{font-size:9px}}@media(max-height:480px){.invitation-content{gap:10px;padding-block:55px 24px}.invitation-portrait,.invitation-kicker,.invitation-footnote{display:none}.invitation-heading h2{font-size:35px}.invitation-paper:after{inset-block:12px}}@media(prefers-reduced-motion:reduce){.wedding-home *,.invitation-intro *{animation:none!important;transition:none!important}.wedding-reveal,.wedding-hero-copy{opacity:1;transform:none}.hero-arch-frame .hero-color-reveal{clip-path:none}.moving-photo img{transform:none}}
