.detail-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.detail-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;padding:34px 30px;transition:box-shadow .25s,transform .25s}.detail-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.detail-ico{background:var(--olive-tint);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 18px;display:flex}.detail-ico svg{width:22px;height:22px;stroke:var(--sage-deep)}.detail-card h3{font-family:var(--font-display);color:var(--ink);margin:0 0 8px;font-size:25px;font-weight:600;line-height:1.3}.detail-card .when{letter-spacing:.04em;color:var(--sage);margin:0 0 12px;font-size:14px;font-weight:600}.detail-card p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.75}.detail-card p a{border:1px solid var(--sage);border-radius:var(--radius-pill);color:var(--sage-deep);letter-spacing:.02em;align-items:center;gap:7px;margin-top:20px;padding:9px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,box-shadow .2s,transform .2s;display:inline-flex}.detail-card p a:after{content:"↗";font-size:15px;line-height:1;transition:transform .2s}.detail-card p a:hover{background:var(--sage-tint);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.detail-card p a:hover:after{transform:translate(2px,-2px)}.detail-card p a:active{transform:translateY(1px)}.detail-card p a:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}@media (max-width:820px){.detail-grid{grid-template-columns:1fr}}@media (max-width:540px){.detail-card{padding:28px 22px}}
.faq-list{max-width:680px;margin:0 auto}.faq-item{border-bottom:1px solid var(--border)}.faq-q{font-family:var(--font-display);color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:22px 4px;font-size:22px;display:flex}.faq-q svg{width:20px;height:20px;stroke:var(--sage);flex-shrink:0;transition:transform .3s}.faq-item.open .faq-q svg{transform:rotate(180deg)}.faq-a{max-height:0;transition:max-height .35s;overflow:hidden}.faq-a-inner{color:var(--ink-soft);padding:0 4px 22px;font-size:16px;line-height:1.7}.faq-a-inner strong{color:var(--ink);font-weight:600}.faq-a-inner a{border:1px solid var(--sage);border-radius:var(--radius-pill);color:var(--sage-deep);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;margin-top:6px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,box-shadow .2s,transform .2s;display:inline-flex}.faq-a-inner a:after{content:"↗";font-size:15px;line-height:1;transition:transform .2s}.faq-a-inner a:hover{background:var(--sage-tint);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.faq-a-inner a:hover:after{transform:translate(2px,-2px)}.faq-a-inner a:active{transform:translateY(1px)}.faq-a-inner a:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}@media (max-width:540px){.faq-q{font-size:19px}}
.footer{text-align:center;background:var(--cream);padding:80px 24px 64px;overflow:hidden}.couple-stage{margin:0 auto 34px;position:relative}.couple-stage .couple{justify-content:center;align-items:flex-end;gap:clamp(0px,1.2vw,18px);height:clamp(220px,33vw,384px);display:flex}.couple-fig{will-change:transform;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 14px 22px #3a4a381a);width:auto;display:block}.couple-fig.groom{height:100%}.couple-fig.bride{height:94.5%}.footer .wreath{width:110px;margin:0 auto 18px}.footer .names{font-family:var(--font-calligraphy);color:var(--sage);margin:0 0 8px;font-size:40px;font-weight:500}.footer .names .amp{font-family:var(--font-script)}.footer .meta{letter-spacing:.08em;color:var(--ink-soft);font-size:13px}.footer .small{color:var(--ink-soft);opacity:.7;margin-top:28px;font-size:12px}@media (max-width:540px){.footer .names{font-size:32px}}
.photo{border-radius:var(--radius-lg);background:radial-gradient(80% 80% at 30% 20%, #cfecf380, transparent), radial-gradient(90% 90% at 80% 90%, #a2cb8b73, transparent), var(--pale-green);box-shadow:var(--shadow-md);aspect-ratio:4/5;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.photo.wide{aspect-ratio:3/2}.photo.square{aspect-ratio:1}.photo-label{text-align:center;color:var(--sage-deep);opacity:.72}.photo-label svg{width:30px;height:30px;stroke:var(--sage-deep);margin-bottom:8px}.photo-label span{letter-spacing:.05em;font-size:12px;display:block}.photo-img{object-fit:cover}
.gallery-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:158px;gap:16px;display:grid}.gallery-grid .photo{aspect-ratio:auto;height:100%}.gallery-grid .photo.tall{grid-row:span 2}@media (max-width:820px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
.hero{text-align:center;background:linear-gradient(to bottom, #f6f4e800 0%, #f6f4e800 calc(100% - 120px), #f6f4e8 100%), radial-gradient(60% 50% at 20% 12%, #cfecf373, transparent 70%), radial-gradient(55% 50% at 84% 22%, #f9b2d72e, transparent 70%), radial-gradient(70% 60% at 50% 100%, #a2cb8b4d, transparent 72%), var(--cream);padding:clamp(60px,12vw,96px) clamp(20px,6vw,24px) clamp(72px,14vw,110px);position:relative;overflow:hidden}.hero-names{font-family:var(--font-calligraphy);color:var(--ink);margin:0;font-size:clamp(46px,13vw,84px);font-weight:500;line-height:1.14}.hero-names .amp{font-family:var(--font-script);color:var(--sage);margin:0 0 2rem;font-size:clamp(36px,10vw,64px);font-weight:400;line-height:1;display:block}.hero-meta{letter-spacing:.06em;color:var(--ink-soft);margin:30px 0 0;font-size:16px}.hero-cta{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:38px;display:flex}.hero-sprig{opacity:.9;pointer-events:none;position:absolute}.hero-sprig.l{width:150px;top:40px;left:-10px;transform:rotate(8deg)}.hero-sprig.r{width:150px;bottom:30px;right:-6px;transform:scaleX(-1)rotate(10deg)}.hero-couple{z-index:1;justify-content:center;align-items:flex-end;gap:clamp(0px,1.4vw,22px);height:clamp(240px,30vw,420px);margin:56px auto 0;display:flex;position:relative}.hero-fig{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 16px 26px #3a4a381f);width:auto;display:block}.hero-fig.groom{height:100%}.hero-fig.bride{height:94.5%}@media (max-width:820px){.hero-sprig.l{width:100px;top:20px;left:-18px}.hero-sprig.r{width:100px;bottom:20px;right:-14px}}@media (max-width:540px){.hero-couple{height:clamp(180px,46vw,240px);margin-top:40px}.hero-fig{filter:none}.hero-sprig.l,.hero-sprig.r{opacity:.7;width:72px}.hero-meta{font-size:15px}.hero-cta{flex-direction:column;align-items:stretch;gap:12px}.hero-cta a{display:block}.hero-cta .btn,.hero-cta .btn-sec{width:100%}}
.invite-cta{background:var(--surface-alt)}.invite-cta-card{text-align:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:600px;box-shadow:var(--shadow-lg);margin:0 auto;padding:56px clamp(24px,6vw,56px)}.invite-cta-seal{background:radial-gradient(circle at 36% 30%,#9cc290,#84b179 55%,#6e9a63 100%);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 22px;display:flex;box-shadow:inset 0 2px 3px #ffffff59,inset 0 -3px 7px #3a4a3847,0 4px 10px #3a4a382e}.invite-cta-seal-mark{filter:drop-shadow(0 1px 1px #3a4a384d);width:60%;height:auto}.invite-cta-card .eyebrow{margin-bottom:12px}.invite-cta-body{text-wrap:pretty;max-width:46ch;margin:16px auto 30px}.invite-cta-hint{color:var(--ink-soft);margin-top:20px;font-size:14px}
.nav{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft);background:#f6f4e8d1;position:sticky;top:0}.nav-inner{align-items:center;gap:24px;height:72px;display:flex}.nav-logo{align-items:center;line-height:0;display:inline-flex}.nav-logo img{width:auto;height:32px;display:block}.nav-links{gap:28px;margin-left:auto;display:flex}.nav-links a{color:var(--ink-soft);letter-spacing:.02em;font-size:14px;transition:color .2s}.nav-links a:hover{color:var(--sage-deep)}.nav-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.nav-links+.nav-actions{margin-left:0}.nav-burger{border:1px solid var(--border);border-radius:var(--radius-sm);background:0 0;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0;transition:background .2s;display:none}.nav-burger span{background:var(--ink);width:18px;height:1.5px;margin:0 auto;transition:transform .3s,opacity .2s;display:block}.nav-burger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.nav-drawer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f4e8f5;border-bottom:1px solid #0000;flex-direction:column;gap:4px;max-height:0;padding:0 clamp(20px,5vw,32px);transition:max-height .35s,padding .35s,border-color .35s;display:none;overflow:hidden}.nav-drawer a{color:var(--ink);border-bottom:1px solid var(--line-soft);padding:12px 4px;font-size:16px}.nav-drawer a:last-of-type{border-bottom:none}.nav-drawer.open{border-bottom-color:var(--border-soft);max-height:480px;padding:12px clamp(20px,5vw,32px) 22px}@media (max-width:820px){.nav-links{display:none}.nav-burger,.nav-drawer{display:flex}.nav-rsvp-link{display:none}.nav-logo img{height:28px}.nav-links+.nav-actions{margin-left:auto}}
.schedule-note{text-align:left;max-width:620px;color:var(--ink-soft);margin:-8px auto 40px;font-size:15px;line-height:1.75}.timeline{max-width:560px;margin:0 auto;position:relative}.tl-item{grid-template-columns:96px 1fr;gap:22px;padding:18px 0;display:grid;position:relative}.tl-item:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:38px;bottom:-18px;left:107px}.tl-time{font-family:var(--font-display);color:var(--sage-deep);text-align:right;font-size:22px;line-height:1.3}.tl-dot{background:var(--sage);width:9px;height:9px;box-shadow:0 0 0 4px var(--cream);border-radius:50%;position:absolute;top:25px;left:103px}.tl-body h4{color:var(--ink);margin:0 0 4px;font-size:18px;font-weight:600;line-height:1.3}.tl-body p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.7}
.shared-album-card{text-align:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:640px;box-shadow:var(--shadow-lg);margin:0 auto;padding:56px clamp(24px,6vw,56px)}.shared-album-ico{background:radial-gradient(circle at 36% 30%,#9cc290,#84b179 55%,#6e9a63 100%);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 22px;display:flex;box-shadow:inset 0 2px 3px #ffffff59,inset 0 -3px 7px #3a4a3847,0 4px 10px #3a4a382e}.shared-album-ico svg{stroke:#fff}.shared-album-card .eyebrow{margin-bottom:12px}.shared-album-body{max-width:46ch;color:var(--ink-soft);text-wrap:pretty;margin:16px auto 30px}.shared-album-btn{gap:8px}.shared-album-hint{color:var(--ink-soft);margin-top:18px;font-size:14px}
.story-grid{grid-template-columns:1fr 1fr;align-items:start;gap:56px;display:grid}.story-text h2{font-family:var(--font-display);color:var(--ink);margin:0 0 18px;font-size:38px;font-weight:500;line-height:1.3}.story-text p{margin:0 0 16px}.story-more{max-height:0;transition:max-height .45s;overflow:hidden}.story-more p:last-child{margin-bottom:0}.story-toggle{cursor:pointer;color:var(--sage-deep);font-family:var(--font-display);letter-spacing:.02em;background:0 0;border:none;align-items:center;gap:6px;margin-top:18px;padding:0;font-size:16px;font-weight:600;display:inline-flex}.story-toggle span{border-bottom:1px solid #0000;transition:border-color .2s}.story-toggle:hover span{border-color:var(--sage-deep)}.story-toggle svg{stroke:var(--sage);transition:transform .3s}.story-toggle.open svg{transform:rotate(180deg)}.story-toggle:focus-visible{outline:2px solid var(--sage-deep);outline-offset:4px;border-radius:4px}@media (max-width:820px){.story-grid{grid-template-columns:1fr;gap:32px}}
