:root{--paper:#f5efe7;--paper-light:#fbf8f3;--artwork-beige:#e5d8c8;--ink:#58463a;--muted:#8e7c6f;--gold:#a98245;--line:#a9824559}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:Georgia,Times New Roman,serif}a{color:inherit}.language-switcher{color:#58463a5c;letter-spacing:.14em;align-items:center;gap:7px;font:.58rem/1 Arial,sans-serif;display:flex;position:absolute;top:clamp(24px,4vw,46px);right:max(24px,50vw - 560px)}.language-switcher button{color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;background:0 0;border:0;padding:4px 0}.language-switcher button[aria-current=page]{color:#58463ab3}.language-switcher button:not([aria-current=page]):hover{color:var(--gold)}.hero{isolation:isolate;background:var(--artwork-beige);width:100%;height:100svh;min-height:0;position:relative;overflow:hidden}.hero:after{z-index:2;background:linear-gradient(to bottom, transparent, var(--paper-light));opacity:0;pointer-events:none;content:"";height:clamp(56px,9vw,120px);position:absolute;bottom:0;left:0;right:0}.invitation-frame{justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.invitation-picture{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.invitation-image{object-fit:contain;object-position:center;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.scroll-hint{z-index:3;right:auto;bottom:max(8px, env(safe-area-inset-bottom));color:#58463a6b;letter-spacing:.13em;text-transform:uppercase;flex-direction:column;align-items:center;gap:0;width:max-content;margin:0;padding:4px 8px 2px;font:.52rem/1.2 Arial,sans-serif;text-decoration:none;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-hint svg{opacity:.62;width:17px;height:17px;animation:1.8s ease-in-out infinite hint-float}@keyframes hint-float{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.details,.photos{text-align:center;padding:clamp(80px,10vw,140px) max(24px,50vw - 560px)}.details{z-index:1;background:linear-gradient(to bottom, var(--artwork-beige), var(--paper-light) 105px);scroll-margin-top:0;position:relative}.section-ornament{color:var(--gold);justify-content:center;align-items:center;gap:12px;margin-bottom:34px;display:flex}.section-ornament span:not(.ornament-mark){background:var(--line);width:54px;height:1px}.ornament-mark{font-size:.55rem;transform:rotate(45deg)}.eyebrow{color:var(--gold);letter-spacing:.28em;text-transform:uppercase;margin:0 0 18px;font:.68rem/1.4 Arial,sans-serif}h2{max-width:760px;margin:0 auto;font-size:clamp(2rem,4.4vw,3.8rem);font-weight:400;line-height:1.12}#details-title span{display:block}.detail-grid{background:var(--line);border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:clamp(58px,8vw,92px);display:grid}.detail-card{background:var(--paper-light);min-height:260px;padding:38px clamp(18px,3vw,44px)}.detail-card h3{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;margin:0 0 24px;font:400 .65rem/1.4 Arial,sans-serif}.detail-card>p{color:var(--muted);margin:0;font-size:.98rem;line-height:1.7}.detail-card .muted{margin-top:7px;font-size:.86rem;font-style:italic}.detail-card p.arrival-label{color:var(--gold);letter-spacing:.15em;text-transform:uppercase;margin-top:22px;font:.62rem/1.4 Arial,sans-serif}.detail-card p.venue-name{color:var(--ink);font-size:clamp(1.9rem,2.8vw,2.35rem);line-height:1.15}.venue-name a{text-decoration:none}.venue-name a:hover{color:var(--gold)}.detail-card p.venue-city{letter-spacing:.05em;margin-top:5px;font-size:.76rem;font-style:italic}.venue-location-link{color:#58463a75;letter-spacing:.12em;text-transform:uppercase;margin-top:8px;font:.55rem/1.4 Arial,sans-serif;text-decoration:none;display:inline-block}.venue-location-link:hover{color:var(--gold);text-underline-offset:4px;text-decoration:underline}.detail-card p.arrival-time{color:var(--ink);margin-top:7px;font-size:1.65rem;line-height:1}.detail-card p.rsvp-deadline{color:var(--ink);margin-top:4px;font-size:1.08rem;font-weight:600;line-height:1.55}.calendar-link{color:var(--gold);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:5px;margin-top:22px;font:.62rem/1.4 Arial,sans-serif;text-decoration:none;display:inline-flex}.calendar-link:hover{text-underline-offset:4px;text-decoration:underline}.detail-card p.rsvp-methods{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin-top:22px;font:.62rem/1.4 Arial,sans-serif}.rsvp-contacts{margin-top:13px;font-style:normal}.rsvp-contacts p{justify-content:center;gap:9px;display:flex}.rsvp-contacts p+p{margin-top:5px}.rsvp-contacts span{color:var(--ink)}.rsvp-contacts a{color:var(--muted);text-decoration:none}.rsvp-contacts a:hover{color:var(--gold)}.page-break{z-index:2;color:#a9824594;justify-content:center;align-items:center;gap:10px;height:0;display:flex;position:relative}.page-break>span:not(.page-break-mark){background:linear-gradient(90deg,#0000,#a982457a);width:clamp(42px,6vw,76px);height:1px}.page-break>span:last-child{transform:rotate(180deg)}.page-break-mark{font-size:.48rem}.photos{background:radial-gradient(circle at 50% 15%, #ffffffad, transparent 34%), var(--paper);position:relative;overflow:hidden}.photos:before,.photos:after{color:#a982451f;content:"❧";font-size:clamp(10rem,28vw,24rem);line-height:1;position:absolute}.photos:before{bottom:-.15em;left:-.2em}.photos:after{top:-.15em;right:-.2em;transform:rotate(180deg)}.photos>*{z-index:1;position:relative}.camera-mark{width:58px;height:58px;color:var(--gold);border:1px solid var(--line);border-radius:50%;place-items:center;margin:0 auto 28px;display:grid}.photos>p:not(.eyebrow){max-width:590px;color:var(--muted);margin:26px auto 36px;font-size:1.05rem;line-height:1.8}.button{color:#fffdf9;background:var(--gold);border:1px solid var(--gold);letter-spacing:.16em;text-transform:uppercase;justify-content:center;align-items:center;min-height:50px;padding:0 28px;font:.68rem/1 Arial,sans-serif;text-decoration:none;transition:background .18s,color .18s;display:inline-flex}.button:hover{color:var(--gold);background:0 0}.button-disabled{color:var(--muted);border-color:var(--line);cursor:default;background:0 0}footer{color:var(--gold);background:var(--paper-light);border-top:1px solid var(--line);justify-content:center;align-items:center;gap:20px;padding:30px 24px;display:flex}footer p,footer span{margin:0}footer p{font-size:1.25rem}footer span{border-left:1px solid var(--line);letter-spacing:.18em;text-transform:uppercase;padding-left:20px;font:.62rem/1.4 Arial,sans-serif}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:760px){.invitation-image{max-width:100%;max-height:100%}.detail-grid{grid-template-columns:1fr}.detail-card{border-bottom:1px solid var(--line);min-height:0;padding-block:34px}.detail-card:last-child{border-bottom:0}.language-switcher{font-size:.54rem;top:22px;right:24px}footer{flex-direction:column;gap:12px}footer span{border-top:1px solid var(--line);border-left:0;padding:12px 0 0}}@keyframes hero-drift{0%{opacity:1;transform:scale(1)}to{opacity:.08;transform:scale(.985)translateY(14px)}}@keyframes hero-edge-fade{0%{opacity:0}to{opacity:1}}@keyframes hint-fade{0%{opacity:1}to{opacity:0}}@keyframes section-reveal{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline:view()){.invitation-frame{animation:linear both hero-drift;animation-timeline:view();animation-range:exit exit 90%}.hero:after{animation:linear both hero-edge-fade;animation-timeline:view();animation-range:exit exit 55%}.scroll-hint{animation:linear both hint-fade;animation-timeline:view();animation-range:exit exit 25%}.details>*,.photos>*{animation:linear both section-reveal;animation-timeline:view();animation-range:entry cover 28%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.language-switcher,.scroll-hint svg,.scroll-hint,.invitation-frame,.hero:after,.details>*,.photos>*{transition:none;animation:none}}
