:root{--paper:#f5dfb8;--ink:#45472e;--muted:#6e6041;--gold:#846538;--rule:#b49a67}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{background:#f3d8ae;overflow-x:hidden}
.garden-background{position:fixed;inset:0;height:100lvh;z-index:0;overflow:hidden;pointer-events:none;background:#f3d8ae;contain:strict}
.background-fallback,.background-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.layer-sources,.garden-canvas{display:none}
.garden-layer-stack{position:absolute;inset:0;overflow:hidden}
.garden-motion-layer{position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;will-change:transform;backface-visibility:hidden}
.garden-motion-layer img{position:absolute;left:0;display:block;max-width:none;pointer-events:none}
#invitation{position:relative;z-index:1}
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(clamp(110px,16svh,165px) + 32px) 20px 150px;color:#89633c}
.invocation{font:700 calc(clamp(8px,2.15vw,12px) + .5pt)/1.8 var(--sans);font-style:normal;letter-spacing:.02em;text-transform:uppercase;color:#705836;margin:0;max-width:none;white-space:nowrap;text-shadow:0 1px 7px #fff3d6,0 0 14px #fff3d6}
.hero-label{margin:23px 0 7px;font:10px/1.6 var(--serif);font-weight:500;letter-spacing:.25em;color:#89633c}
.hero h1{font-size:clamp(65px,18vw,86px);font-weight:400;line-height:1;letter-spacing:.035em;text-transform:uppercase;margin:0;text-shadow:0 1px 8px #ffeec778}
.floral-separator{width:190px;height:30px;margin-top:12px;color:#a48050;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;flex:none}
.discover-link{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;min-height:48px;justify-content:center;font:9px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;color:#f8e9c9;text-shadow:0 1px 6px #2f291b,0 1px 3px #2f291b;white-space:nowrap;padding:8px 12px}
.discover-link svg{width:15px;height:23px;stroke:currentColor;stroke-width:1.2;filter:drop-shadow(0 1px 2px #2f291b)}
.invitation-content{width:min(calc(100% - 32px),510px);margin:0 auto;text-align:center;padding:30px 0 max(36px,env(safe-area-inset-bottom))}
.paper-panel{position:relative;border:1px solid #aa895d80;border-radius:20px;padding:34px 26px;background:linear-gradient(145deg,#fff0dbad,#f6dfbd99);box-shadow:0 8px 35px #46391617,inset 0 0 0 5px #fff1d91a;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);margin:0 0 24px;text-shadow:0 1px 2px #fff0db55}
.paper-panel::before{content:'';position:absolute;inset:7px;border:1px solid #b5956152;border-radius:14px;pointer-events:none}
.paper-panel .eyebrow{font-size:9px;color:#816338;letter-spacing:.17em}
.paper-panel h2{font-size:35px;font-weight:500;line-height:1.12;margin:8px 0 20px;color:#4b4d32}
.host-panel{padding-top:38px;padding-bottom:35px}
.invitation-wording{font-size:18px;line-height:1.6;color:#47482f;margin:0}
.family-details{margin-top:25px}.family-details .person-name{font-size:clamp(25px,6.6vw,34px);font-weight:500;line-height:1.15;color:#4b4d32;margin:0 0 15px;letter-spacing:-.025em;white-space:nowrap}
.family-details .parents{font-size:18px;line-height:1.5;margin:0;color:#41452d}.family-details .parents span{color:#555337}
.family-details .family-role{font-size:15px;font-style:italic;color:#695433;margin:0 0 4px}
.couple-join{display:flex;align-items:center;justify-content:center;gap:14px;margin:23px 0;color:#9a7b4b;font-size:21px;line-height:1.2}.couple-join span{height:1px;width:36px;background:#a3834b70}
.celebration-panel h2{margin-bottom:25px}
.scratch-card{min-height:154px;border-radius:11px;background:#ead7b5;box-shadow:inset 0 0 0 1px #a789535c}
.date-content{padding-left:7px;padding-right:7px}.date-line{gap:11px}.date-line span{font-size:18px}.date-line strong{font-size:51px;color:#4c5034}.date-weekday{color:#82653c}
.date-time{font-size:9px;letter-spacing:.06em;color:#50492f}.date-timezone{font-size:8px;color:#76623f}
.text-button{color:#775e36}.reveal-status{font-size:9px;color:#776341}
.countdown-component{margin-top:17px}.countdown-component .countdown-heading{font-size:8px;letter-spacing:.13em;margin-bottom:14px}
.countdown{gap:7px}.countdown-unit{background:#b2a16b1a;border:1px solid #aa925c80;border-radius:8px;min-height:76px}.countdown-number{color:#505338;font-size:32px}.countdown-label{font-size:7px;letter-spacing:.09em;color:#77613e}
.scratch-reset{font-size:9px;margin:14px 0 -15px;min-height:44px}
.venue-component{margin-top:0}.venue-component .venue-symbol{stroke:#92713f;width:22px;height:27px;margin:0 0 12px}.venue-component h2{font-size:39px;margin:7px 0 14px}
.venue-component address{font-size:18px;line-height:1.5;color:#47482f}
.event-actions{gap:10px;margin-top:25px}.action-button{min-height:50px;font-size:11px;border-radius:7px;border-color:#777a4e}
.action-map{background:#686d42;color:#fff1d5;box-shadow:0 3px 10px #50533320}.action-map:hover{background:#555b36}
.action-button{text-shadow:none}
.action-calendar{color:#65683e;background:#e4d5ae35}.action-calendar:hover{background:#e3d1a8}
.calendar-menu{position:relative;z-index:2;background:#f7e7ca;border-color:#aa925c88}.calendar-menu a:hover{background:#ead8b4}.calendar-menu small{color:#73613d}
.contacts-panel h2{font-size:31px;letter-spacing:.08em;margin-bottom:14px}.contact-list{display:grid;gap:0}.contact-list a{display:block;text-decoration:none;color:#4d5035;font-size:19px;line-height:1.4;padding:15px 0;min-height:60px}.contact-list a+a{border-top:1px solid #b2966152}.contact-list a span{display:block;font:10px/1.7 var(--sans);letter-spacing:.07em;color:#7e653c;margin-top:5px}
.invitation-footer{padding:24px 5px 0;color:#f7e8c9;text-shadow:0 1px 6px #2f321e,0 1px 3px #2f321e}.invitation-footer p{font-style:italic;font-size:20px;line-height:1.5;margin:0 0 23px}.footer-initials{font-size:29px;letter-spacing:.12em}.footer-initials em{font-size:22px;font-style:italic;letter-spacing:0}.back-to-top{display:block;width:max-content;margin:23px auto 0;padding:12px;color:inherit;font:9px/1.5 var(--sans);text-underline-offset:4px;min-height:44px}
.petal-burst{position:fixed;inset:0;display:block;width:100%;height:100%;z-index:20;pointer-events:none}
@media(min-width:700px){.hero{padding-top:calc(clamp(78px,10svh,110px) + 32px)}.hero h1{font-size:108px}.hero-label{margin-top:23px;font-size:12px}.floral-separator{width:220px;height:34px;margin-top:13px}.invitation-content{padding-top:40px}.paper-panel{padding:40px 43px;margin-bottom:30px}}
@media(max-width:350px){.hero{padding-top:132px}.hero-label{margin-top:20px;font-size:8px}.hero h1{font-size:62px}.invocation{font-size:calc(8px + .5pt)}.invitation-content{width:calc(100% - 24px)}.paper-panel{padding:29px 19px}.paper-panel .eyebrow{font-size:8px;letter-spacing:.13em}.paper-panel h2{font-size:32px}.invitation-wording{font-size:16px}.family-details .parents{font-size:17px}.family-details .person-name{font-size:25px}.date-line{gap:8px}.date-line span{font-size:16px}.date-line strong{font-size:45px}.countdown-number{font-size:28px}.countdown-label{font-size:6px}.date-time{font-size:8px}.contact-list a{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.discover-link svg{filter:none}}
