:root{color-scheme:only light}
:root{--muted-foreground:#65584e;--rose:#81434b;--sage:#716030}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{min-width:280px}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid #751b2a;outline-offset:5px}
.reveal{opacity:1;transform:none}
.animate-rise{animation:none;opacity:1;transform:none}
.text-foreground\/80{color:#65584e}
.text-gold{color:#80632b}
.hero-bg{min-height:100svh;padding-block:64px;background-image:url('assets/hero-mobile.jpg')}
@media(min-width:768px){.hero-bg{background-image:url('assets/hero-desktop.jpg')}}
.hero-bg h1{font-size:clamp(2.35rem,7.2vw,6rem)}
.hero-bg .mt-10{margin-top:30px}
.hero-location{margin-top:16px;font-size:14px;letter-spacing:.1em;color:#65584e}
.quick-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:14px;font-size:15px;color:#6b2933}
.quick-links a{padding:8px 0;text-underline-offset:4px}
.quick-links a:hover{text-decoration:underline}
.invitation-note{padding:38px 24px;text-align:center}
.invitation-note p{max-width:650px;margin:auto;font-family:'Cormorant Garamond',Georgia,serif;font-size:25px;line-height:1.4;font-style:italic;color:#65584e}
#celebrations,#couple,#countdown,footer{padding-block:76px}
#celebrations .mt-14{margin-top:38px}
#celebrations article{display:flex;flex-direction:column;align-items:center;padding:32px 28px}
#celebrations article>p:first-child{color:#80632b}
#celebrations article .btn-gold{margin-top:auto}
#celebrations article .venue-address{margin-bottom:24px}
.timezone-note{display:block;font-family:'Jost',sans-serif;font-size:13px;font-style:normal;letter-spacing:.12em;margin-top:8px;color:#65584e}
.event-label{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#81434b;margin-bottom:5px}
.venue-address{font-family:'Jost',sans-serif;font-size:15px;line-height:1.65;color:#65584e;margin-top:10px;max-width:310px}
.calendar-link{display:inline-block;margin-top:12px;padding:9px 4px;color:#6b2933;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.portrait-art{max-width:390px;margin-inline:auto;width:100%}
.portrait-image{width:100%;height:auto;display:block;object-fit:contain;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent),linear-gradient(180deg,transparent,#000 2.5%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent),linear-gradient(180deg,transparent,#000 2.5%,#000 92%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
#couple h2{font-size:14px;letter-spacing:.3em}
#couple article>p:last-child{line-height:1.6;max-width:340px;margin-inline:auto;padding-inline:8px}
#couple .mt-10{margin-top:32px}
#countdown .text-gold{color:#e7c889}
#countdown .border-gold\/40{border-color:#a88654}
#countdown .mt-12{margin-top:32px}
.music-toggle{position:fixed;bottom:18px;right:18px;z-index:50;display:flex;align-items:center;gap:9px;padding:12px 18px;min-height:48px;border:1px solid #a88a53;border-radius:999px;background:#fffbf3;color:#661825;box-shadow:0 3px 16px #4b12221a;font-family:'Jost',sans-serif;font-size:13px;cursor:pointer}
.music-toggle>span:first-child{font-size:21px;line-height:1}
.music-toggle:hover{background:#681a28;color:#fff8ee}
.skip-link{position:absolute;left:16px;top:16px;z-index:100;background:#fff7e9;padding:12px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
@media(max-width:639px){.hero-bg{padding:46px 20px}.hero-bg h1{gap:8px;font-size:clamp(2.1rem,9.6vw,3.8rem)}.hero-bg>div>img{width:90px}.hero-bg>div>p:first-of-type{font-size:10px;letter-spacing:.25em}.hero-bg .mt-8{margin-top:24px}.hero-bg>div>p:nth-of-type(3){font-size:12px;letter-spacing:.2em}.hero-bg .mt-10{margin-top:24px}.quick-links{gap:4px 12px;font-size:14px}.hero-location{font-size:12px;margin-top:10px}.invitation-note{padding:30px 26px}.invitation-note p{font-size:22px}#celebrations,#couple,#countdown,footer{padding-block:52px}#celebrations article{padding:28px 20px}#couple .grid{gap:42px}.portrait-art{max-width:330px}.music-toggle{right:12px;bottom:12px;padding:11px 14px}footer{padding-bottom:100px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.hero-bg{isolation:isolate;overflow:hidden}
.petal-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.petal-layer i{position:absolute;top:-40px;left:var(--x);width:var(--size);height:calc(var(--size) * 1.45);border-radius:80% 10% 70% 15%;background:linear-gradient(135deg,#d5a95b80,#bb6e7940);animation:petal-fall var(--duration) linear var(--delay) infinite;opacity:0}
@keyframes petal-fall{0%{transform:translate3d(0,-30px,0) rotate(-20deg);opacity:0}10%{opacity:.55}85%{opacity:.35}100%{transform:translate3d(55px,110vh,0) rotate(290deg);opacity:0}}
.hero-bg .animate-rise{animation:invitation-rise 1.05s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--entrance-delay,0s)}
@keyframes invitation-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.motion-enabled [data-entrance]{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1);transition-delay:var(--entrance-delay,0s)}
.motion-enabled [data-entrance].is-visible{opacity:1;transform:none}
.music-toggle[aria-pressed="true"]>span:first-child{animation:music-sway 1.8s ease-in-out infinite}
@keyframes music-sway{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}
.card-soft{transition:transform .4s ease,box-shadow .4s ease}
.card-soft:hover{transform:translateY(-4px);box-shadow:0 20px 50px -20px #66182530}
@media(prefers-reduced-motion:reduce){.petal-layer{display:none}.hero-bg .animate-rise,.motion-enabled [data-entrance]{opacity:1;transform:none;animation:none;transition:none}.music-toggle[aria-pressed="true"]>span:first-child{animation:none}}
@media print{.petal-layer,.music-toggle,.quick-links,.skip-link{display:none!important}.hero-bg{min-height:auto}.hero-bg .animate-rise,.motion-enabled [data-entrance]{animation:none;opacity:1;transform:none}#couple article,#celebrations article{break-inside:avoid}}

.share-invitation{font:inherit;color:inherit;padding:8px 0;cursor:pointer;background:transparent;border:0;text-underline-offset:4px}.share-invitation:hover{text-decoration:underline}
