.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-edition{font-size:10px;letter-spacing:.18em;margin-right:auto}.invitation-replay{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){font-family:Iansui,"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:1fr;justify-items:center;text-align:center;padding:44px 14px}.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 Iansui,"Noto Serif TC",serif;letter-spacing:.13em;color:var(--milk-tea-900);margin-top:28px}.home-couple .amp{font: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-couple-english .amp{font-style:normal}.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}.wedding-hero-art{position:relative;min-width:0;width:min(420px,86%);margin:44px auto 56px}.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 6s .25s cubic-bezier(.22,1,.36,1) infinite 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:15px Cormorant Garamond,Georgia,serif;letter-spacing:.32em;text-transform:uppercase}.hero-art-note{position:absolute;right:-25px;top:31%;writing-mode:vertical-rl;font:20px Alex Brush,cursive;letter-spacing:.04em;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 Iansui,"Noto Serif TC",serif}.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)}.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-actions{margin:22px 0 0;justify-content:flex-start}.home-meet .event-details-card{margin:0}.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 Iansui,"Noto Serif TC",serif;margin:16px 0}.home-signoff>span{font:30px Alex Brush,cursive;color:var(--milk-tea-700)}.home-signoff>span .amp{font:26px Cormorant Garamond,Georgia,serif}.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-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:18px;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;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.invitation-content::-webkit-scrollbar{display:none}.invitation-content>*{flex-shrink:0}.invitation-card{width:min(100%,calc((100dvh - 170px) * 1400 / 1972),520px);aspect-ratio:1400 / 1972;border-radius:10px;overflow:hidden;box-shadow:0 18px 50px #5c46342e;background:#fbf6ee;animation:invitationCardIn .45s cubic-bezier(.22,1,.36,1) both}.invitation-card img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes invitationCardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.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);opacity:1}22.5%{clip-path:inset(0);opacity:1}37%{clip-path:inset(0);opacity:1}47.5%{clip-path:inset(0);opacity:0}49.9%{clip-path:inset(0 0 100%);opacity:0}50%{clip-path:inset(0 0 100%);opacity:1}72.5%{clip-path:inset(0);opacity:1}87%{clip-path:inset(0);opacity:1}97.5%{clip-path:inset(0);opacity:0}to{clip-path:inset(100% 0 0);opacity: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(20px,6.6vw,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}.wedding-hero-art{width:min(310px,86%);margin:0 auto}.hero-arch-frame{aspect-ratio:1}.hero-art-note{right:-20px}.home-meet{grid-template-columns:1fr;gap:25px;padding:28px 21px}.home-meet-heading{text-align:center}.home-meet .calendar-actions{justify-content:center}.home-signoff{padding-top:45px}}@media(max-height:680px){.invitation-content{gap:13px;padding-top:60px;padding-bottom:27px}.invitation-footnote{font-size:9px}}@media(max-height:480px){.invitation-content{gap:10px;padding-block:55px 24px}.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}}
