:root{
  --gold:#b97816;--gold-2:#d8a74f;--gold-deep:#875006;--gold-soft:#efd8a6;
  --ivory:#fbf6ec;--paper:#fffdf9;--white:#fff;--ink:#25262e;--muted:#6e6f78;
  --line:rgba(183,121,24,.22);--line-soft:rgba(183,121,24,.12);
  --shadow:0 28px 80px rgba(89,57,13,.14);--shadow-soft:0 14px 44px rgba(89,57,13,.08);
  --radius-xl:36px;--radius-lg:28px;--radius-md:20px;--ease:cubic-bezier(.2,.75,.2,1);
  --content:1180px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-width:280px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff 0%,#fffaf2 38%,#fff 70%,#fbf4e8 100%);line-height:1.65;overflow-x:hidden}
body.no-scroll{overflow:hidden}
button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}img{max-width:100%;display:block}a{color:inherit}.ambient{position:fixed;inset:0;z-index:-3;overflow:hidden;pointer-events:none}.ambient span{position:absolute;border-radius:50%;filter:blur(72px);opacity:.2;animation:ambientFloat 14s ease-in-out infinite}.ambient span:nth-child(1){width:380px;height:380px;background:#efca80;left:-150px;top:8%}.ambient span:nth-child(2){width:500px;height:500px;background:#f9edd5;right:-200px;top:35%;animation-delay:-4s}.ambient span:nth-child(3){width:340px;height:340px;background:#e4c995;left:25%;bottom:-180px;animation-delay:-8s}@keyframes ambientFloat{50%{transform:translate3d(0,28px,0) scale(1.08)}}
.page-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold-soft),var(--gold),var(--gold-deep));z-index:1600;box-shadow:0 0 18px rgba(184,121,23,.35)}
.topbar{position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:calc(10px + var(--safe-t)) clamp(14px,3.5vw,52px) 10px;background:rgba(255,253,249,.78);border-bottom:1px solid var(--line-soft);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);transition:.3s ease}.topbar.scrolled{box-shadow:0 10px 32px rgba(45,34,18,.07);background:rgba(255,253,249,.94)}
.brand{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);text-decoration:none}.brand-cross{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;color:var(--gold);border:1px solid var(--line);background:#fff}.brand span:last-child{min-width:0}.brand b,.brand small{display:block;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand b{font-size:.98rem}.brand small{font-size:.72rem;color:var(--muted);margin-top:2px}.top-actions{display:flex;gap:8px;flex:0 0 auto}.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.9);color:var(--gold);display:grid;place-items:center;cursor:pointer;transition:.25s var(--ease);box-shadow:0 8px 20px rgba(80,50,8,.05)}.icon-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(80,50,8,.11)}.music-bars{display:flex;align-items:end;gap:2px;height:16px}.music-bars i{display:block;width:2px;background:currentColor;border-radius:999px;height:6px}.music-bars i:nth-child(2){height:12px}.music-bars i:nth-child(3){height:9px}.music-on .music-bars i{animation:eq .8s ease-in-out infinite alternate}.music-on .music-bars i:nth-child(2){animation-delay:.2s}.music-on .music-bars i:nth-child(3){animation-delay:.35s}@keyframes eq{to{height:15px}}
.cover-screen{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:max(16px,var(--safe-t)) 16px max(16px,var(--safe-b));background:radial-gradient(circle at 50% 15%,#fff 0,#fff9ee 42%,#f0dfbc 100%);transition:opacity .7s var(--ease),visibility .7s}.cover-screen.hide{opacity:0;visibility:hidden;pointer-events:none}.cover-screen:before,.cover-screen:after{content:"";position:absolute;width:min(420px,70vw);aspect-ratio:1;border:1px solid rgba(184,121,23,.19);border-radius:50%}.cover-screen:before{left:-220px;top:-180px}.cover-screen:after{right:-230px;bottom:-200px}.cover-card{position:relative;width:min(520px,100%);max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain;padding:28px 26px 26px;border-radius:36px;text-align:center;animation:coverIn 1s var(--ease) both}.glass{background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.86);box-shadow:0 30px 100px rgba(86,58,15,.16);backdrop-filter:blur(20px) saturate(1.12);-webkit-backdrop-filter:blur(20px) saturate(1.12)}@keyframes coverIn{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
.sacred-mark{position:relative;width:84px;height:84px;margin:0 auto 4px;display:grid;place-items:center;color:var(--gold)}.sacred-mark:before,.sacred-mark:after{content:"";position:absolute;inset:6px;border:1px solid rgba(184,121,23,.24);border-radius:50%}.sacred-mark:after{inset:16px;border-style:dashed;animation:spin 18s linear infinite}.sacred-mark b{font-size:42px;font-family:Georgia,serif;font-weight:400}.sacred-mark.small{width:62px;height:62px}.sacred-mark.small b{font-size:30px}@keyframes spin{to{transform:rotate(360deg)}}
.eyebrow,.kicker,.section-label{font-size:clamp(.69rem,.66rem + .18vw,.78rem);font-weight:850;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.cover-card h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.9rem,6vw,3.05rem);line-height:1.04;margin:7px 0 15px;letter-spacing:-.025em}.cover-person{width:clamp(116px,30vw,150px);height:clamp(116px,30vw,150px);border-radius:50%;padding:5px;margin:0 auto 14px;background:linear-gradient(145deg,var(--gold-soft),var(--gold-deep));box-shadow:0 15px 40px rgba(92,55,8,.18)}.cover-person img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:50%;background:#fff}.cover-card .for{margin:8px 0 0;color:var(--muted);font-size:.9rem}.cover-card h2{font-family:Georgia,serif;color:var(--gold-deep);font-size:clamp(1.2rem,4vw,1.5rem);margin:4px 0 16px}.cover-card small{display:block;margin-top:13px;color:var(--muted);font-size:.76rem}.cover-orbit{position:absolute;border:1px solid rgba(184,121,23,.14);border-radius:50%;animation:orbit 18s linear infinite}.orbit-a{width:620px;height:620px}.orbit-b{width:780px;height:780px;animation-direction:reverse;animation-duration:26s}@keyframes orbit{to{transform:rotate(360deg)}}
.section{width:min(var(--content),calc(100% - 40px));margin:0 auto;padding:clamp(62px,7vw,92px) 0;scroll-margin-top:88px}.hero{min-height:calc(100dvh - 66px);display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(36px,5vw,68px);align-items:center}.kicker{display:flex;align-items:center;gap:12px}.kicker span{width:42px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}.hero h1,.intro h2,.countdown h2,.location h2,.host h2,.rsvp-copy h2,.wishes h2,.gallery-section h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em}.hero h1{font-size:clamp(3.15rem,6vw,6.5rem);line-height:.94;margin:.22em 0 .08em;overflow-wrap:anywhere}.nickname{font-family:Georgia,serif;font-size:clamp(1.4rem,2.1vw,2.15rem);color:var(--gold);font-style:italic;margin:0}.verse{max-width:680px;margin:28px 0 30px;padding-left:20px;border-left:2px solid var(--gold-soft);font-family:Georgia,serif;font-size:clamp(1rem,1.45vw,1.25rem);font-style:italic;color:#555864}.hero-actions,.location-actions{display:flex;flex-wrap:wrap;gap:12px}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 22px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-size:.94rem;font-weight:800;cursor:pointer;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{color:#fff;background:linear-gradient(135deg,#cf9633 0%,#a8660b 58%,#8b5106 100%);box-shadow:0 14px 32px rgba(164,100,10,.22)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(164,100,10,.28)}.btn-outline{color:var(--gold-deep);border-color:var(--line);background:rgba(255,255,255,.9)}.btn-glow:before{content:"";position:absolute;top:-40%;bottom:-40%;width:45px;left:-70px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);animation:shine 3.5s ease-in-out infinite}@keyframes shine{50%,100%{left:120%}}.scroll-hint{display:flex;align-items:center;gap:9px;margin-top:34px;color:var(--muted);font-size:.8rem}.scroll-hint span{width:20px;height:30px;border:1px solid var(--line);border-radius:20px;position:relative}.scroll-hint span:after{content:"";position:absolute;width:3px;height:6px;border-radius:4px;background:var(--gold);left:50%;top:6px;transform:translateX(-50%);animation:scrollDot 1.6s infinite}@keyframes scrollDot{70%{transform:translate(-50%,10px);opacity:0}}
.hero-art{position:relative;min-width:0}.halo{position:absolute;width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(232,197,127,.38),rgba(232,197,127,0) 68%);left:8%;top:9%;filter:blur(14px)}.gold-frame{position:relative;padding:10px;border-radius:44px;background:linear-gradient(145deg,#f1d48d,#b27312 58%,#8f5608);box-shadow:var(--shadow);transform-style:preserve-3d;will-change:transform}.gold-frame:before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.6);border-radius:35px;pointer-events:none}.gold-frame img{width:100%;height:auto;max-height:690px;object-fit:cover;object-position:center top;border-radius:35px;background:#fff}.floating-seal{position:absolute;right:-18px;bottom:8%;width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:6px;background:rgba(255,253,249,.94);border:1px solid var(--line);box-shadow:var(--shadow-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:floatY 4.5s ease-in-out infinite}.floating-seal b{font:700 2rem/1 Georgia,serif;color:var(--gold)}.floating-seal span{font-size:.68rem;line-height:1.1;color:var(--muted);letter-spacing:.1em}@keyframes floatY{50%{transform:translateY(-9px)}}
.intro{text-align:center;max-width:860px}.ornament-line{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);margin-bottom:18px}.ornament-line:before,.ornament-line:after{content:"";width:82px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft))}.ornament-line:after{background:linear-gradient(90deg,var(--gold-soft),transparent)}.intro h2,.countdown h2,.host h2,.gallery-section h2,.wishes h2{font-size:clamp(2.35rem,4.4vw,4.35rem);line-height:1.04;margin:.26em 0}.intro p{font-size:clamp(1rem,1.15vw,1.12rem);color:var(--muted);max-width:760px;margin:0 auto}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.event-card{position:relative;min-width:0;padding:30px;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.86);box-shadow:var(--shadow-soft);overflow:hidden}.event-card:before{content:"";position:absolute;inset:auto -40px -58px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(236,204,141,.24),transparent 70%)}.event-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#fff9eb,#f1ddb4);color:var(--gold);font-size:1.25rem;margin-bottom:18px}.event-card span{display:block;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}.event-card strong{display:block;margin-top:5px;font:700 clamp(1.15rem,1.6vw,1.42rem)/1.25 Georgia,serif;overflow-wrap:anywhere}.event-card small{display:block;color:var(--muted);margin-top:6px}.countdown{text-align:center}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:760px;margin:34px auto 0}.countdown-grid>div{padding:26px 10px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff,#fff9ef);box-shadow:var(--shadow-soft)}.countdown-grid b{display:block;font:700 clamp(2.25rem,5vw,4.7rem)/1 Georgia,serif;color:var(--gold-deep);font-variant-numeric:tabular-nums}.countdown-grid b.tick{transform:translateY(-5px);opacity:.35}.countdown-grid span{display:block;margin-top:8px;color:var(--muted);font-size:.82rem}.countdown-note{color:var(--muted);margin-top:20px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-head h2{margin:.18em 0 0}.section-head>p,.gallery-meta p{max-width:360px;color:var(--muted);margin:0}.gallery-meta{display:grid;justify-items:end;gap:5px;text-align:right}.gallery-meta>span{display:inline-flex;padding:5px 10px;border-radius:999px;background:#fff8e8;border:1px solid #efdcae;color:#7a5a1f;font-size:.74rem;font-weight:800}.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:220px;gap:14px}.gallery-item{position:relative;border:0;padding:0;border-radius:26px;overflow:hidden;cursor:pointer;background:#eee;box-shadow:var(--shadow-soft);isolation:isolate}.gallery-item:nth-child(6n+1){grid-column:span 7;grid-row:span 2}.gallery-item:nth-child(6n+2),.gallery-item:nth-child(6n+3){grid-column:span 5}.gallery-item:nth-child(6n+4){grid-column:span 4}.gallery-item:nth-child(6n+5){grid-column:span 4}.gallery-item:nth-child(6n+6){grid-column:span 4}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .65s}.gallery-item:hover img{transform:scale(1.045)}.gallery-item:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(15,12,7,.58))}.gallery-item:before{content:"＋";position:absolute;z-index:3;right:14px;top:14px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.86);color:var(--gold-deep);font-size:1.15rem;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:.9}.gallery-item span{position:absolute;z-index:2;left:18px;right:18px;bottom:14px;color:white;font-weight:750;text-align:left;text-shadow:0 2px 10px #0008;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.location{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(36px,5vw,56px);align-items:center}.location h2{font-size:clamp(2.2rem,4.4vw,4.25rem);line-height:1.04;margin:.22em 0;overflow-wrap:anywhere}.location p{color:var(--muted);font-size:1.05rem;margin-bottom:24px}.map-card{position:relative;min-height:380px;border-radius:34px;border:1px solid var(--line);background:linear-gradient(145deg,#fff,#f5e7ca);overflow:hidden;box-shadow:var(--shadow)}.map-card:before,.map-card:after{content:"";position:absolute;inset:-20%;background:repeating-linear-gradient(35deg,transparent 0 28px,rgba(184,121,23,.05) 29px 30px)}.map-card:after{transform:rotate(90deg)}.map-glow{position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(232,197,127,.25);filter:blur(38px);right:-60px;bottom:-80px}.map-placeholder{position:relative;z-index:3;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px}.map-placeholder .pin{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:#fff;color:var(--gold);font-size:2.4rem;box-shadow:0 16px 44px rgba(101,63,8,.15);animation:pinPulse 2.2s ease-in-out infinite}.map-placeholder strong{font-family:Georgia,serif;font-size:1.5rem;margin-top:18px}.map-placeholder span{color:var(--muted);max-width:420px}@keyframes pinPulse{50%{transform:translateY(-5px);box-shadow:0 22px 54px rgba(101,63,8,.2)}}
.host{text-align:center}.host-list{max-width:760px;margin:30px auto 0;display:grid;gap:10px}.host-list div{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line-soft);font-family:Georgia,serif;font-size:clamp(1.02rem,1.3vw,1.18rem)}.host-list span{color:var(--gold);font-size:.8rem}.rsvp-wrap{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(36px,5vw,56px);align-items:start}.rsvp-copy{position:sticky;top:98px}.rsvp-copy h2{font-size:clamp(2.5rem,5vw,4.75rem);line-height:1;margin:.25em 0}.rsvp-copy p{color:var(--muted);max-width:440px}.live-badge{display:inline-flex;align-items:center;gap:8px;color:#6b5b38;font-size:.78rem;background:#fff8e8;border:1px solid #efdcae;padding:7px 10px;border-radius:999px}.live-badge i{width:7px;height:7px;border-radius:50%;background:#2dad63;box-shadow:0 0 0 4px rgba(45,173,99,.1);animation:livePulse 1.8s infinite}@keyframes livePulse{50%{box-shadow:0 0 0 8px rgba(45,173,99,0)}}.form-card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:var(--shadow)}.form-card label{display:block;font-weight:750;margin:0 0 16px}.form-card input,.form-card select,.form-card textarea{width:100%;min-height:48px;border:1px solid #ded8cc;border-radius:14px;padding:13px 14px;margin-top:7px;background:#fff;color:var(--ink);outline:none;transition:.22s}.form-card textarea{min-height:120px;resize:vertical}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--gold-soft);box-shadow:0 0 0 4px rgba(184,121,23,.08)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.submit-btn{width:100%}.submit-btn.loading .btn-label{opacity:.45}.spinner{display:none;width:17px;height:17px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.submit-btn.loading .spinner{display:block}.field-error{display:block;color:#ad3434;font-size:.76rem;margin-top:5px}.form-status{min-height:24px;margin:12px 0 0;font-size:.92rem}.form-status.ok{color:#267247}.form-status.error{color:#ad3434}.wish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.wish-card{position:relative;min-width:0;padding:26px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.88);box-shadow:0 12px 36px rgba(81,53,15,.06);animation:wishIn .45s var(--ease)}.wish-card .quote{font:700 3.5rem/1 Georgia,serif;color:var(--gold-soft);height:28px}.wish-card p{color:#555761;overflow-wrap:anywhere}.wish-card strong{display:block;font-family:Georgia,serif;color:var(--gold-deep);overflow-wrap:anywhere}.wish-card small{display:block;margin-top:5px;color:var(--muted)}@keyframes wishIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
footer{text-align:center;padding:70px 20px calc(92px + var(--safe-b));background:linear-gradient(180deg,rgba(255,255,255,.3),#f3e5c8);border-top:1px solid var(--line-soft)}footer h3{font:700 clamp(1.8rem,4vw,3rem)/1.1 Georgia,serif;margin:6px 0;color:var(--gold-deep)}footer p{color:var(--muted)}.footer-rule{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gold);margin:20px 0}.footer-rule:before,.footer-rule:after{content:"";width:90px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft))}.footer-rule:after{background:linear-gradient(90deg,var(--gold-soft),transparent)}footer small{color:#8b7b5f}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal[data-reveal="left"]{transform:translateX(-34px)}.reveal[data-reveal="right"]{transform:translateX(34px)}.reveal.visible{opacity:1;transform:none}.event-grid .reveal:nth-child(2){transition-delay:.08s}.event-grid .reveal:nth-child(3){transition-delay:.16s}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:1700;display:grid;gap:10px;width:min(390px,calc(100% - 36px))}.toast{display:flex;gap:12px;align-items:flex-start;padding:15px 16px;border-radius:16px;background:rgba(29,30,36,.94);color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:toastIn .4s var(--ease)}.toast.success{background:rgba(32,98,60,.96)}.toast.error{background:rgba(139,48,48,.96)}.toast b{display:block}.toast span{font-size:.88rem;opacity:.9}@keyframes toastIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.lightbox{position:fixed;inset:0;z-index:1650;background:rgba(15,13,10,.92);display:flex;align-items:center;justify-content:center;padding:28px;opacity:0;visibility:hidden;transition:.3s}.lightbox.open{opacity:1;visibility:visible}.lightbox figure{margin:0;max-width:min(1100px,86vw);max-height:88dvh;text-align:center}.lightbox img{max-width:100%;max-height:78dvh;margin:auto;border-radius:18px;box-shadow:0 28px 90px #0009;object-fit:contain}.lightbox figcaption{color:#fff;margin-top:12px}.lightbox-close,.lightbox-nav{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:50%;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lightbox-close{right:20px;top:calc(20px + var(--safe-t));width:46px;height:46px;font-size:28px}.lightbox-nav{top:50%;width:50px;height:50px;font-size:34px;transform:translateY(-50%)}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}
.mobile-dock{display:none}
@media(max-width:1024px){.section{width:min(var(--content),calc(100% - 32px))}.hero{grid-template-columns:1fr 1fr;gap:34px}.hero h1{font-size:clamp(3rem,7vw,5.25rem)}.gallery-grid{grid-auto-rows:190px}.location{gap:34px}.rsvp-wrap{gap:34px}}
@media(max-width:820px){.hero,.location,.rsvp-wrap{grid-template-columns:1fr}.hero{min-height:auto;padding-top:42px;gap:38px}.hero-copy{text-align:center}.kicker,.hero-actions,.scroll-hint{justify-content:center}.verse{margin-left:auto;margin-right:auto;text-align:left}.hero-art{width:min(100%,620px);margin:auto}.hero h1{font-size:clamp(3.1rem,12vw,5rem)}.event-grid,.wish-grid{grid-template-columns:1fr}.rsvp-copy{position:static;text-align:center}.rsvp-copy p{margin-left:auto;margin-right:auto}.section-head{align-items:flex-start;flex-direction:column}.gallery-meta{justify-items:start;text-align:left}.gallery-grid{grid-auto-rows:180px}.gallery-item:nth-child(n){grid-column:span 6;grid-row:span 1}.gallery-item:first-child{grid-column:span 12;grid-row:span 2}.map-card,.map-placeholder{min-height:330px}}
@media(max-width:640px){body{padding-bottom:calc(72px + var(--safe-b))}.section{width:min(100% - 24px,var(--content));padding:50px 0;scroll-margin-top:76px}.topbar{min-height:58px;padding:calc(8px + var(--safe-t)) 12px 8px}.brand{gap:8px;max-width:calc(100vw - 112px)}.brand-cross{width:36px;height:36px;flex-basis:36px}.brand b{font-size:.86rem}.brand small{font-size:.64rem}.top-actions{gap:6px}.icon-btn{width:38px;height:38px}.hero{padding-top:28px}.hero h1{font-size:clamp(2.65rem,13vw,4.15rem);line-height:.95}.nickname{font-size:1.4rem}.verse{padding-left:14px;margin-top:22px;margin-bottom:24px;font-size:1rem}.hero-actions{display:grid;grid-template-columns:1fr;gap:10px}.hero-actions .btn,.location-actions .btn{width:100%}.btn{min-height:50px}.gold-frame{border-radius:26px;padding:7px}.gold-frame:before{inset:7px;border-radius:20px}.gold-frame img{border-radius:20px;max-height:none}.floating-seal{width:78px;height:78px;right:4px;bottom:3%}.floating-seal b{font-size:1.45rem}.floating-seal span{font-size:.58rem}.intro h2,.countdown h2,.host h2,.gallery-section h2,.wishes h2{font-size:clamp(2.15rem,10vw,3.2rem)}.event-card{padding:24px 20px;text-align:center}.event-icon{margin-left:auto;margin-right:auto}.countdown-grid{gap:7px}.countdown-grid>div{padding:18px 4px;border-radius:17px}.countdown-grid b{font-size:clamp(1.8rem,9vw,2.45rem)}.countdown-grid span{font-size:.68rem}.form-card{padding:20px;border-radius:24px}.form-row{grid-template-columns:1fr}.gallery-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:2px 2px 12px;margin-right:-12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.gallery-grid::-webkit-scrollbar{display:none}.gallery-item:nth-child(n),.gallery-item:first-child{flex:0 0 min(84vw,320px);height:360px;grid-column:auto;grid-row:auto;scroll-snap-align:center;border-radius:24px}.gallery-item:first-child{flex-basis:min(88vw,340px)}.gallery-item:before{width:36px;height:36px}.location-actions{display:grid}.location h2{font-size:clamp(2.1rem,10vw,3rem)}.map-card,.map-placeholder{min-height:290px}.map-placeholder{padding:24px}.map-placeholder .pin{width:68px;height:68px}.host-list div{font-size:1rem;padding:14px 8px}.cover-card{padding:20px 15px 18px;border-radius:28px}.cover-card h1{font-size:clamp(1.85rem,9vw,2.45rem)}.cover-person{width:122px;height:122px}.sacred-mark{width:68px;height:68px}.sacred-mark b{font-size:34px}.lightbox{padding:12px 8px calc(80px + var(--safe-b))}.lightbox figure{max-width:94vw}.lightbox img{max-height:72dvh;border-radius:14px}.lightbox-close{width:42px;height:42px;right:10px}.lightbox-nav{width:42px;height:42px}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}.toast-stack{right:12px;bottom:calc(84px + var(--safe-b));width:calc(100% - 24px)}.mobile-dock{position:fixed;z-index:80;left:10px;right:10px;bottom:calc(8px + var(--safe-b));display:grid;grid-template-columns:repeat(4,1fr);padding:7px;border-radius:20px;background:rgba(255,253,249,.93);border:1px solid var(--line);box-shadow:0 16px 44px rgba(80,50,8,.15);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}.mobile-dock a{min-width:0;display:grid;place-items:center;gap:1px;padding:6px 2px;border-radius:14px;text-decoration:none;color:#786342}.mobile-dock a:active{background:#fff7e7}.mobile-dock span{font-size:1.12rem;line-height:1}.mobile-dock small{font-size:.61rem;font-weight:800}footer{padding-bottom:calc(38px + var(--safe-b))}}
@media(max-width:390px){.section{width:calc(100% - 20px)}.hero h1{font-size:clamp(2.35rem,12.5vw,3.3rem)}.hero-actions .btn{font-size:.9rem;padding-inline:16px}.countdown-grid>div{padding:15px 2px}.countdown-grid b{font-size:1.75rem}.countdown-grid span{font-size:.62rem}.gallery-item:nth-child(n),.gallery-item:first-child{flex-basis:86vw;height:330px}.form-card{padding:17px}.cover-card{max-height:calc(100dvh - 18px)}.cover-card small{font-size:.7rem}.mobile-dock small{font-size:.58rem}}
@media(max-width:330px){.brand b{font-size:.78rem}.brand-cross{width:34px;height:34px;flex-basis:34px}.icon-btn{width:35px;height:35px}.hero h1{font-size:2.15rem}.countdown-grid{grid-template-columns:repeat(2,1fr)}.gallery-item:nth-child(n),.gallery-item:first-child{height:300px}.mobile-dock{left:6px;right:6px}.mobile-dock small{font-size:.54rem}}
@media(orientation:landscape) and (max-height:520px){.cover-card{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:center;text-align:left;width:min(760px,96vw);padding:14px 18px}.sacred-mark,.cover-person{grid-row:1/6}.cover-person{display:none}.cover-card h1{font-size:1.85rem;margin:2px 0}.cover-card .for,.cover-card h2,.cover-card small{margin:2px 0}.cover-card .btn{margin-top:6px}.hero{min-height:auto}.mobile-dock{padding:4px}.mobile-dock a{padding:3px 2px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none!important}}
.mobile-dock a.active{background:linear-gradient(145deg,#fff8e8,#fff);color:var(--gold-deep);box-shadow:inset 0 0 0 1px var(--line-soft)}


/* V4 — professional utility actions + stricter mobile precision */
.quick-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-top:8px;padding-bottom:30px}.quick-tool{display:flex;align-items:center;gap:15px;min-height:88px;padding:18px 20px;border:1px solid var(--line-soft);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,249,238,.84));box-shadow:0 18px 50px rgba(86,56,11,.07);text-decoration:none;color:var(--ink);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.quick-tool>span{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#fff5dc,#f5dba6);color:var(--gold-deep);font-size:1.2rem}.quick-tool div{min-width:0;display:grid;gap:3px}.quick-tool b{font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.2rem)}.quick-tool small{color:var(--muted);line-height:1.35}.quick-tool i{margin-left:auto;font-style:normal;color:var(--gold);font-size:1.25rem}.quick-tool:hover{transform:translateY(-3px);border-color:rgba(184,121,23,.32);box-shadow:0 22px 60px rgba(86,56,11,.11)}
.gallery-item{touch-action:manipulation}.gallery-item img{transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s}.gallery-item:focus-visible{outline:3px solid rgba(184,121,23,.38);outline-offset:4px}.btn,.icon-btn,.mobile-dock a,.quick-tool{min-height:44px}.form-card input,.form-card textarea,.form-card select{font-size:16px}
@media(max-width:760px){.quick-tools{grid-template-columns:1fr;gap:12px;padding-left:clamp(14px,4vw,20px);padding-right:clamp(14px,4vw,20px)}.quick-tool{min-height:76px;padding:15px 16px;border-radius:19px}.quick-tool>span{width:42px;height:42px;flex-basis:42px}.quick-tool b{font-size:1rem}.quick-tool small{font-size:.78rem}.hero-copy{width:100%}.hero h1{overflow-wrap:anywhere;hyphens:auto;text-wrap:balance}.verse{font-size:clamp(.94rem,3.75vw,1.08rem);line-height:1.7}.section-head{gap:14px}.section-head h2{font-size:clamp(1.8rem,8vw,2.65rem)}.event-card strong{font-size:clamp(1rem,4.2vw,1.18rem)}.gallery-grid{scroll-padding-left:16px}.gallery-item{scroll-snap-stop:always}.lightbox figure{max-width:92vw}.lightbox figcaption{font-size:.88rem}.location-copy h2,.host h2,.rsvp-copy h2,.countdown h2{font-size:clamp(2rem,9vw,3rem)}}
@media(max-width:390px){.section{padding-left:14px;padding-right:14px}.hero h1{font-size:clamp(2rem,12vw,2.85rem);line-height:.96}.hero-actions .btn{font-size:.86rem}.cover-card h1{font-size:clamp(1.8rem,9vw,2.35rem)}.cover-card h2{font-size:clamp(1.05rem,5vw,1.35rem)}.quick-tool{gap:11px}.quick-tool i{display:none}.mobile-dock a{min-width:0}.mobile-dock span{font-size:1rem}.mobile-dock small{white-space:nowrap}.form-row{grid-template-columns:1fr}.rsvp-wrap{gap:18px}}
@media(max-width:340px){.topbar{padding-left:10px;padding-right:10px}.brand span:last-child small{display:none}.hero-actions{grid-template-columns:1fr}.gallery-item:nth-child(n),.gallery-item:first-child{flex-basis:88vw}.quick-tool small{font-size:.72rem}}

/* =========================================================
   V5 — ELEGANT EDITORIAL REDESIGN
   Compact desktop hero, precise typography, premium gallery,
   standalone realtime wishes, and stronger mobile layout.
   ========================================================= */
:root{
  --gold:#a9680c;--gold-2:#d6a34a;--gold-deep:#754506;--gold-soft:#ecd39c;
  --ivory:#fbf7ef;--paper:#fffefa;--ink:#292722;--muted:#716b62;
  --line:rgba(169,104,12,.22);--line-soft:rgba(169,104,12,.11);
  --content:1240px;--serif:Georgia,"Times New Roman",serif;
}
body{background:
 radial-gradient(circle at 8% 8%,rgba(232,202,143,.18),transparent 28%),
 radial-gradient(circle at 92% 34%,rgba(247,232,202,.34),transparent 30%),
 linear-gradient(180deg,#fffefa 0%,#fff 42%,#fbf6ec 100%);color:var(--ink)}
.topbar{max-width:100%;min-height:72px;padding:calc(11px + var(--safe-t)) clamp(18px,4vw,64px) 11px;background:rgba(255,254,250,.9)}
.brand b{font-family:var(--serif);font-size:1rem;letter-spacing:.01em}.brand small{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.section{width:min(var(--content),calc(100% - 48px));padding:clamp(64px,7vw,96px) 0}
.hero-v5{position:relative;min-height:auto;padding-top:clamp(46px,6vw,80px);padding-bottom:clamp(54px,7vw,86px);grid-template-columns:minmax(0,.86fr) minmax(460px,1.14fr);gap:clamp(38px,5vw,78px)}
.hero-v5:before{content:"";position:absolute;z-index:-1;inset:26px -24px;border-radius:48px;background:linear-gradient(115deg,rgba(255,250,241,.88),rgba(255,255,255,.4));border:1px solid rgba(169,104,12,.08)}
.hero-copy-card{padding:clamp(22px,2.4vw,34px) 0}.hero-copy-card .kicker{font-size:.74rem;letter-spacing:.2em}
.hero-v5 h1{max-width:720px;font-size:clamp(3rem,4.7vw,5.35rem);line-height:.93;letter-spacing:-.05em;margin:.26em 0 .08em;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.hero-v5 .nickname{font-size:clamp(1.35rem,1.9vw,1.95rem)}
.hero-v5 .verse{max-width:620px;margin:25px 0 22px;padding:16px 0 16px 20px;background:linear-gradient(90deg,rgba(251,243,226,.8),transparent);border-left:2px solid var(--gold-2);font-size:clamp(.98rem,1.2vw,1.14rem);line-height:1.7}
.hero-mini-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:620px;margin:0 0 24px}.hero-mini-info>div{padding:13px 15px;border-radius:16px;background:rgba(255,255,255,.76);border:1px solid var(--line-soft);box-shadow:0 10px 30px rgba(90,55,10,.04)}.hero-mini-info span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.hero-mini-info b{display:block;margin-top:3px;font-size:.94rem;line-height:1.35}
.hero-v5 .hero-actions{gap:11px}.hero-v5 .btn{min-height:48px;padding:11px 20px;font-size:.9rem}.hero-v5 .scroll-hint{margin-top:24px}
.hero-art-v5{width:min(100%,610px);justify-self:end}.hero-art-v5 .gold-frame{padding:8px;border-radius:34px;box-shadow:0 34px 90px rgba(102,64,8,.17)}.hero-art-v5 .gold-frame:before{inset:8px;border-radius:27px}.hero-art-v5 .gold-frame img{width:100%;max-height:680px;object-fit:cover;border-radius:27px}.hero-art-v5 .floating-seal{right:-18px;bottom:7%}
.intro{max-width:900px;text-align:center}.intro h2{font-size:clamp(2.4rem,4.7vw,4.25rem);line-height:1.03;margin:.18em 0 .34em}.intro p{font-size:clamp(1rem,1.3vw,1.13rem);line-height:1.85;color:#625e57}
.event-grid{gap:16px}.event-card{border-radius:24px;padding:24px 22px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(252,245,232,.86));box-shadow:0 16px 44px rgba(88,53,8,.06)}.event-card strong{font-family:var(--serif);font-size:clamp(1.05rem,1.55vw,1.35rem)}
.countdown{padding-top:54px;padding-bottom:58px}.countdown h2{font-size:clamp(2.5rem,4.8vw,4.3rem);margin:.12em 0 .42em}.countdown-grid{max-width:820px;margin-left:auto;margin-right:auto}.countdown-grid>div{background:rgba(255,255,255,.84);border:1px solid var(--line-soft);box-shadow:0 15px 45px rgba(89,54,8,.05)}
.quick-tools{max-width:980px;margin-left:auto;margin-right:auto}
.gallery-section{padding-top:74px}.gallery-section .section-head{margin-bottom:28px}.gallery-section h2{font-size:clamp(2.4rem,4.6vw,4rem);line-height:1.04;margin:.15em 0}.gallery-meta{max-width:360px}.gallery-grid{display:grid;grid-template-columns:1.25fr .8fr .8fr;grid-auto-rows:250px;gap:14px}.gallery-item:nth-child(n){grid-column:auto;grid-row:auto;height:auto;border-radius:26px}.gallery-item:first-child{grid-row:span 2}.gallery-item:nth-child(4n){grid-column:span 2}.gallery-item{position:relative;overflow:hidden;border:1px solid rgba(169,104,12,.14);background:#f4ead7;box-shadow:0 18px 48px rgba(72,45,8,.08)}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-item:hover img{transform:scale(1.035)}.gallery-item .gallery-caption{background:linear-gradient(180deg,transparent,rgba(27,22,15,.68));padding:48px 18px 16px;font-size:.9rem}
.location{background:linear-gradient(145deg,rgba(255,253,247,.85),rgba(249,239,220,.54));border:1px solid var(--line-soft);border-radius:34px;padding-left:clamp(24px,4vw,54px);padding-right:clamp(24px,4vw,54px);margin-top:44px;margin-bottom:44px}
.host{text-align:center}.host-list{max-width:780px;margin:24px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.host-list div{border:1px solid var(--line-soft);border-radius:16px;background:rgba(255,255,255,.74);padding:14px 16px;text-align:left}
.wishes-v5{display:grid;gap:34px}.wish-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,70px);align-items:center;padding:clamp(26px,4vw,52px);border-radius:36px;background:linear-gradient(135deg,#fffefb 0%,#fbf0dc 100%);border:1px solid var(--line);box-shadow:0 28px 80px rgba(90,55,8,.08)}.wish-copy h2{font-family:var(--serif);font-size:clamp(2.6rem,4.7vw,4.3rem);line-height:.98;letter-spacing:-.045em;margin:.18em 0 .3em}.wish-copy p{max-width:470px;color:var(--muted);font-size:1rem}.wish-form{display:grid;gap:15px;padding:24px;border-radius:26px;background:rgba(255,255,255,.86);border:1px solid rgba(169,104,12,.13);box-shadow:0 18px 50px rgba(83,50,7,.06)}.wish-form label{display:grid;gap:7px;font-weight:800;font-size:.85rem}.wish-form input,.wish-form textarea{width:100%;border:1px solid rgba(169,104,12,.2);border-radius:14px;padding:13px 14px;background:#fff;color:var(--ink);outline:none;transition:.2s}.wish-form input:focus,.wish-form textarea:focus{border-color:var(--gold-2);box-shadow:0 0 0 4px rgba(169,104,12,.09)}.wish-form textarea{resize:vertical;min-height:126px}.wish-showcase{padding-top:8px}.wish-showcase .section-head h3{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);margin:.1em 0}.wish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.wish-card{min-height:180px;border:1px solid var(--line-soft);border-radius:22px;background:rgba(255,255,255,.9);box-shadow:0 14px 38px rgba(85,52,8,.055);padding:22px;display:flex;flex-direction:column}.wish-card .quote{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:.8}.wish-card p{margin:10px 0 18px;line-height:1.7;color:#59544d;flex:1}.wish-card strong{font-size:.9rem}.wish-card small{color:var(--muted);font-size:.72rem}
.rsvp-wrap{margin-top:20px;padding-top:72px;padding-bottom:78px}.rsvp-copy h2{font-size:clamp(2.7rem,4.8vw,4.5rem)}.form-card{border:1px solid var(--line-soft);box-shadow:0 24px 70px rgba(81,49,7,.07)}
footer{background:linear-gradient(180deg,transparent,#f7ecd8)}
.mobile-dock{grid-template-columns:repeat(5,1fr)}

@media(max-width:1100px){.hero-v5{grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr);gap:34px}.hero-v5 h1{font-size:clamp(2.8rem,5.3vw,4.7rem)}.gallery-grid{grid-auto-rows:220px}.wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.section{width:min(var(--content),calc(100% - 28px));padding:58px 0}.hero-v5{grid-template-columns:1fr;padding-top:34px;gap:28px}.hero-v5:before{inset:18px -8px;border-radius:34px}.hero-copy-card{text-align:center;padding:8px 4px 0}.hero-v5 .kicker,.hero-v5 .hero-actions,.hero-v5 .scroll-hint{justify-content:center}.hero-v5 h1{max-width:680px;margin-left:auto;margin-right:auto;font-size:clamp(2.8rem,9.4vw,4.55rem)}.hero-v5 .verse{margin-left:auto;margin-right:auto;text-align:left}.hero-mini-info{margin-left:auto;margin-right:auto}.hero-art-v5{justify-self:center;width:min(100%,560px)}.hero-art-v5 .gold-frame img{max-height:none}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:230px}.gallery-item:first-child{grid-row:span 2}.gallery-item:nth-child(4n){grid-column:auto}.wish-panel{grid-template-columns:1fr}.wish-copy{text-align:center}.wish-copy p{margin-left:auto;margin-right:auto}.wish-copy .live-badge{justify-content:center}.host-list{grid-template-columns:1fr}.rsvp-wrap{margin-top:0}}
@media(max-width:640px){body{padding-bottom:calc(76px + var(--safe-b))}.section{width:calc(100% - 20px);padding:46px 0}.topbar{min-height:58px}.hero-v5{padding-top:24px;padding-bottom:44px;gap:22px}.hero-v5:before{inset:10px -4px;border-radius:28px}.hero-copy-card{padding-inline:6px}.hero-v5 .kicker{font-size:.64rem;letter-spacing:.15em}.hero-v5 h1{font-size:clamp(2.35rem,11.5vw,3.55rem);line-height:.96;letter-spacing:-.042em}.hero-v5 .nickname{font-size:1.28rem}.hero-v5 .verse{font-size:.94rem;line-height:1.65;padding:13px 12px 13px 15px;margin-top:18px;margin-bottom:16px;border-radius:0 14px 14px 0}.hero-mini-info{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.hero-mini-info>div{padding:11px 10px}.hero-mini-info span{font-size:.6rem}.hero-mini-info b{font-size:.79rem}.hero-v5 .hero-actions{display:grid;grid-template-columns:1fr;gap:9px}.hero-v5 .btn{width:100%;min-height:48px}.hero-v5 .scroll-hint{display:none}.hero-art-v5{width:100%}.hero-art-v5 .gold-frame{padding:6px;border-radius:24px}.hero-art-v5 .gold-frame:before{inset:6px;border-radius:19px}.hero-art-v5 .gold-frame img{border-radius:19px}.hero-art-v5 .floating-seal{right:4px;width:74px;height:74px}.intro h2{font-size:clamp(2.05rem,9.5vw,3rem)}.intro p{font-size:.95rem;line-height:1.75}.gallery-section{padding-top:52px}.gallery-section .section-head{margin-bottom:20px}.gallery-section h2{font-size:clamp(2rem,9vw,2.8rem)}.gallery-meta p{font-size:.82rem}.gallery-grid{display:flex;overflow-x:auto;gap:11px;grid-auto-rows:auto;scroll-snap-type:x mandatory;padding:2px 3px 14px;margin-right:-10px;scrollbar-width:none}.gallery-grid::-webkit-scrollbar{display:none}.gallery-item:nth-child(n),.gallery-item:first-child,.gallery-item:nth-child(4n){flex:0 0 78vw;max-width:330px;height:390px;grid-row:auto;grid-column:auto;scroll-snap-align:center;border-radius:22px}.gallery-item:first-child{flex-basis:84vw}.location{border-radius:26px;padding-left:18px;padding-right:18px;margin-top:24px;margin-bottom:24px}.wish-panel{padding:22px 16px;border-radius:26px;gap:20px}.wish-copy h2{font-size:clamp(2.2rem,10vw,3.1rem)}.wish-copy p{font-size:.92rem}.wish-form{padding:17px;border-radius:20px}.wish-grid{display:flex;overflow-x:auto;gap:11px;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin-right:-10px;scrollbar-width:none}.wish-grid::-webkit-scrollbar{display:none}.wish-card{flex:0 0 82vw;max-width:330px;min-height:200px;scroll-snap-align:center}.wish-showcase .section-head h3{font-size:1.9rem}.rsvp-wrap{padding-top:50px;padding-bottom:56px}.rsvp-copy h2{font-size:clamp(2.35rem,10vw,3.2rem)}.mobile-dock{left:8px;right:8px;bottom:calc(7px + var(--safe-b));grid-template-columns:repeat(5,1fr);padding:6px}.mobile-dock a{padding:5px 1px}.mobile-dock span{font-size:1rem}.mobile-dock small{font-size:.55rem}}
@media(max-width:390px){.section{width:calc(100% - 16px)}.hero-v5 h1{font-size:clamp(2.12rem,11.4vw,2.95rem)}.hero-mini-info{grid-template-columns:1fr}.gallery-item:nth-child(n),.gallery-item:first-child{flex-basis:84vw;height:350px}.wish-card{flex-basis:86vw}.mobile-dock small{font-size:.51rem}.mobile-dock span{font-size:.95rem}}

/* ==========================================================
   V6 — Precision Editorial Hero + Refined Typography
   ========================================================== */
:root{
  --gold:#b57a1e;--gold-2:#d5aa58;--gold-deep:#7d4c0c;--gold-soft:#eed8a9;
  --ivory:#fbf7ef;--paper:#fffdf8;--white:#fff;--ink:#292620;--muted:#716a61;
  --line:rgba(181,122,30,.24);--line-soft:rgba(181,122,30,.115);
  --content:1240px;
}
body{color:var(--ink);background:linear-gradient(180deg,#fffefa 0%,#fffaf0 46%,#fff 76%,#fbf4e8 100%);font-size:16px;line-height:1.65}
.topbar{min-height:68px;padding-inline:clamp(16px,4vw,60px);background:rgba(255,254,250,.93)}
.brand{gap:12px}.brand-cross{width:38px;height:38px;flex-basis:38px;font-size:16px;background:#fffefa}
.brand b{font-family:Georgia,"Times New Roman",serif;font-size:.96rem;font-weight:700;color:#342d24}
.brand small{font-size:.64rem;color:#8b7f71;letter-spacing:.11em;font-weight:700}
.icon-btn{width:40px;height:40px;color:#9b6411;background:#fffefa;border-color:rgba(181,122,30,.2)}
.section{width:min(var(--content),calc(100% - 48px));scroll-margin-top:84px}
.hero-v5{width:min(var(--content),calc(100% - 48px));grid-template-columns:minmax(0,1fr) minmax(440px,540px);gap:clamp(48px,6vw,86px);align-items:center;padding-top:clamp(42px,5vw,66px);padding-bottom:clamp(52px,6vw,76px)}
.hero-v5:before{inset:18px -28px;border-radius:42px;background:linear-gradient(120deg,rgba(255,250,239,.76),rgba(255,255,255,.62));box-shadow:inset 0 0 0 1px rgba(181,122,30,.045)}
.hero-copy-card{padding:0 0 0 12px;align-self:center}.hero-copy-card .kicker{font-size:.69rem;letter-spacing:.22em;color:#a7690b;font-weight:850}
.hero-v5 .hero-name{margin:.30em 0 .08em;max-width:700px;font-size:clamp(3.15rem,4.25vw,4.85rem);line-height:.93;letter-spacing:-.047em;color:#292823;text-wrap:balance;overflow-wrap:normal;word-break:normal}
.hero-v5 .hero-name span{display:block;white-space:normal}
.hero-v5 .nickname{margin-top:10px;font-size:clamp(1.28rem,1.65vw,1.7rem);color:#a96a0e;font-weight:500}
.hero-v5 .verse{max-width:650px;margin:24px 0 20px;padding:15px 18px;border-left:2px solid #d7a64b;border-radius:0 14px 14px 0;background:linear-gradient(90deg,rgba(249,239,220,.72),rgba(255,255,255,.18));font-size:clamp(.96rem,1.02vw,1.08rem);line-height:1.72;color:#665f57}
.hero-mini-info{max-width:650px;gap:12px;margin-bottom:20px}.hero-mini-info>div{padding:12px 15px;border-radius:15px;background:rgba(255,255,255,.87);border-color:rgba(181,122,30,.14);box-shadow:0 8px 24px rgba(91,61,20,.035)}
.hero-mini-info span{font-size:.64rem;letter-spacing:.14em;color:#8a8176}.hero-mini-info b{font-size:.9rem;color:#373129;font-weight:760}
.hero-v5 .btn{min-height:46px;padding:10px 20px;font-size:.86rem;letter-spacing:.005em}.btn-primary{background:linear-gradient(135deg,#ca902c,#a7660d 62%,#8d5306);box-shadow:0 12px 28px rgba(159,95,10,.18)}.btn-outline{color:#80500c;background:rgba(255,255,255,.86)}
.hero-v5 .scroll-hint{margin-top:20px;font-size:.74rem;color:#8b8379}
.hero-art-v5{width:min(100%,540px);justify-self:end}.hero-art-v5 .gold-frame{padding:7px;border-radius:31px;background:linear-gradient(145deg,#efcf80,#ba7d1d 56%,#8c5308);box-shadow:0 28px 72px rgba(92,59,13,.15)}.hero-art-v5 .gold-frame:before{inset:7px;border-radius:25px}.hero-art-v5 .gold-frame img{max-height:655px;border-radius:25px;object-fit:contain;background:#fff}.hero-art-v5 .floating-seal{right:-12px;bottom:7%;width:86px;height:86px}.floating-seal b{font-size:1.55rem}.floating-seal span{font-size:.56rem}
.intro h2,.countdown h2,.location h2,.host h2,.rsvp-copy h2,.wishes h2,.gallery-section h2{color:#2f2b25}.section-label,.eyebrow,.kicker{color:#a66a0f}.event-card strong{color:#383129}.event-card span{color:#9b6718}.event-card small,.intro p,.location p,.host p,.rsvp-copy p{color:#746c63}
.music-on{background:#fff6df;box-shadow:0 0 0 4px rgba(181,122,30,.08),0 10px 22px rgba(104,65,10,.09)}
#bgMusic{display:none}

@media(max-width:1100px){
 .hero-v5{grid-template-columns:minmax(0,1fr) minmax(390px,480px);gap:42px}.hero-v5 .hero-name{font-size:clamp(2.9rem,4.9vw,4.2rem)}.hero-art-v5{width:min(100%,480px)}
}
@media(max-width:820px){
 .section,.hero-v5{width:min(100% - 28px,720px)}.hero-v5{grid-template-columns:1fr;gap:30px;padding-top:30px}.hero-copy-card{padding:0 12px;text-align:center}.hero-v5 .kicker{justify-content:center}.hero-v5 .hero-name{font-size:clamp(2.65rem,8.7vw,4rem);line-height:.96;margin-top:.28em}.hero-v5 .hero-name span{display:inline}.hero-v5 .hero-name span+span:before{content:" ";}.hero-v5 .verse{text-align:left;margin-left:auto;margin-right:auto}.hero-mini-info{margin-left:auto;margin-right:auto}.hero-v5 .hero-actions{justify-content:center}.hero-art-v5{justify-self:center;width:min(100%,500px)}
}
@media(max-width:640px){
 body{font-size:15px}.topbar{padding-left:12px;padding-right:12px}.brand b{font-size:.84rem}.brand small{font-size:.56rem}.brand-cross{width:35px;height:35px;flex-basis:35px}.icon-btn{width:37px;height:37px}.section,.hero-v5{width:calc(100% - 20px)}.hero-v5{padding-top:22px;padding-bottom:42px;gap:20px}.hero-v5:before{inset:8px -2px;border-radius:25px}.hero-copy-card{padding:0 8px}.hero-copy-card .kicker{font-size:.59rem;letter-spacing:.16em}.hero-v5 .hero-name{font-size:clamp(2.25rem,10.2vw,3.15rem);line-height:.98;letter-spacing:-.038em}.hero-v5 .hero-name span{display:block}.hero-v5 .hero-name span+span:before{content:none}.hero-v5 .nickname{font-size:1.18rem;margin-top:7px}.hero-v5 .verse{font-size:.9rem;line-height:1.65;margin:16px 0 14px;padding:12px 13px}.hero-mini-info{gap:8px;margin-bottom:16px}.hero-mini-info>div{padding:10px 11px}.hero-mini-info span{font-size:.56rem}.hero-mini-info b{font-size:.78rem}.hero-art-v5{width:min(100%,430px)}.hero-art-v5 .gold-frame{padding:5px;border-radius:22px}.hero-art-v5 .gold-frame:before{inset:5px;border-radius:18px}.hero-art-v5 .gold-frame img{border-radius:18px}.hero-art-v5 .floating-seal{width:70px;height:70px;right:2px}.hero-v5 .btn{font-size:.82rem;min-height:46px}.cover-card{border-radius:28px;padding:22px 18px}.cover-card h1{color:#302b24}.cover-card h2{color:#85520b}
}
@media(max-width:390px){
 .hero-v5 .hero-name{font-size:clamp(2rem,10.6vw,2.65rem)}.hero-mini-info{grid-template-columns:1fr 1fr}.hero-v5 .verse{font-size:.86rem}.brand small{max-width:145px}.hero-art-v5 .floating-seal{width:64px;height:64px}.hero-art-v5 .floating-seal b{font-size:1.28rem}
}
@media(max-width:340px){.hero-v5 .hero-name{font-size:1.92rem}.brand small{display:none}.hero-mini-info{grid-template-columns:1fr}.hero-v5 .btn{font-size:.78rem}}

/* ==========================================================
   V7 — Enterprise Theme Engine
   Dynamic CSS variables are injected from the event record.
   ========================================================== */
body{
  --gold:var(--brand,#b57a1e);
  --gold-2:var(--brand-soft,#d5aa58);
  --gold-deep:color-mix(in srgb,var(--brand,#b57a1e) 76%,#4e2e00);
  --gold-soft:color-mix(in srgb,var(--brand-soft,#d5aa58) 52%,#fff);
  --ivory:var(--paper,#fffdf8);
  --paper:var(--paper,#fffdf8);
  --ink:var(--ink,#292620);
  font-size:calc(16px * var(--font-scale,1));
  background:
    radial-gradient(circle at 8% 14%,color-mix(in srgb,var(--brand-soft,#d5aa58) 18%,transparent),transparent 28%),
    radial-gradient(circle at 92% 38%,color-mix(in srgb,var(--brand,#b57a1e) 8%,transparent),transparent 26%),
    linear-gradient(180deg,color-mix(in srgb,var(--paper,#fffdf8) 98%,#fff),#fff 72%,color-mix(in srgb,var(--paper,#fffdf8) 90%,#f5ead8));
}
.theme-ivory_editorial .hero-v5:before{background:linear-gradient(135deg,rgba(255,255,255,.92),color-mix(in srgb,var(--paper) 88%,#fff));box-shadow:0 26px 90px rgba(65,50,27,.07),inset 0 0 0 1px color-mix(in srgb,var(--brand) 13%,transparent)}
.theme-ivory_editorial .hero-name,.theme-ivory_editorial .intro h2,.theme-ivory_editorial .gallery-section h2{letter-spacing:-.055em}
.theme-soft_champagne .hero-v5:before{background:linear-gradient(125deg,color-mix(in srgb,var(--brand-soft) 12%,#fff),rgba(255,255,255,.78));box-shadow:0 30px 100px color-mix(in srgb,var(--brand) 12%,transparent)}
.theme-soft_champagne .event-card,.theme-soft_champagne .wish-card,.theme-soft_champagne .quick-tool{background:color-mix(in srgb,var(--paper) 88%,rgba(255,255,255,.92))}
.hero-centered .hero-v5{grid-template-columns:1fr;max-width:980px;text-align:center;gap:34px}.hero-centered .hero-copy-card{padding:0 8%;order:1}.hero-centered .hero-art-v5{justify-self:center;width:min(100%,560px);order:2}.hero-centered .kicker,.hero-centered .hero-actions,.hero-centered .scroll-hint{justify-content:center}.hero-centered .verse,.hero-centered .hero-mini-info{margin-left:auto;margin-right:auto}.hero-centered .hero-name{max-width:900px;margin-left:auto;margin-right:auto}.hero-centered .hero-name span{display:inline}.hero-centered .hero-name span+span:before{content:" "}
.motion-minimal .ambient,.motion-minimal .cover-orbit,.motion-minimal .sacred-mark:after,.motion-minimal .btn-glow:before{animation:none!important}.motion-minimal .reveal{opacity:1!important;transform:none!important;transition:none!important}.motion-minimal .tilt-card{transform:none!important}
.motion-balanced .ambient span{animation-duration:24s}.motion-balanced .cover-orbit{animation-duration:32s}
.hero-v5,.event-card,.gallery-item,.wish-card,.quick-tool,.form-card,.wish-form,.location,.map-card{transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.event-card:hover,.quick-tool:hover,.wish-card:hover{border-color:color-mix(in srgb,var(--brand) 28%,transparent);box-shadow:0 18px 42px color-mix(in srgb,var(--brand) 10%,transparent)}
.cover-card .for{letter-spacing:.03em}.cover-card h2{max-width:420px;margin-left:auto;margin-right:auto;text-wrap:balance}
.form-card small,.wish-form small{color:var(--muted);font-size:.76rem}
@supports not (color:color-mix(in srgb,#fff,#000)){body{--gold-deep:#7d4c0c;--gold-soft:#eed8a9}}
@media(max-width:820px){.hero-centered .hero-copy-card{padding:0 12px}.hero-centered .hero-name span{display:block}.hero-centered .hero-name span+span:before{content:none}}
@media(max-width:640px){body{font-size:calc(15px * var(--font-scale,1))}.hero-centered .hero-v5{gap:20px}.cover-card .for{font-size:.82rem}}
.mobile-dock{grid-template-columns:repeat(auto-fit,minmax(52px,1fr))}
.event-wedding .sacred-mark b,.event-wedding .brand-cross{font-family:Georgia,serif}.event-birthday .sacred-mark b,.event-graduation .sacred-mark b,.event-school .sacred-mark b,.event-general .sacred-mark b{font-size:34px}

/* ==========================================================
   V8 — Minimal Sacred Luxury UI
   Locked design: elegant, precise, calm background, premium cards.
   ========================================================== */
:root{
  --v8-gold:#b67516;
  --v8-gold-dark:#89520b;
  --v8-gold-light:#eed59a;
  --v8-cream:#fffaf1;
  --v8-paper:#fffdf9;
  --v8-ink:#28231e;
  --v8-muted:#746b60;
  --v8-line:rgba(182,117,22,.20);
  --v8-shadow:0 22px 60px rgba(72,48,18,.075);
}
html{scroll-behavior:smooth}
body{
  color:var(--v8-ink);
  background:
    radial-gradient(circle at 10% 9%,rgba(229,195,126,.11),transparent 25%),
    radial-gradient(circle at 92% 30%,rgba(207,159,70,.07),transparent 23%),
    linear-gradient(180deg,#fffefa 0%,#fffaf2 42%,#fffdf9 100%);
  background-attachment:fixed;
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:linear-gradient(115deg,transparent 0 38%,rgba(255,255,255,.48) 49%,transparent 60%);opacity:.55}
.ambient{opacity:.16;filter:blur(8px)}
.ambient span:nth-child(2),.ambient span:nth-child(3){display:none}
.ui-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;display:block}
.section{position:relative}
.section-label{font-size:.71rem;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:var(--v8-gold-dark)}
.intro,.countdown,.host,footer{isolation:isolate}
.intro:before,.countdown:before,.host:before{content:"";position:absolute;inset:-34px -42px;z-index:-1;border:1px solid rgba(182,117,22,.07);border-radius:36px;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(255,250,241,.61));box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.intro h2,.countdown h2,.host h2,.gallery-section h2,.location h2,.wishes-v5 h2,.rsvp-wrap h2{font-family:Georgia,"Times New Roman",serif;color:#2d2822;letter-spacing:-.035em;text-wrap:balance}
.intro{padding-top:82px;padding-bottom:40px;text-align:center;max-width:1020px}
.intro h2{font-size:clamp(2.2rem,4.2vw,4.35rem);line-height:1.03;max-width:920px;margin:14px auto 18px}.intro p{max-width:800px;margin:auto;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.8;color:var(--v8-muted)}
.premium-info-grid{gap:16px;margin-top:20px;margin-bottom:86px}
.premium-info-grid .event-card{min-height:145px;padding:24px 24px;display:grid;grid-template-columns:58px 1fr;align-items:center;gap:18px;border-radius:24px;border:1px solid var(--v8-line);background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,249,238,.78));box-shadow:var(--v8-shadow);overflow:hidden}
.premium-info-grid .event-card:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;right:-72px;top:-70px;background:radial-gradient(circle,rgba(221,180,96,.13),transparent 68%)}
.event-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:var(--v8-gold-dark);background:linear-gradient(145deg,#fff9e9,#f4dfae);box-shadow:inset 0 0 0 1px rgba(182,117,22,.11),0 9px 22px rgba(134,83,10,.08)}
.event-icon .ui-icon{width:25px;height:25px;stroke-width:1.9}
.event-card-copy{min-width:0}.event-card-copy span{display:block;margin-bottom:7px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:var(--v8-gold-dark)}.event-card-copy strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.08rem,1.45vw,1.32rem);line-height:1.25;color:#312a23}.event-card-copy small{display:block;margin-top:6px;line-height:1.35;color:#7c7268}
.countdown{padding:74px 34px 34px;text-align:center;margin-bottom:24px}.countdown h2{font-size:clamp(2.7rem,4.8vw,4.7rem);margin:12px 0 28px}.countdown-grid{max-width:870px;margin:0 auto;gap:16px}.countdown-grid>div{position:relative;min-height:150px;border-radius:25px;border:1px solid var(--v8-line);background:linear-gradient(160deg,#fff,#fff8eb);box-shadow:0 18px 46px rgba(77,48,12,.075),inset 0 1px 0 rgba(255,255,255,.95);display:flex;flex-direction:column;justify-content:center}.countdown-grid>div:before{content:"";position:absolute;left:22%;right:22%;bottom:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(182,117,22,.28),transparent)}.countdown-grid b{font-family:Georgia,"Times New Roman",serif;color:#a45f05;font-size:clamp(2.6rem,5vw,4.4rem);font-weight:700;line-height:.95}.countdown-grid span{margin-top:12px;color:#766d64;font-size:.78rem}.countdown-note{margin-top:24px;color:#7a7167}
.quick-tools{gap:16px;margin-bottom:94px}.quick-tool{min-height:96px;padding:18px 18px;border-radius:24px;border:1px solid var(--v8-line);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,249,239,.88));box-shadow:0 18px 48px rgba(83,54,15,.07);display:grid;grid-template-columns:58px 1fr 42px;align-items:center;gap:16px}.quick-tool:hover{transform:translateY(-4px);box-shadow:0 24px 56px rgba(83,54,15,.105)}.quick-icon{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;color:var(--v8-gold-dark);background:linear-gradient(145deg,#fff7df,#f0d496);box-shadow:inset 0 0 0 1px rgba(182,117,22,.10)}.quick-tool-wa .quick-icon{color:#357b36;background:linear-gradient(145deg,#f4f8e9,#e2e9bb)}.quick-icon .ui-icon{width:26px;height:26px}.quick-tool b{font-family:Georgia,"Times New Roman",serif;font-size:1.16rem;color:#312b24}.quick-tool small{margin-top:5px;color:#81776c}.quick-tool>i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--v8-gold-dark);background:#fff7e6;font-style:normal}.quick-tool>i .ui-icon{width:20px;height:20px}
.host{padding:72px 28px 34px;margin-top:96px;margin-bottom:96px}.host-heading{text-align:center;max-width:800px;margin:0 auto 34px}.host-symbol{width:54px;height:54px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;color:var(--v8-gold-dark);background:linear-gradient(145deg,#fff9e8,#efd49c);box-shadow:0 12px 28px rgba(115,72,12,.08)}.host-symbol .ui-icon{width:25px;height:25px}.host h2{font-size:clamp(2.7rem,4.6vw,4.45rem);margin:10px 0 12px}.host-heading p{margin:0;color:var(--v8-muted);line-height:1.7}.host-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.host-list>div{min-height:158px;padding:24px 20px;border-radius:24px;border:1px solid var(--v8-line);background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(255,249,239,.84));box-shadow:0 16px 42px rgba(77,48,13,.065);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:13px}.host-list>div:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(77,48,13,.095)}.host-list strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.02rem,1.4vw,1.22rem);line-height:1.3;color:#312b25;font-weight:600}.host-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:var(--v8-gold-dark);background:#fff5dd}.host-icon .ui-icon{width:23px;height:23px}.host-list>div>i{width:54px;height:1px;background:linear-gradient(90deg,transparent,var(--v8-gold-light),transparent);position:relative}.host-list>div>i:after{content:"◆";position:absolute;left:50%;top:50%;transform:translate(-50%,-52%) scale(.55);color:var(--v8-gold)}
.location{border:1px solid var(--v8-line);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,250,242,.77));box-shadow:var(--v8-shadow)}.map-placeholder .pin{width:60px;height:60px}.map-placeholder .pin .ui-icon{width:29px;height:29px}
.gallery-section{padding-top:78px}.gallery-item{border-radius:24px;box-shadow:0 16px 42px rgba(62,42,19,.09)}.gallery-item:after{border-radius:24px}.gallery-item img{transition:transform .65s cubic-bezier(.2,.8,.2,1)}.gallery-item:hover img{transform:scale(1.035)}
.wish-panel,.wish-showcase,.form-card{border-radius:30px}.wish-form,.form-card{box-shadow:0 18px 54px rgba(61,42,19,.07)}
footer{margin-top:110px;padding-top:78px;padding-bottom:70px;background:linear-gradient(180deg,rgba(255,252,246,.25),rgba(247,235,213,.58));border-top:1px solid rgba(182,117,22,.12)}footer h3{font-family:Georgia,"Times New Roman",serif;color:#9b5f0b;letter-spacing:-.025em}
@media(max-width:900px){.host-list{grid-template-columns:1fr}.host-list>div{min-height:132px}.premium-info-grid .event-card{grid-template-columns:52px 1fr}.event-icon{width:52px;height:52px}.quick-tool{grid-template-columns:52px 1fr 38px}.quick-icon{width:50px;height:50px}.intro:before,.countdown:before,.host:before{inset:-20px -10px}.host{padding-inline:12px}}
@media(max-width:640px){body{background:linear-gradient(180deg,#fffefa,#fff9ef 52%,#fffdf9)}.ambient{display:none}.intro{padding-top:58px}.intro h2{font-size:2.2rem}.premium-info-grid{gap:12px;margin-bottom:58px}.premium-info-grid .event-card{min-height:118px;padding:17px;border-radius:20px;grid-template-columns:48px 1fr;gap:13px}.event-icon{width:48px;height:48px;border-radius:15px}.event-icon .ui-icon{width:22px;height:22px}.event-card-copy strong{font-size:1.02rem}.countdown{padding:54px 10px 24px}.countdown h2{font-size:2.65rem}.countdown-grid{gap:9px}.countdown-grid>div{min-height:110px;border-radius:19px}.countdown-grid b{font-size:2.35rem}.countdown-grid span{font-size:.7rem}.quick-tools{gap:11px;margin-bottom:66px}.quick-tool{min-height:84px;padding:13px;border-radius:20px;grid-template-columns:46px 1fr 34px;gap:11px}.quick-icon{width:46px;height:46px;border-radius:14px}.quick-icon .ui-icon{width:22px;height:22px}.quick-tool b{font-size:.98rem}.quick-tool small{font-size:.69rem;line-height:1.35}.quick-tool>i{width:33px;height:33px}.host{padding-top:54px;margin-top:65px;margin-bottom:65px}.host h2{font-size:2.55rem}.host-list{gap:11px}.host-list>div{min-height:118px;border-radius:20px;padding:18px}.host-heading p{font-size:.88rem}.gallery-section{padding-top:55px}footer{margin-top:74px;padding-top:58px;padding-bottom:90px}}
@media(max-width:420px){.premium-info-grid .event-card{grid-template-columns:44px 1fr}.event-icon{width:44px;height:44px}.countdown-grid{grid-template-columns:repeat(2,1fr)}.quick-tools{grid-template-columns:1fr}.host h2{font-size:2.25rem}.quick-tool{width:100%}.intro:before,.countdown:before,.host:before{border-radius:24px}}

/* ==========================================================
   V8.1.1 — MINIMAL SACRED LUXURY / VISIBLE FRONTEND REBUILD
   ========================================================== */
body.v8-1{
  --v81-ink:#2f2923;
  --v81-muted:#776f66;
  --v81-gold:#b77412;
  --v81-gold-deep:#8f5708;
  --v81-gold-soft:#e9c778;
  --v81-ivory:#fffdf8;
  --v81-cream:#fbf3e5;
  --v81-line:rgba(183,116,18,.22);
  --v81-shadow:0 24px 70px rgba(83,54,17,.075);
  --v81-shadow-hover:0 30px 82px rgba(83,54,17,.12);
  color:var(--v81-ink);
  background:
    radial-gradient(circle at 8% 14%,rgba(237,205,142,.16),transparent 25%),
    radial-gradient(circle at 92% 44%,rgba(237,205,142,.10),transparent 24%),
    linear-gradient(180deg,#fffefb 0%,#fffaf2 46%,#fffefb 100%);
}
body.v8-1 .ambient{opacity:.22}
body.v8-1 .topbar{background:rgba(255,253,248,.88);border-bottom-color:rgba(183,116,18,.14);backdrop-filter:blur(18px) saturate(130%)}
body.v8-1 .section{width:min(1180px,calc(100% - 44px));}
body.v8-1 .section-label,body.v8-1 .eyebrow,body.v8-1 .kicker{color:var(--v81-gold-deep);letter-spacing:.22em}
body.v8-1 .ui-icon{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ceremony intro becomes a real premium visual block */
body.v8-1 .intro{position:relative;max-width:1180px;margin-top:82px;padding:86px 74px 70px;text-align:center;border:1px solid var(--v81-line);border-radius:38px;background:
  radial-gradient(circle at 13% 88%,rgba(224,184,105,.13),transparent 30%),
  radial-gradient(circle at 88% 15%,rgba(224,184,105,.09),transparent 26%),
  linear-gradient(145deg,rgba(255,255,255,.97),rgba(255,249,238,.91));
box-shadow:var(--v81-shadow);overflow:hidden}
body.v8-1 .intro:before{inset:auto;position:absolute;width:340px;height:340px;left:-155px;bottom:-180px;border:1px solid rgba(183,116,18,.12);border-radius:50%;background:transparent;box-shadow:none}
body.v8-1 .intro:after{content:"";position:absolute;width:250px;height:250px;right:-125px;top:-125px;border:1px solid rgba(183,116,18,.10);border-radius:50%}
body.v8-1 .intro-sacred-badge{width:62px;height:62px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;color:var(--v81-gold-deep);border:1px solid rgba(183,116,18,.20);background:linear-gradient(145deg,#fffaf0,#f5e0b6);box-shadow:0 12px 34px rgba(113,68,9,.08)}
body.v8-1 .intro-sacred-badge span{font-family:Georgia,serif;font-size:28px;line-height:1}
body.v8-1 .intro .ornament-line{margin-bottom:14px}
body.v8-1 .intro h2{font-size:clamp(2.75rem,4.6vw,4.8rem);max-width:850px;margin:.2em auto .25em;line-height:.98;color:var(--v81-ink)}
body.v8-1 .intro p{max-width:790px;font-size:clamp(.98rem,1.25vw,1.12rem);line-height:1.8;color:var(--v81-muted)}

/* event info cards now visibly richer and more precise */
body.v8-1 .premium-info-grid{padding-top:30px;padding-bottom:88px;gap:18px}
body.v8-1 .premium-info-grid .event-card{min-height:172px;padding:28px 26px;grid-template-columns:64px 1fr;gap:20px;border-radius:27px;border:1px solid var(--v81-line);background:linear-gradient(150deg,rgba(255,255,255,.99),rgba(255,248,235,.86));box-shadow:0 18px 50px rgba(74,46,12,.075)}
body.v8-1 .premium-info-grid .event-card:hover{transform:translateY(-5px);box-shadow:var(--v81-shadow-hover);border-color:rgba(183,116,18,.36)}
body.v8-1 .event-icon{width:62px;height:62px;border-radius:20px;color:var(--v81-gold-deep);background:linear-gradient(145deg,#fff8e6,#efd39b);box-shadow:inset 0 0 0 1px rgba(183,116,18,.10),0 12px 26px rgba(115,71,8,.07)}
body.v8-1 .event-icon .ui-icon{width:28px;height:28px}
body.v8-1 .event-card-copy span{font-size:.67rem;letter-spacing:.2em;color:var(--v81-gold-deep)}
body.v8-1 .event-card-copy strong{font-size:clamp(1.18rem,1.5vw,1.42rem);color:var(--v81-ink)}
body.v8-1 .event-card-copy small{font-size:.8rem;color:var(--v81-muted)}

/* Save the Date rebuilt: decorative premium panel with larger balanced cards */
body.v8-1 .countdown{position:relative;padding:86px 72px 82px;margin-top:34px;margin-bottom:0;border:1px solid var(--v81-line);border-radius:40px;background:
  radial-gradient(circle at 50% -20%,rgba(238,204,137,.18),transparent 40%),
  linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,248,236,.91));
box-shadow:var(--v81-shadow);overflow:hidden}
body.v8-1 .countdown:before{inset:auto;content:"";position:absolute;width:360px;height:360px;left:-210px;top:42%;border-radius:50%;border:1px solid rgba(183,116,18,.10);background:transparent;box-shadow:none}
body.v8-1 .countdown:after{content:"";position:absolute;width:420px;height:420px;right:-250px;top:-160px;border-radius:50%;border:1px solid rgba(183,116,18,.10)}
body.v8-1 .countdown-emblem{width:50px;height:50px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:#fff6e4;color:var(--v81-gold);border:1px solid rgba(183,116,18,.16)}
body.v8-1 .countdown h2{font-size:clamp(3rem,5.5vw,5.35rem);line-height:.95;margin:12px 0 36px;color:var(--v81-ink)}
body.v8-1 .countdown-grid{max-width:900px;gap:18px;position:relative;z-index:1}
body.v8-1 .countdown-grid>div{min-height:176px;border-radius:28px;border:1px solid rgba(183,116,18,.23);background:linear-gradient(155deg,#fff,#fff8ea);box-shadow:0 18px 48px rgba(82,50,11,.075)}
body.v8-1 .countdown-grid>div:after{content:"";position:absolute;inset:8px;border:1px solid rgba(183,116,18,.055);border-radius:22px;pointer-events:none}
body.v8-1 .countdown-grid b{font-size:clamp(3rem,5.1vw,4.75rem);color:#ad6807;text-shadow:0 8px 24px rgba(156,91,5,.08)}
body.v8-1 .countdown-grid span{font-size:.78rem;letter-spacing:.05em;color:#71685f}
body.v8-1 .countdown-note{font-size:.93rem;margin-top:30px;color:var(--v81-muted)}

/* actions overlap the countdown like a premium invitation control deck */
body.v8-1 .quick-tools{position:relative;z-index:3;max-width:920px;margin:-44px auto 102px;padding:0 18px;gap:18px}
body.v8-1 .quick-tool{min-height:108px;padding:20px 20px;border-radius:26px;background:rgba(255,253,248,.97);border:1px solid rgba(183,116,18,.22);box-shadow:0 24px 58px rgba(75,46,10,.11);backdrop-filter:blur(16px);grid-template-columns:62px 1fr 44px}
body.v8-1 .quick-tool:hover{transform:translateY(-5px);box-shadow:0 30px 70px rgba(75,46,10,.15)}
body.v8-1 .quick-icon{width:60px;height:60px;border-radius:19px;background:linear-gradient(145deg,#fff4d7,#edcf91);color:#9e6009}
body.v8-1 .quick-tool-wa .quick-icon{background:linear-gradient(145deg,#f3f8e8,#dce8b9);color:#2f7c3c}
body.v8-1 .quick-tool b{font-size:1.2rem;color:var(--v81-ink)}
body.v8-1 .quick-tool small{font-size:.77rem;color:var(--v81-muted)}
body.v8-1 .quick-tool>i{background:#fff3d8;color:#a26308}

/* Family block now has a clear premium identity */
body.v8-1 .host{position:relative;margin-top:100px;margin-bottom:105px;padding:82px 62px 62px;border:1px solid var(--v81-line);border-radius:40px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,248,237,.90));box-shadow:var(--v81-shadow);overflow:hidden}
body.v8-1 .host:before{inset:auto;content:"";position:absolute;width:300px;height:300px;left:-165px;bottom:-170px;border-radius:50%;border:1px solid rgba(183,116,18,.09);background:transparent;box-shadow:none}
body.v8-1 .host:after{content:"";position:absolute;width:240px;height:240px;right:-130px;top:-120px;border-radius:50%;border:1px solid rgba(183,116,18,.08)}
body.v8-1 .host-symbol{width:62px;height:62px;border-radius:20px;background:linear-gradient(145deg,#fff6dc,#efd098);box-shadow:0 14px 32px rgba(103,64,9,.09)}
body.v8-1 .host h2{font-size:clamp(3rem,4.8vw,4.8rem);color:var(--v81-ink)}
body.v8-1 .host-heading p{max-width:720px;margin-inline:auto;color:var(--v81-muted)}
body.v8-1 .host-list{gap:18px;position:relative;z-index:1}
body.v8-1 .host-list>div{min-height:180px;padding:28px 24px;border-radius:28px;border:1px solid rgba(183,116,18,.20);background:linear-gradient(150deg,#fff,#fff8eb);box-shadow:0 16px 42px rgba(75,47,12,.07)}
body.v8-1 .host-list>div:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(75,47,12,.115)}
body.v8-1 .host-icon{width:56px;height:56px;background:linear-gradient(145deg,#fff5d9,#f2d79d);color:#a56408;box-shadow:inset 0 0 0 1px rgba(183,116,18,.08)}
body.v8-1 .host-list strong{font-size:clamp(1.08rem,1.45vw,1.27rem);color:var(--v81-ink)}

/* gallery and location polish to keep V8.1 coherent */
body.v8-1 .gallery-item{border-radius:26px;box-shadow:0 18px 48px rgba(54,39,22,.10)}
body.v8-1 .location{border-radius:38px;border:1px solid var(--v81-line);background:linear-gradient(145deg,#fffdf9,#fff7e9);box-shadow:var(--v81-shadow);padding:54px}
body.v8-1 .map-card{border-radius:30px;border-color:var(--v81-line);background:linear-gradient(145deg,#fffaf0,#f9ead0)}

/* footer gets a more intentional closing composition */
body.v8-1 footer{margin-top:110px;padding:88px 24px 78px;background:linear-gradient(180deg,#fffdf9,#f8ecd8);border-top:1px solid rgba(183,116,18,.15)}
body.v8-1 footer h3{font-size:clamp(2rem,3.5vw,3.4rem);margin:.15em 0;color:var(--v81-gold-deep)}

@media(max-width:900px){
 body.v8-1 .section{width:min(760px,calc(100% - 28px))}
 body.v8-1 .intro{padding:68px 32px 58px}
 body.v8-1 .countdown{padding:68px 30px 72px}
 body.v8-1 .host{padding:68px 30px 44px}
 body.v8-1 .premium-info-grid{grid-template-columns:1fr}
 body.v8-1 .premium-info-grid .event-card{min-height:140px}
 body.v8-1 .quick-tools{max-width:720px}
 body.v8-1 .host-list{grid-template-columns:1fr}
 body.v8-1 .host-list>div{min-height:135px}
 body.v8-1 .location{padding:38px 28px}
}
@media(max-width:640px){
 body.v8-1 .section{width:min(100% - 22px,560px)}
 body.v8-1 .intro{margin-top:46px;padding:52px 18px 46px;border-radius:28px}
 body.v8-1 .intro h2{font-size:2.25rem}
 body.v8-1 .intro-sacred-badge{width:54px;height:54px}
 body.v8-1 .premium-info-grid{padding-top:16px;padding-bottom:58px;gap:11px}
 body.v8-1 .premium-info-grid .event-card{min-height:118px;padding:16px;grid-template-columns:50px 1fr;border-radius:20px}
 body.v8-1 .event-icon{width:50px;height:50px;border-radius:15px}
 body.v8-1 .countdown{padding:52px 14px 64px;border-radius:28px}
 body.v8-1 .countdown h2{font-size:2.72rem;margin-bottom:26px}
 body.v8-1 .countdown-grid{gap:10px}
 body.v8-1 .countdown-grid>div{min-height:116px;border-radius:20px}
 body.v8-1 .countdown-grid b{font-size:2.5rem}
 body.v8-1 .quick-tools{margin-top:-36px;margin-bottom:72px;padding:0 8px;grid-template-columns:1fr}
 body.v8-1 .quick-tool{min-height:86px;padding:13px;border-radius:20px;grid-template-columns:48px 1fr 34px}
 body.v8-1 .quick-icon{width:48px;height:48px;border-radius:14px}
 body.v8-1 .quick-tool b{font-size:1rem}
 body.v8-1 .host{margin-top:70px;margin-bottom:72px;padding:56px 16px 30px;border-radius:28px}
 body.v8-1 .host h2{font-size:2.45rem}
 body.v8-1 .host-list>div{min-height:122px;border-radius:20px}
 body.v8-1 .location{padding:28px 18px;border-radius:28px}
}
@media(max-width:420px){
 body.v8-1 .countdown-grid{grid-template-columns:repeat(2,1fr)}
 body.v8-1 .countdown-grid>div{min-height:104px}
 body.v8-1 .countdown-grid b{font-size:2.25rem}
 body.v8-1 .quick-tool{grid-template-columns:44px 1fr 32px;gap:10px}
 body.v8-1 .quick-icon{width:44px;height:44px}
}

/* ==========================================================
   V8.2 — MOBILE-FIRST PRECISION REBUILD
   Target: 320 / 360 / 375 / 390 / 412 / 430 / 480 px Android/iOS
   ========================================================== */
body.v8-2{
  --m-bg:#fffdf9;
  --m-card:#fffefa;
  --m-ink:#2d2924;
  --m-muted:#756e66;
  --m-gold:#aa6709;
  --m-line:rgba(170,103,9,.16);
  --m-shadow:0 14px 36px rgba(78,50,15,.075);
}
body.v8-2 .topbar{isolation:isolate}
body.v8-2 .gold-frame picture{display:block}
body.v8-2 .gold-frame picture img{width:100%;display:block}

@media (max-width:820px){
  body.v8-2 .hero-v5{min-height:auto}
  body.v8-2 .hero-art-v5{order:1}
  body.v8-2 .hero-copy-card{order:2}
}

@media (max-width:640px){
  html{scroll-padding-top:72px}
  body.v8-2{background:linear-gradient(180deg,#fffefa 0,#fffaf1 48%,#fffefa 100%);font-size:15px}
  body.v8-2 .page-progress{height:2px}
  body.v8-2 .topbar{
    min-height:58px;
    padding:calc(7px + var(--safe-t)) 10px 7px;
    background:rgba(255,254,250,.96);
    border-bottom:1px solid rgba(170,103,9,.12);
    box-shadow:0 7px 24px rgba(54,38,18,.045)
  }
  body.v8-2 .brand{gap:8px;max-width:calc(100vw - 96px)}
  body.v8-2 .brand-cross{width:34px;height:34px;flex-basis:34px;font-size:.82rem;border-color:rgba(170,103,9,.18)}
  body.v8-2 .brand b{font-family:Georgia,"Times New Roman",serif;font-size:.78rem;line-height:1.1;letter-spacing:0;color:#302b25}
  body.v8-2 .brand small{font-size:.52rem;letter-spacing:.08em;color:#8b7b68;margin-top:2px}
  body.v8-2 .top-actions{gap:5px}
  body.v8-2 .icon-btn{width:35px;height:35px;box-shadow:none;background:#fffdf8}

  body.v8-2 .section,
  body.v8-2 .hero-v5{width:calc(100% - 20px);max-width:500px;padding-left:0;padding-right:0}

  /* Mobile hero is a composed invitation, not a shrunken desktop poster */
  body.v8-2 .hero-v5{
    display:flex;
    flex-direction:column;
    gap:18px;
    padding-top:14px;
    padding-bottom:44px;
  }
  body.v8-2 .hero-v5:before{
    inset:2px -1px 8px;
    border-radius:28px;
    background:linear-gradient(155deg,rgba(255,255,255,.96),rgba(255,248,235,.9));
    box-shadow:0 16px 44px rgba(78,50,15,.055),inset 0 0 0 1px rgba(170,103,9,.07)
  }
  body.v8-2 .hero-art-v5{
    order:1;
    width:min(78vw,330px);
    margin:10px auto 0;
    position:relative;
  }
  body.v8-2 .hero-art-v5 .halo{display:none}
  body.v8-2 .hero-art-v5 .gold-frame{
    padding:4px;
    border-radius:28px;
    background:linear-gradient(145deg,#ecd192,#b6791f 60%,#8a5208);
    box-shadow:0 20px 48px rgba(75,48,14,.15)
  }
  body.v8-2 .hero-art-v5 .gold-frame:before{inset:4px;border-radius:23px;border-color:rgba(255,255,255,.75)}
  body.v8-2 .hero-art-v5 .gold-frame picture{
    display:block;
    aspect-ratio:4/5;
    overflow:hidden;
    border-radius:23px;
    background:#f7efe0;
  }
  body.v8-2 .hero-art-v5 .gold-frame img{
    width:100%;height:100%;
    object-fit:cover;
    object-position:50% 14%;
    border-radius:23px;
    max-height:none;
  }
  body.v8-2 .hero-art-v5 .floating-seal{
    width:68px;height:68px;right:-7px;bottom:13px;
    gap:3px;background:rgba(255,254,250,.96);box-shadow:0 12px 28px rgba(78,50,15,.13)
  }
  body.v8-2 .hero-art-v5 .floating-seal b{font-size:1.3rem}
  body.v8-2 .hero-art-v5 .floating-seal span{font-size:.48rem;line-height:1.05}

  body.v8-2 .hero-copy-card{order:2;text-align:center;padding:0 12px 14px}
  body.v8-2 .hero-copy-card .kicker{justify-content:center;gap:8px;font-size:.55rem;letter-spacing:.18em;line-height:1.35}
  body.v8-2 .hero-copy-card .kicker span{width:25px}
  body.v8-2 .hero-v5 .hero-name{
    max-width:340px;margin:10px auto 0;
    font-size:clamp(2rem,9.2vw,2.55rem);
    line-height:.97;letter-spacing:-.043em;
    text-wrap:balance;color:var(--m-ink)
  }
  body.v8-2 .hero-v5 .hero-name span{display:block}
  body.v8-2 .hero-v5 .nickname{font-size:1.04rem;margin:6px 0 0;color:#a6680c}
  body.v8-2 .hero-v5 .verse{
    margin:16px auto 14px;max-width:380px;
    padding:13px 14px;
    border:1px solid rgba(170,103,9,.11);border-left:3px solid #d9a84c;border-radius:16px;
    background:linear-gradient(100deg,#fff8e9,rgba(255,255,255,.68));
    text-align:left;font-size:.84rem;line-height:1.62;color:#655e56;
    box-shadow:0 7px 20px rgba(78,50,15,.035)
  }
  body.v8-2 .hero-mini-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:380px;margin:0 auto 13px}
  body.v8-2 .hero-mini-info>div{
    min-width:0;padding:10px 8px;border-radius:14px;
    background:#fff;border:1px solid rgba(170,103,9,.12);box-shadow:0 7px 18px rgba(78,50,15,.035)
  }
  body.v8-2 .hero-mini-info span{font-size:.52rem;letter-spacing:.16em}
  body.v8-2 .hero-mini-info b{font-size:.72rem;line-height:1.25;white-space:normal}
  body.v8-2 .hero-v5 .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:380px;margin:0 auto}
  body.v8-2 .hero-v5 .btn{min-height:44px;padding:9px 11px;font-size:.74rem;line-height:1.15;border-radius:15px}
  body.v8-2 .hero-v5 .scroll-hint{display:none}

  /* Ceremony content */
  body.v8-2 .intro{margin-top:12px;padding:42px 18px 38px;border-radius:26px}
  body.v8-2 .intro-sacred-badge{width:48px;height:48px;margin-bottom:12px}
  body.v8-2 .intro-sacred-badge span{font-size:22px}
  body.v8-2 .intro .section-label{font-size:.55rem;letter-spacing:.18em}
  body.v8-2 .intro h2{font-size:clamp(1.95rem,8.5vw,2.5rem);line-height:1.03;margin:.38em auto .35em}
  body.v8-2 .intro p{font-size:.86rem;line-height:1.68;margin-bottom:0}

  body.v8-2 .premium-info-grid{padding:13px 0 54px;gap:9px}
  body.v8-2 .premium-info-grid .event-card{
    min-height:94px;padding:13px 14px;grid-template-columns:44px minmax(0,1fr);gap:12px;
    border-radius:18px;box-shadow:0 10px 26px rgba(78,50,15,.05)
  }
  body.v8-2 .event-icon{width:44px;height:44px;border-radius:14px}
  body.v8-2 .event-icon .ui-icon{width:20px;height:20px}
  body.v8-2 .event-card-copy span{font-size:.53rem;letter-spacing:.15em}
  body.v8-2 .event-card-copy strong{font-size:.93rem;line-height:1.28}
  body.v8-2 .event-card-copy small{font-size:.68rem;line-height:1.35}

  /* Countdown 2x2 is more legible and balanced on phones */
  body.v8-2 .countdown{padding:42px 14px 58px;border-radius:26px;margin-top:0}
  body.v8-2 .countdown-emblem{width:42px;height:42px;margin-bottom:10px}
  body.v8-2 .countdown .section-label{font-size:.55rem}
  body.v8-2 .countdown h2{font-size:2.35rem;margin:8px 0 22px;line-height:1}
  body.v8-2 .countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-width:360px}
  body.v8-2 .countdown-grid>div{min-height:92px;border-radius:18px;box-shadow:0 8px 22px rgba(78,50,15,.045)}
  body.v8-2 .countdown-grid>div:after{inset:5px;border-radius:14px}
  body.v8-2 .countdown-grid b{font-size:2.1rem;line-height:1}
  body.v8-2 .countdown-grid span{font-size:.63rem;margin-top:5px}
  body.v8-2 .countdown-note{font-size:.78rem;line-height:1.5;margin:20px auto 0;max-width:270px}

  body.v8-2 .quick-tools{margin:-30px auto 62px;padding:0 8px;gap:8px;grid-template-columns:1fr}
  body.v8-2 .quick-tool{
    min-height:72px;padding:10px 11px;border-radius:18px;
    grid-template-columns:42px minmax(0,1fr) 30px;gap:10px;
    box-shadow:0 13px 32px rgba(78,50,15,.09)
  }
  body.v8-2 .quick-icon{width:42px;height:42px;border-radius:13px}
  body.v8-2 .quick-icon .ui-icon{width:20px;height:20px}
  body.v8-2 .quick-tool b{font-size:.88rem;line-height:1.2}
  body.v8-2 .quick-tool small{font-size:.62rem;line-height:1.35;margin-top:2px}
  body.v8-2 .quick-tool>i{width:30px;height:30px}

  /* Gallery: large enough to enjoy, no overflow */
  body.v8-2 .gallery-section{padding-top:38px}
  body.v8-2 .gallery-section .section-head{gap:8px;margin-bottom:16px}
  body.v8-2 .gallery-section h2{font-size:2rem;line-height:1.04}
  body.v8-2 .gallery-meta p{display:none}
  body.v8-2 .gallery-grid{gap:9px;margin-right:-10px;padding-bottom:10px}
  body.v8-2 .gallery-item:nth-child(n),body.v8-2 .gallery-item:first-child,body.v8-2 .gallery-item:nth-child(4n){
    flex:0 0 min(78vw,290px);height:330px;border-radius:19px
  }
  body.v8-2 .gallery-item span{left:12px;right:12px;bottom:12px;font-size:.78rem}

  body.v8-2 .location{padding:24px 15px;border-radius:24px;margin-top:18px;margin-bottom:18px;gap:20px}
  body.v8-2 .location h2{font-size:1.85rem;line-height:1.05}
  body.v8-2 .location p{font-size:.84rem}
  body.v8-2 .location-actions{gap:8px}
  body.v8-2 .location-actions .btn{min-height:44px;font-size:.76rem;border-radius:14px}
  body.v8-2 .map-card,body.v8-2 .map-placeholder{min-height:230px;border-radius:20px}

  /* Family cards are compact, readable, and aligned */
  body.v8-2 .host{margin-top:54px;margin-bottom:58px;padding:46px 13px 22px;border-radius:26px}
  body.v8-2 .host-symbol{width:50px;height:50px;border-radius:16px}
  body.v8-2 .host-heading .section-label{font-size:.55rem}
  body.v8-2 .host h2{font-size:2.1rem;line-height:1.02;margin:.3em 0 .2em}
  body.v8-2 .host-heading p{font-size:.8rem;line-height:1.55;max-width:300px}
  body.v8-2 .host-list{gap:8px}
  body.v8-2 .host-list>div{min-height:96px;padding:14px;border-radius:18px}
  body.v8-2 .host-icon{width:44px;height:44px}
  body.v8-2 .host-list strong{font-size:.92rem;line-height:1.25}

  body.v8-2 .wish-panel{padding:18px 13px;border-radius:24px}
  body.v8-2 .wish-copy h2{font-size:2rem;line-height:1.04}
  body.v8-2 .wish-copy p{font-size:.82rem;line-height:1.6}
  body.v8-2 .wish-form{padding:14px;border-radius:18px}
  body.v8-2 .wish-card{flex-basis:min(82vw,300px);min-height:180px;border-radius:18px}

  body.v8-2 .rsvp-wrap{padding-top:42px;padding-bottom:50px;gap:16px}
  body.v8-2 .rsvp-copy h2{font-size:2.1rem;line-height:1.04}
  body.v8-2 .rsvp-copy p{font-size:.84rem}
  body.v8-2 .form-card{padding:16px;border-radius:20px}

  /* Phone navigation behaves like an app dock without covering content */
  body.v8-2 .mobile-dock{
    left:8px;right:8px;bottom:calc(7px + var(--safe-b));
    min-height:58px;padding:5px 4px;border-radius:18px;
    border-color:rgba(170,103,9,.16);background:rgba(255,254,250,.97);
    box-shadow:0 14px 38px rgba(64,42,16,.16)
  }
  body.v8-2 .mobile-dock a{padding:5px 1px;border-radius:12px;color:#7b6547}
  body.v8-2 .mobile-dock a.active{background:#fff4dd;color:#9c5f08}
  body.v8-2 .mobile-dock span{font-size:.9rem;line-height:1}
  body.v8-2 .mobile-dock small{font-size:.48rem;line-height:1.05;margin-top:2px}

  body.v8-2 footer{margin-top:68px;padding:52px 16px calc(86px + var(--safe-b))}
  body.v8-2 footer h3{font-size:1.75rem;line-height:1.05;text-align:center}
  body.v8-2 footer p{font-size:.78rem;text-align:center}
}

@media (max-width:390px){
  body.v8-2 .section,body.v8-2 .hero-v5{width:calc(100% - 16px)}
  body.v8-2 .hero-art-v5{width:min(76vw,290px)}
  body.v8-2 .hero-v5 .hero-name{font-size:clamp(1.84rem,9.1vw,2.25rem);max-width:300px}
  body.v8-2 .hero-v5 .verse{font-size:.79rem;padding:11px 12px}
  body.v8-2 .hero-mini-info b{font-size:.68rem}
  body.v8-2 .hero-v5 .btn{font-size:.69rem;padding-inline:7px}
  body.v8-2 .intro h2{font-size:1.9rem}
  body.v8-2 .countdown h2{font-size:2.1rem}
  body.v8-2 .countdown-grid>div{min-height:86px}
  body.v8-2 .countdown-grid b{font-size:1.9rem}
  body.v8-2 .quick-tool b{font-size:.84rem}
  body.v8-2 .quick-tool small{font-size:.59rem}
}

@media (max-width:340px){
  body.v8-2 .brand small{display:none}
  body.v8-2 .brand b{font-size:.72rem}
  body.v8-2 .hero-art-v5{width:min(74vw,252px)}
  body.v8-2 .hero-v5 .hero-name{font-size:1.7rem}
  body.v8-2 .hero-mini-info{grid-template-columns:1fr}
  body.v8-2 .hero-v5 .hero-actions{grid-template-columns:1fr}
  body.v8-2 .mobile-dock small{font-size:.44rem}
}

@media (orientation:landscape) and (max-height:560px) and (max-width:940px){
  body.v8-2 .hero-v5{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;max-width:860px;padding-top:16px}
  body.v8-2 .hero-art-v5{order:1;width:min(34vw,250px);margin:auto}
  body.v8-2 .hero-copy-card{order:2;text-align:left;padding:0 8px}
  body.v8-2 .hero-copy-card .kicker{justify-content:flex-start}
  body.v8-2 .hero-v5 .hero-name{margin-left:0;text-align:left;font-size:2rem}
  body.v8-2 .hero-v5 .verse{margin-left:0}
  body.v8-2 .hero-mini-info,body.v8-2 .hero-v5 .hero-actions{margin-left:0}
}

/* ==========================================================
   ENTERPRISE V8.3 — MOBILE HERO PHOTO PRECISION
   Dedicated responsive photo geometry: image and box share
   the exact same aspect-ratio, radius and clipping context.
   ========================================================== */
@media (max-width:820px){
  body.v8-3 .hero-art-v5{
    width:min(calc(100vw - 44px),390px);
    max-width:390px;
    margin-inline:auto;
  }
  body.v8-3 .hero-art-v5 .gold-frame{
    position:relative;
    width:100%;
    aspect-ratio:4 / 5;
    padding:4px;
    overflow:hidden;
    border-radius:30px;
    box-sizing:border-box;
    background:linear-gradient(145deg,#efd48f 0%,#c58a2c 52%,#9b5b08 100%);
    box-shadow:0 18px 44px rgba(88,56,14,.14),0 0 0 1px rgba(177,112,17,.08);
  }
  body.v8-3 .hero-art-v5 .gold-frame:before{
    content:"";
    position:absolute;
    inset:4px;
    z-index:2;
    border:1px solid rgba(255,255,255,.82);
    border-radius:25px;
    pointer-events:none;
  }
  body.v8-3 .hero-art-v5 .gold-frame picture{
    position:absolute;
    inset:4px;
    display:block;
    width:auto;
    height:auto;
    aspect-ratio:auto;
    overflow:hidden;
    border-radius:25px;
    background:#f8f2e8;
  }
  body.v8-3 .hero-art-v5 .gold-frame picture source{display:none}
  body.v8-3 .hero-art-v5 .gold-frame img{
    display:block;
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    margin:0;
    padding:0;
    object-fit:cover;
    object-position:50% 50%;
    border-radius:0;
    transform:none!important;
  }
  body.v8-3 .hero-art-v5 .floating-seal{
    z-index:4;
    right:-6px;
    bottom:14px;
  }
}

@media (max-width:430px){
  body.v8-3 .hero-art-v5{width:min(calc(100vw - 40px),354px)}
  body.v8-3 .hero-art-v5 .gold-frame{border-radius:27px}
  body.v8-3 .hero-art-v5 .gold-frame:before,
  body.v8-3 .hero-art-v5 .gold-frame picture{border-radius:22px}
}

@media (max-width:360px){
  body.v8-3 .hero-art-v5{width:min(calc(100vw - 34px),320px)}
  body.v8-3 .hero-art-v5 .gold-frame{padding:3px;border-radius:24px}
  body.v8-3 .hero-art-v5 .gold-frame:before,
  body.v8-3 .hero-art-v5 .gold-frame picture{inset:3px;border-radius:20px}
  body.v8-3 .hero-art-v5 .floating-seal{right:-3px;bottom:10px;width:62px;height:62px}
}

@media (orientation:landscape) and (max-width:900px) and (max-height:560px){
  body.v8-3 .hero-art-v5{width:min(32vw,250px)}
}

/* ==========================================================
   ENTERPRISE V8.4 — MOBILE BALANCE & SPACING PRECISION
   Equal left/right gutters, calm vertical rhythm, balanced
   wishes + RSVP composition and dock-safe bottom spacing.
   ========================================================== */
@media (max-width:820px){
  body.v8-4{
    --m-gutter:clamp(14px,4.8vw,22px);
    --m-radius:24px;
    --m-section-gap:clamp(44px,10vw,66px);
  }
  body.v8-4 main{overflow:clip}
  body.v8-4 .section{
    width:auto;
    max-width:none;
    margin-inline:var(--m-gutter);
    padding-block:var(--m-section-gap);
    padding-inline:0;
    box-sizing:border-box;
  }

  /* Wishes: one precise column with identical gutters */
  body.v8-4 .wishes-v5{
    display:block;
    padding-top:clamp(48px,11vw,68px);
    padding-bottom:clamp(42px,10vw,62px);
  }
  body.v8-4 .wish-panel{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px;
    border-radius:var(--m-radius);
    margin:0;
  }
  body.v8-4 .wish-copy{text-align:center}
  body.v8-4 .wish-copy h2{
    font-size:clamp(2rem,9vw,2.85rem);
    line-height:1.02;
    margin:.18em auto .3em;
    max-width:12ch;
  }
  body.v8-4 .wish-copy p{
    max-width:36ch;
    margin:0 auto;
    font-size:.91rem;
    line-height:1.7;
  }
  body.v8-4 .wish-copy .live-badge{margin-top:12px}
  body.v8-4 .wish-form{
    width:100%;
    margin:0;
    padding:18px;
    border-radius:20px;
  }
  body.v8-4 .wish-showcase{
    padding-top:clamp(34px,8vw,48px);
    margin:0;
  }
  body.v8-4 .wish-showcase .section-head{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-items:start;
    margin-bottom:20px;
  }
  body.v8-4 .wish-showcase .section-head>div:first-child{min-width:0}
  body.v8-4 .wish-showcase .section-head h3{
    font-size:clamp(2rem,8.7vw,2.7rem);
    line-height:1.04;
    margin:.2em 0 0;
    max-width:100%;
    text-wrap:balance;
  }
  body.v8-4 .wish-showcase .live-badge{
    justify-self:start;
    margin:0;
  }
  body.v8-4 .wish-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    overflow:visible;
    padding:0;
    margin:0;
  }
  body.v8-4 .wish-card{
    width:100%;
    max-width:none;
    min-height:0;
    margin:0;
    padding:clamp(22px,6vw,30px);
    border-radius:22px;
    scroll-snap-align:none;
    box-shadow:0 18px 44px rgba(73,46,11,.07);
  }
  body.v8-4 .wish-card .quote{
    height:auto;
    margin:0 0 10px;
    font-size:3.15rem;
    line-height:.7;
  }
  body.v8-4 .wish-card p{
    margin:8px 0 20px;
    font-size:clamp(.9rem,3.7vw,1rem);
    line-height:1.72;
  }
  body.v8-4 .wish-card strong{
    padding-top:16px;
    border-top:1px solid var(--line-soft);
    font-size:1rem;
  }
  body.v8-4 .wish-card small{font-size:.74rem;margin-top:6px}

  /* RSVP: centered sacred divider and balanced vertical rhythm */
  body.v8-4 .rsvp-wrap{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
    padding-top:clamp(38px,9vw,54px);
    padding-bottom:calc(clamp(44px,10vw,64px) + 72px + var(--safe-b));
    margin-top:0;
  }
  body.v8-4 .rsvp-copy{
    position:static;
    text-align:center;
    width:100%;
    margin:0 auto;
  }
  body.v8-4 .rsvp-divider{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:14px;
    width:min(100%,420px);
    margin:0 auto 22px;
    color:var(--gold);
  }
  body.v8-4 .rsvp-divider span{height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft))}
  body.v8-4 .rsvp-divider span:last-child{background:linear-gradient(90deg,var(--gold-soft),transparent)}
  body.v8-4 .rsvp-divider b{font:500 1.55rem/1 Georgia,serif}
  body.v8-4 .rsvp-copy .section-label{display:block;text-align:center}
  body.v8-4 .rsvp-copy h2{
    font-size:clamp(2.35rem,10.2vw,3.25rem);
    line-height:.98;
    margin:.2em auto .34em;
    max-width:10ch;
    text-wrap:balance;
  }
  body.v8-4 .rsvp-copy p{
    max-width:35ch;
    margin:0 auto;
    font-size:clamp(.88rem,3.5vw,.98rem);
    line-height:1.72;
  }
  body.v8-4 .rsvp-copy .live-badge{margin-top:14px}
  body.v8-4 .form-card{
    width:100%;
    margin:0;
    padding:20px;
    border-radius:22px;
  }

  /* Header and mobile dock use matching side rhythm */
  body.v8-4 .topbar{
    padding-left:var(--m-gutter);
    padding-right:var(--m-gutter);
  }
  body.v8-4 .mobile-dock{
    left:var(--m-gutter);
    right:var(--m-gutter);
    bottom:calc(8px + var(--safe-b));
    min-height:62px;
    padding:6px;
    border-radius:20px;
    box-shadow:0 16px 42px rgba(62,40,10,.14),0 0 0 1px rgba(177,112,17,.08);
  }
  body.v8-4 .mobile-dock a{
    min-width:0;
    min-height:50px;
    padding:5px 2px;
    border-radius:14px;
  }
  body.v8-4 .mobile-dock span{font-size:1rem}
  body.v8-4 .mobile-dock small{font-size:.52rem;line-height:1.05;margin-top:3px}
}

@media (max-width:390px){
  body.v8-4{--m-gutter:12px}
  body.v8-4 .wish-panel{padding:18px}
  body.v8-4 .wish-card{padding:22px 20px}
  body.v8-4 .wish-showcase .section-head h3{font-size:clamp(1.9rem,9vw,2.35rem)}
  body.v8-4 .rsvp-copy h2{font-size:clamp(2.12rem,10.5vw,2.75rem)}
  body.v8-4 .form-card{padding:17px}
}

@media (max-width:340px){
  body.v8-4{--m-gutter:10px}
  body.v8-4 .wish-panel{padding:16px}
  body.v8-4 .wish-form{padding:15px}
  body.v8-4 .wish-card{padding:20px 17px}
  body.v8-4 .mobile-dock small{font-size:.47rem}
}

/* ==========================================================
   ENTERPRISE V8.5 — SECTION PRECISION & LUXURY TYPOGRAPHY
   Unified rhythm, premium section-title system, symmetric
   mobile gutters and precise card spacing across all sections.
   ========================================================== */
body.v8-5{
  --v85-ink:#29241f;
  --v85-muted:#766f66;
  --v85-gold:#ad6c0e;
  --v85-gold-soft:#e6c98c;
  --v85-line:rgba(175,108,14,.18);
  --v85-line-soft:rgba(175,108,14,.09);
  --v85-card:rgba(255,253,248,.94);
  --v85-shadow:0 22px 62px rgba(63,41,13,.075);
  --v85-shadow-soft:0 12px 32px rgba(63,41,13,.055);
}

/* Global section rhythm */
body.v8-5 .section{
  box-sizing:border-box;
}
body.v8-5 .section:not(.hero-v5){
  padding-top:clamp(72px,7.2vw,104px);
  padding-bottom:clamp(72px,7.2vw,104px);
}
body.v8-5 .intro,
body.v8-5 .countdown,
body.v8-5 .host,
body.v8-5 .location,
body.v8-5 .wish-panel,
body.v8-5 .form-card,
body.v8-5 .map-card,
body.v8-5 .wish-card,
body.v8-5 .event-card,
body.v8-5 .quick-tool{
  border-color:var(--v85-line);
}

/* Premium section label system */
body.v8-5 .section-label{
  color:var(--v85-gold);
  font-weight:850;
  letter-spacing:.22em;
  line-height:1.3;
  text-transform:uppercase;
  text-wrap:balance;
}
body.v8-5 .intro .section-label,
body.v8-5 .countdown .section-label,
body.v8-5 .host-heading .section-label,
body.v8-5 .rsvp-copy .section-label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:max-content;
  max-width:100%;
  margin-inline:auto;
}
body.v8-5 .intro .section-label::before,
body.v8-5 .intro .section-label::after,
body.v8-5 .countdown .section-label::before,
body.v8-5 .countdown .section-label::after,
body.v8-5 .host-heading .section-label::before,
body.v8-5 .host-heading .section-label::after,
body.v8-5 .rsvp-copy .section-label::before,
body.v8-5 .rsvp-copy .section-label::after{
  content:"";
  width:clamp(24px,4vw,56px);
  height:1px;
  background:linear-gradient(90deg,transparent,var(--v85-gold-soft));
  flex:0 0 auto;
}
body.v8-5 .intro .section-label::after,
body.v8-5 .countdown .section-label::after,
body.v8-5 .host-heading .section-label::after,
body.v8-5 .rsvp-copy .section-label::after{
  background:linear-gradient(90deg,var(--v85-gold-soft),transparent);
}
body.v8-5 .gallery-section .section-label,
body.v8-5 .location-copy .section-label,
body.v8-5 .wish-copy .section-label,
body.v8-5 .wish-showcase .section-label{
  display:inline-flex;
  align-items:center;
  gap:11px;
}
body.v8-5 .gallery-section .section-label::after,
body.v8-5 .location-copy .section-label::after,
body.v8-5 .wish-copy .section-label::after,
body.v8-5 .wish-showcase .section-label::after{
  content:"";
  width:42px;
  height:1px;
  background:linear-gradient(90deg,var(--v85-gold-soft),transparent);
}

/* Unified luxury headings */
body.v8-5 .intro h2,
body.v8-5 .countdown h2,
body.v8-5 .gallery-section h2,
body.v8-5 .location h2,
body.v8-5 .host h2,
body.v8-5 .wish-copy h2,
body.v8-5 .wish-showcase h3,
body.v8-5 .rsvp-copy h2{
  color:var(--v85-ink);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:-.038em;
  text-wrap:balance;
  text-shadow:0 1px 0 rgba(255,255,255,.75);
}
body.v8-5 .intro h2,
body.v8-5 .countdown h2,
body.v8-5 .host h2{
  max-width:16ch;
  margin-left:auto;
  margin-right:auto;
}
body.v8-5 .section-head h2,
body.v8-5 .wish-showcase h3{
  margin-top:.22em;
}

/* Event cards: equal geometry and content baseline */
body.v8-5 .premium-info-grid{
  align-items:stretch;
}
body.v8-5 .premium-info-grid .event-card{
  height:100%;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:18px;
}
body.v8-5 .premium-info-grid .event-icon{
  margin:0;
  flex:0 0 auto;
}
body.v8-5 .event-card-copy{
  min-width:0;
}
body.v8-5 .event-card-copy strong{
  color:var(--v85-ink);
  line-height:1.22;
}

/* Countdown precision */
body.v8-5 .countdown{
  position:relative;
  overflow:hidden;
}
body.v8-5 .countdown h2{
  margin-top:12px;
  margin-bottom:30px;
}
body.v8-5 .countdown-grid{
  align-items:stretch;
}
body.v8-5 .countdown-grid>div{
  display:grid;
  align-content:center;
  min-width:0;
}

/* Gallery title and cards */
body.v8-5 .gallery-section .section-head{
  align-items:flex-end;
}
body.v8-5 .gallery-section h2{
  max-width:14ch;
}
body.v8-5 .gallery-item{
  border:1px solid var(--v85-line-soft);
}

/* Location: visual alignment and balanced map card */
body.v8-5 .location{
  align-items:stretch;
}
body.v8-5 .location-copy{
  align-self:center;
}
body.v8-5 .location h2{
  max-width:12ch;
  margin-top:.26em;
  margin-bottom:.26em;
}
body.v8-5 .location p{
  line-height:1.7;
  max-width:42ch;
}
body.v8-5 .location-actions .btn{
  min-width:180px;
}
body.v8-5 .map-card,
body.v8-5 .map-placeholder{
  min-height:100%;
}

/* Host precision */
body.v8-5 .host-heading{
  position:relative;
  z-index:1;
}
body.v8-5 .host-heading h2{
  margin:.24em auto .2em;
}
body.v8-5 .host-list{
  align-items:stretch;
}
body.v8-5 .host-list>div{
  height:100%;
}

/* Wishes: section hierarchy */
body.v8-5 .wish-copy h2{
  max-width:11ch;
}
body.v8-5 .wish-showcase .section-head{
  align-items:flex-end;
}
body.v8-5 .wish-showcase h3{
  max-width:15ch;
}
body.v8-5 .wish-card{
  background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(255,249,239,.95));
  box-shadow:var(--v85-shadow-soft);
}

/* RSVP composition */
body.v8-5 .rsvp-copy h2{
  max-width:10ch;
}
body.v8-5 .rsvp-divider{
  color:var(--v85-gold);
}

/* Desktop symmetry */
@media (min-width:821px){
  body.v8-5 .location,
  body.v8-5 .rsvp-wrap,
  body.v8-5 .wish-panel{
    column-gap:clamp(42px,5vw,72px);
  }
  body.v8-5 .gallery-section .section-head,
  body.v8-5 .wish-showcase .section-head{
    min-height:100px;
  }
}

/* ==========================================================
   MOBILE/TABLET — identical gutters, balanced vertical rhythm
   ========================================================== */
@media (max-width:820px){
  body.v8-5{
    --v85-gutter:clamp(14px,4.8vw,22px);
    --v85-section-y:clamp(48px,11vw,70px);
    --v85-card-radius:clamp(20px,5.2vw,26px);
  }
  body.v8-5 .section:not(.hero-v5){
    width:auto;
    max-width:none;
    margin-left:var(--v85-gutter);
    margin-right:var(--v85-gutter);
    padding-top:var(--v85-section-y);
    padding-bottom:var(--v85-section-y);
  }

  /* Every section heading uses the same mobile hierarchy */
  body.v8-5 .section-label{
    font-size:clamp(.56rem,2.25vw,.68rem);
    letter-spacing:.2em;
  }
  body.v8-5 .intro h2,
  body.v8-5 .countdown h2,
  body.v8-5 .gallery-section h2,
  body.v8-5 .location h2,
  body.v8-5 .host h2,
  body.v8-5 .wish-copy h2,
  body.v8-5 .wish-showcase h3,
  body.v8-5 .rsvp-copy h2{
    font-size:clamp(2rem,8.8vw,2.72rem);
    line-height:1.02;
    letter-spacing:-.042em;
  }

  /* Intro */
  body.v8-5 .intro{
    padding-left:clamp(16px,5vw,24px);
    padding-right:clamp(16px,5vw,24px);
    border-radius:var(--v85-card-radius);
  }
  body.v8-5 .intro p{
    max-width:34ch;
    margin-inline:auto;
    line-height:1.72;
  }

  /* Event cards */
  body.v8-5 .premium-info-grid{
    gap:10px;
  }
  body.v8-5 .premium-info-grid .event-card{
    grid-template-columns:48px minmax(0,1fr);
    gap:13px;
    min-height:110px;
    padding:16px;
    border-radius:20px;
  }
  body.v8-5 .premium-info-grid .event-icon{
    width:46px;
    height:46px;
    border-radius:15px;
  }
  body.v8-5 .event-card-copy span{font-size:.62rem}
  body.v8-5 .event-card-copy strong{font-size:clamp(1rem,4.3vw,1.18rem)}
  body.v8-5 .event-card-copy small{font-size:.72rem;line-height:1.4}

  /* Countdown */
  body.v8-5 .countdown{
    padding-left:clamp(12px,4vw,18px);
    padding-right:clamp(12px,4vw,18px);
    border-radius:var(--v85-card-radius);
  }
  body.v8-5 .countdown h2{margin-bottom:24px}
  body.v8-5 .countdown-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    max-width:380px;
  }
  body.v8-5 .countdown-grid>div{
    min-height:96px;
    border-radius:18px;
  }
  body.v8-5 .countdown-grid b{font-size:clamp(2rem,10vw,2.55rem)}
  body.v8-5 .countdown-note{max-width:32ch;margin-inline:auto;line-height:1.6}

  /* Quick tools */
  body.v8-5 .quick-tools{
    width:auto;
    margin-left:var(--v85-gutter);
    margin-right:var(--v85-gutter);
    padding-left:0;
    padding-right:0;
  }
  body.v8-5 .quick-tool{
    min-height:76px;
    border-radius:20px;
    padding:14px;
  }

  /* Gallery */
  body.v8-5 .gallery-section .section-head{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:18px;
  }
  body.v8-5 .gallery-meta{
    justify-items:start;
    text-align:left;
  }
  body.v8-5 .gallery-meta p{max-width:34ch;line-height:1.55}

  /* Location */
  body.v8-5 .location{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    padding:clamp(20px,5.2vw,28px);
    border-radius:var(--v85-card-radius);
  }
  body.v8-5 .location-copy{
    width:100%;
  }
  body.v8-5 .location h2{
    max-width:11ch;
    font-size:clamp(2rem,9vw,2.65rem);
  }
  body.v8-5 .location p{
    margin-bottom:20px;
    font-size:.88rem;
  }
  body.v8-5 .location-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  body.v8-5 .location-actions .btn{
    width:100%;
    min-width:0;
    min-height:48px;
    border-radius:16px;
  }
  body.v8-5 .map-card{
    min-height:280px;
    border-radius:22px;
  }
  body.v8-5 .map-placeholder{
    min-height:280px;
    padding:24px 18px;
  }
  body.v8-5 .map-placeholder .pin{
    width:64px;height:64px;
  }
  body.v8-5 .map-placeholder strong{
    max-width:12ch;
    font-size:clamp(1.35rem,6.3vw,1.8rem);
    line-height:1.12;
    text-wrap:balance;
  }
  body.v8-5 .map-placeholder span{
    max-width:28ch;
    line-height:1.5;
  }

  /* Host */
  body.v8-5 .host{
    padding-left:clamp(14px,4.4vw,20px);
    padding-right:clamp(14px,4.4vw,20px);
    border-radius:var(--v85-card-radius);
  }
  body.v8-5 .host-heading p{
    max-width:34ch;
    margin-inline:auto;
    line-height:1.65;
  }
  body.v8-5 .host-list{
    gap:10px;
  }
  body.v8-5 .host-list>div{
    min-height:104px;
    border-radius:19px;
    padding:16px;
  }

  /* Wishes */
  body.v8-5 .wishes-v5{
    margin-left:var(--v85-gutter);
    margin-right:var(--v85-gutter);
  }
  body.v8-5 .wish-panel{
    border-radius:var(--v85-card-radius);
  }
  body.v8-5 .wish-copy h2{
    margin:.24em auto .32em;
  }
  body.v8-5 .wish-showcase h3{
    max-width:13ch;
  }
  body.v8-5 .wish-card{
    border-radius:22px;
  }

  /* RSVP */
  body.v8-5 .rsvp-wrap{
    margin-left:var(--v85-gutter);
    margin-right:var(--v85-gutter);
  }
  body.v8-5 .rsvp-copy h2{
    margin:.22em auto .34em;
  }
  body.v8-5 .rsvp-copy p{
    max-width:34ch;
  }

  /* Header + dock share exact gutters */
  body.v8-5 .topbar{
    padding-left:var(--v85-gutter);
    padding-right:var(--v85-gutter);
  }
  body.v8-5 .mobile-dock{
    left:var(--v85-gutter);
    right:var(--v85-gutter);
    bottom:calc(8px + var(--safe-b));
  }
}

@media (max-width:390px){
  body.v8-5{--v85-gutter:12px;--v85-section-y:46px}
  body.v8-5 .section-label{letter-spacing:.17em}
  body.v8-5 .intro h2,
  body.v8-5 .countdown h2,
  body.v8-5 .gallery-section h2,
  body.v8-5 .location h2,
  body.v8-5 .host h2,
  body.v8-5 .wish-copy h2,
  body.v8-5 .wish-showcase h3,
  body.v8-5 .rsvp-copy h2{
    font-size:clamp(1.88rem,9vw,2.38rem);
  }
  body.v8-5 .location{padding:18px 15px}
  body.v8-5 .map-placeholder{padding:22px 14px}
}

@media (max-width:340px){
  body.v8-5{--v85-gutter:10px;--v85-section-y:42px}
  body.v8-5 .intro .section-label::before,
  body.v8-5 .intro .section-label::after,
  body.v8-5 .countdown .section-label::before,
  body.v8-5 .countdown .section-label::after,
  body.v8-5 .host-heading .section-label::before,
  body.v8-5 .host-heading .section-label::after,
  body.v8-5 .rsvp-copy .section-label::before,
  body.v8-5 .rsvp-copy .section-label::after{width:18px}
}

/* ========================================================================
   V8.6 — MOBILE SECTION PRECISION & LUXURY GALLERY
   Focus: equal gutters, premium headings, no cropped/half-visible cards,
   balanced section rhythm and safer bottom-nav clearance on phone screens.
   ======================================================================== */
body.v8-6{
  --v86-gutter:clamp(14px,4.6vw,22px);
  --v86-section-gap:clamp(52px,12vw,74px);
  --v86-radius:24px;
  --v86-card:rgba(255,255,255,.82);
  --v86-line:rgba(184,121,23,.18);
  --v86-shadow:0 18px 50px rgba(83,55,15,.08);
}

/* Universal section rhythm */
body.v8-6 main>.section{
  margin-left:auto;
  margin-right:auto;
}
body.v8-6 .section-head,
body.v8-6 .host-heading,
body.v8-6 .wish-copy,
body.v8-6 .rsvp-copy{
  position:relative;
}
body.v8-6 .section-label,
body.v8-6 .eyebrow,
body.v8-6 .kicker{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.22em;
}
body.v8-6 .section-label::after{
  content:"";
  display:inline-block;
  width:34px;
  height:1px;
  margin-left:10px;
  vertical-align:middle;
  background:linear-gradient(90deg,var(--brand),rgba(184,121,23,0));
}

/* Gallery: title block feels intentional, not stuck to the carousel */
body.v8-6 .gallery-section{
  position:relative;
}
body.v8-6 .gallery-section .section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding:0 2px 8px;
  margin-bottom:24px;
}
body.v8-6 .gallery-section h2{
  max-width:12ch;
  margin:.48rem 0 0;
  line-height:.96;
  letter-spacing:-.05em;
  text-wrap:balance;
}
body.v8-6 .gallery-meta{
  min-width:190px;
  text-align:right;
}
body.v8-6 .gallery-meta>span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 12px;
  border:1px solid var(--v86-line);
  border-radius:999px;
  background:rgba(255,251,243,.9);
  box-shadow:0 7px 20px rgba(80,52,15,.05);
  color:#8b5a0f;
  font-size:.76rem;
  font-weight:800;
}
body.v8-6 .gallery-meta p{
  margin:.65rem 0 0;
}
body.v8-6 .gallery-grid{
  gap:14px;
}
body.v8-6 .gallery-item{
  border-radius:22px;
  background:#f6efe3;
  border:1px solid var(--v86-line);
  box-shadow:var(--v86-shadow);
}
body.v8-6 .gallery-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
body.v8-6 .gallery-item span{
  left:14px;
  right:14px;
  bottom:14px;
  padding:10px 12px;
  border-radius:14px;
  background:linear-gradient(180deg,rgba(25,20,15,.02),rgba(25,20,15,.62));
  backdrop-filter:blur(4px);
  text-shadow:0 1px 8px rgba(0,0,0,.28);
}

/* Location card begins cleanly after gallery */
body.v8-6 .location{
  box-shadow:var(--v86-shadow);
}
body.v8-6 .location-copy h2{
  text-wrap:balance;
}

/* PHONE: remove partial cards and normalize every edge */
@media(max-width:640px){
  body.v8-6{
    padding-bottom:calc(88px + var(--safe-b));
  }
  body.v8-6 .section{
    width:calc(100% - (var(--v86-gutter) * 2));
    padding-top:var(--v86-section-gap);
    padding-bottom:var(--v86-section-gap);
  }

  /* headings: luxury but controlled */
  body.v8-6 .section-label,
  body.v8-6 .eyebrow,
  body.v8-6 .kicker{
    font-size:.62rem;
    line-height:1.3;
    letter-spacing:.23em;
  }
  body.v8-6 .section-label::after{
    width:28px;
    margin-left:8px;
  }
  body.v8-6 .gallery-section h2,
  body.v8-6 .location h2,
  body.v8-6 .host h2,
  body.v8-6 .wish-copy h2,
  body.v8-6 .rsvp-copy h2,
  body.v8-6 .countdown h2,
  body.v8-6 .intro h2{
    font-size:clamp(2rem,9.3vw,2.72rem);
    line-height:.98;
    letter-spacing:-.045em;
    max-width:100%;
  }

  /* Gallery: one full card per row so no 'cut-off' second image */
  body.v8-6 .gallery-section{
    width:calc(100% - (var(--v86-gutter) * 2));
    padding-top:58px;
    padding-bottom:58px;
  }
  body.v8-6 .gallery-section .section-head{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:end;
    gap:10px 12px;
    padding:0;
    margin-bottom:18px;
  }
  body.v8-6 .gallery-section .section-head>div:first-child{
    min-width:0;
  }
  body.v8-6 .gallery-section h2{
    max-width:10ch;
    margin-top:8px;
  }
  body.v8-6 .gallery-meta{
    min-width:auto;
    align-self:end;
    text-align:right;
  }
  body.v8-6 .gallery-meta p{
    display:none;
  }
  body.v8-6 .gallery-meta>span{
    min-height:30px;
    padding:6px 10px;
    font-size:.68rem;
  }
  body.v8-6 .gallery-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:13px;
    overflow:visible;
    padding:0;
    margin:0;
    scroll-snap-type:none;
  }
  body.v8-6 .gallery-item:nth-child(n),
  body.v8-6 .gallery-item:first-child,
  body.v8-6 .gallery-item:nth-child(4n){
    width:100%;
    max-width:none;
    height:auto;
    aspect-ratio:4/5;
    flex:none;
    grid-column:auto;
    grid-row:auto;
    scroll-snap-align:none;
    border-radius:22px;
  }
  body.v8-6 .gallery-item img{
    object-position:center 38%;
  }
  body.v8-6 .gallery-item span{
    left:12px;
    right:12px;
    bottom:12px;
    font-size:.76rem;
  }

  /* Location: exact same gutter / no overlap with dock */
  body.v8-6 .location{
    width:calc(100% - (var(--v86-gutter) * 2));
    margin-top:0;
    margin-bottom:0;
    padding:20px;
    gap:16px;
    border-radius:24px;
  }
  body.v8-6 .location h2{
    max-width:10ch;
    margin:.5rem 0 .6rem;
  }
  body.v8-6 .location p{
    margin:0 0 18px;
    line-height:1.6;
  }
  body.v8-6 .location-actions{
    gap:9px;
  }
  body.v8-6 .location-actions .btn{
    min-height:50px;
    padding:12px 14px;
  }
  body.v8-6 .map-card{
    width:100%;
    min-height:260px;
    margin:0;
  }

  /* Wishes/RSVP: consistent width, one-column, no clipped bottom content */
  body.v8-6 .wishes-v5,
  body.v8-6 .wish-showcase,
  body.v8-6 .rsvp-wrap{
    width:calc(100% - (var(--v86-gutter) * 2));
  }
  body.v8-6 .wish-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    overflow:visible;
    padding:0;
    margin:0;
  }
  body.v8-6 .wish-card{
    width:100%;
    max-width:none;
    min-height:0;
    flex:none;
  }
  body.v8-6 .rsvp-wrap{
    padding-bottom:72px;
  }

  /* dock tracks the same visual gutter */
  body.v8-6 .mobile-dock{
    left:var(--v86-gutter);
    right:var(--v86-gutter);
    bottom:calc(8px + var(--safe-b));
    padding:6px;
    border-radius:20px;
  }
  body.v8-6 .mobile-dock a{
    min-width:0;
    padding:6px 2px;
  }
  body.v8-6 .mobile-dock span{
    font-size:.98rem;
  }
  body.v8-6 .mobile-dock small{
    font-size:.52rem;
    line-height:1.2;
  }
}

@media(max-width:390px){
  body.v8-6{--v86-gutter:12px;--v86-section-gap:48px}
  body.v8-6 .gallery-section .section-head{grid-template-columns:1fr;align-items:start}
  body.v8-6 .gallery-meta{text-align:left}
  body.v8-6 .gallery-item:nth-child(n),body.v8-6 .gallery-item:first-child{aspect-ratio:4/5}
  body.v8-6 .location{padding:18px}
  body.v8-6 .mobile-dock{left:8px;right:8px}
}


/* =========================================================
   V8.7.2 — DESKTOP HERO TYPOGRAPHY PRECISION
   Keeps mobile unchanged while making the PC hero name and
   event title controlled, elegant, and consistently aligned.
   ========================================================= */
body.v8-7-2 .hero-event-title{
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 18px;
  color:var(--gold-deep);
  font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  font-size:clamp(1.08rem,1.35vw,1.48rem);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.025em;
  text-wrap:balance;
}
body.v8-7-2 .hero-event-title strong{font:inherit}
body.v8-7-2 .hero-title-rule{
  flex:0 0 clamp(34px,3vw,52px);
  height:1px;
  background:linear-gradient(90deg,var(--gold),rgba(169,104,12,.18));
}

@media(min-width:1024px){
  body.v8-7-2 .hero-v5{
    grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
    gap:clamp(42px,4.2vw,72px);
  }
  body.v8-7-2 .hero-copy-card{
    min-width:0;
    padding-right:clamp(8px,1.2vw,20px);
  }
  body.v8-7-2 .hero-v5 .hero-name{
    max-width:760px;
    margin:.04em 0 .10em;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(3.35rem,4.25vw,5rem);
    font-weight:700;
    line-height:.96;
    letter-spacing:-.042em;
    text-wrap:balance;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  body.v8-7-2 .hero-v5 .hero-name span{
    display:block;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }
  body.v8-7-2 .hero-v5 .hero-name span+span:before{content:none}
  body.v8-7-2 .hero-v5 .nickname{
    margin-top:8px;
    font-size:clamp(1.4rem,1.7vw,1.85rem);
    line-height:1.1;
  }
  body.v8-7-2 .hero-v5 .verse{
    margin-top:26px;
  }
}

@media(min-width:1440px){
  body.v8-7-2 .hero-v5 .hero-name{font-size:clamp(4.15rem,4.1vw,5rem)}
  body.v8-7-2 .hero-event-title{font-size:1.42rem}
}

@media(max-width:1023px){
  body.v8-7-2 .hero-event-title{
    justify-content:center;
    gap:10px;
    margin-bottom:12px;
    font-size:clamp(.88rem,2.6vw,1.1rem);
  }
  body.v8-7-2 .hero-title-rule{flex-basis:28px}
}

@media(max-width:560px){
  body.v8-7-2 .hero-event-title{
    font-size:.72rem;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
}

/* =========================================================
   V8.8 — LUXURY EDITORIAL EDITION
   Premium desktop hero, typography, cards and section rhythm.
   Mobile precision from V8.7.2 remains intact.
   ========================================================= */
body.v8-8{
  --v88-ink:#211f1b;
  --v88-gold:#9b5f09;
  --v88-gold-2:#c98b2a;
  --v88-line:rgba(155,95,9,.20);
  --v88-soft:#f7ead2;
  --v88-panel:rgba(255,253,248,.90);
}
body.v8-8 .topbar{border-bottom-color:rgba(155,95,9,.13)}
body.v8-8 .brand b{font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;font-weight:700;letter-spacing:.012em}
body.v8-8 .section-label{color:var(--v88-gold);letter-spacing:.22em}
body.v8-8 .intro h2,
body.v8-8 .countdown h2,
body.v8-8 .gallery-section h2,
body.v8-8 .location h2,
body.v8-8 .host h2,
body.v8-8 .wishes h2,
body.v8-8 .rsvp-copy h2,
body.v8-8 .wish-showcase h3{
  color:var(--v88-ink);
  font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  font-weight:700;
  letter-spacing:-.045em;
}
body.v8-8 .section-head h2,
body.v8-8 .section-head h3{ text-wrap:balance; }
body.v8-8 .event-card,
body.v8-8 .quick-tool,
body.v8-8 .wish-card,
body.v8-8 .form-card{
  transition:transform .32s var(--ease),box-shadow .32s var(--ease),border-color .32s var(--ease);
}
body.v8-8 .event-card:hover,
body.v8-8 .quick-tool:hover,
body.v8-8 .wish-card:hover{
  transform:translateY(-4px);
  border-color:rgba(155,95,9,.28);
  box-shadow:0 22px 54px rgba(79,50,12,.10);
}

@media(min-width:1024px){
  body.v8-8 .hero-v5{
    min-height:calc(100dvh - 72px);
    grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
    gap:clamp(52px,5.2vw,92px);
    align-items:center;
    padding-top:clamp(60px,6vw,92px);
    padding-bottom:clamp(72px,7vw,106px);
  }
  body.v8-8 .hero-v5:before{
    inset:24px -34px 30px;
    border-radius:52px;
    background:
      radial-gradient(circle at 10% 14%,rgba(219,177,99,.16),transparent 26%),
      linear-gradient(120deg,rgba(255,250,241,.96),rgba(255,255,255,.76) 55%,rgba(250,239,219,.72));
    border:1px solid rgba(155,95,9,.10);
    box-shadow:0 30px 90px rgba(90,57,14,.065);
  }
  body.v8-8 .hero-copy-card{
    position:relative;
    padding:clamp(40px,4vw,62px) clamp(34px,3.6vw,56px);
    border:1px solid rgba(155,95,9,.14);
    border-radius:34px;
    background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,249,238,.68));
    box-shadow:0 28px 80px rgba(83,52,12,.08);
    overflow:hidden;
  }
  body.v8-8 .hero-copy-card:before{
    content:"";position:absolute;inset:0 auto 0 0;width:4px;
    background:linear-gradient(180deg,transparent,var(--v88-gold-2) 22%,var(--v88-gold) 72%,transparent);
  }
  body.v8-8 .hero-copy-card:after{
    content:"✦";position:absolute;right:28px;top:24px;color:rgba(155,95,9,.26);font-size:1.05rem
  }
  body.v8-8 .hero-event-title{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:13px;
    margin:0 0 22px;
    color:var(--v88-gold);
    font-size:clamp(1.22rem,1.45vw,1.62rem);
    line-height:1.14;
    letter-spacing:.035em;
  }
  body.v8-8 .hero-event-title:after{
    content:"";width:clamp(30px,2.8vw,48px);height:1px;
    background:linear-gradient(90deg,rgba(155,95,9,.25),transparent);
  }
  body.v8-8 .hero-title-rule{background:linear-gradient(90deg,transparent,var(--v88-gold-2));}
  body.v8-8 .hero-v5 .hero-name{
    max-width:780px;
    margin:0 0 12px;
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    font-size:clamp(3.75rem,4.05vw,5.15rem);
    line-height:.91;
    letter-spacing:-.055em;
    color:var(--v88-ink);
  }
  body.v8-8 .hero-v5 .hero-name span{width:auto;max-width:100%}
  body.v8-8 .hero-v5 .nickname{font-size:clamp(1.48rem,1.65vw,1.9rem);color:var(--v88-gold);margin:12px 0 0}
  body.v8-8 .hero-v5 .verse{
    max-width:650px;
    margin:30px 0 26px;
    padding:18px 22px 18px 24px;
    border:1px solid rgba(155,95,9,.12);
    border-left:3px solid var(--v88-gold-2);
    border-radius:0 18px 18px 0;
    background:linear-gradient(90deg,rgba(248,236,213,.74),rgba(255,255,255,.38));
    color:#5e574d;
    box-shadow:0 12px 32px rgba(80,51,12,.04);
  }
  body.v8-8 .hero-mini-info{gap:12px;margin-top:0}
  body.v8-8 .hero-mini-info>div{
    min-height:84px;padding:16px 18px;border-radius:18px;
    background:rgba(255,255,255,.76);border-color:rgba(155,95,9,.14)
  }
  body.v8-8 .hero-actions{margin-top:18px;gap:12px}
  body.v8-8 .hero-actions .btn{min-height:54px;padding-inline:28px}
  body.v8-8 .hero-art-v5{position:relative;width:min(100%,520px);margin-inline:auto}
  body.v8-8 .hero-art-v5 .gold-frame{
    padding:8px;border-radius:38px;
    background:linear-gradient(145deg,#e6bf73 0%,#9e6008 48%,#f3d18d 100%);
    box-shadow:0 40px 90px rgba(84,52,10,.18),0 0 0 1px rgba(255,255,255,.75) inset;
  }
  body.v8-8 .hero-art-v5 .gold-frame:before{border-radius:29px;border-color:rgba(255,255,255,.84)}
  body.v8-8 .hero-art-v5 .gold-frame img{border-radius:29px;filter:saturate(.96) contrast(1.01)}
  body.v8-8 .hero-art-v5 .halo{
    width:120%;height:120%;left:-10%;top:-10%;opacity:.62;
    background:radial-gradient(circle,rgba(230,191,115,.28),rgba(245,228,195,.12) 45%,transparent 70%);
  }
  body.v8-8 .hero-art-v5 .floating-seal{
    width:94px;height:94px;right:-18px;bottom:7%;
    border:1px solid rgba(155,95,9,.24);box-shadow:0 18px 44px rgba(77,48,10,.16)
  }

  body.v8-8 .intro{padding-top:90px;padding-bottom:78px}
  body.v8-8 .intro h2{font-size:clamp(3.1rem,4vw,4.8rem);max-width:920px;margin-inline:auto}
  body.v8-8 .premium-info-grid{gap:18px}
  body.v8-8 .premium-info-grid .event-card{
    min-height:172px;border-radius:28px;padding:28px;
    background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,248,235,.83));
  }
  body.v8-8 .premium-info-grid .event-icon{width:60px;height:60px;border-radius:20px}
  body.v8-8 .premium-info-grid strong{font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;font-size:clamp(1.18rem,1.5vw,1.42rem)}
  body.v8-8 .countdown{
    border-radius:42px;padding-inline:clamp(34px,5vw,76px);
    background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(250,240,221,.62));
    border:1px solid rgba(155,95,9,.12);box-shadow:0 26px 76px rgba(84,52,10,.07)
  }
  body.v8-8 .countdown h2{font-size:clamp(3.4rem,4.3vw,5.15rem)}
  body.v8-8 .countdown-grid>div{border-radius:24px;background:linear-gradient(160deg,#fff,#fff8ea);box-shadow:0 18px 44px rgba(87,55,12,.07)}
  body.v8-8 .quick-tools{gap:20px}
  body.v8-8 .quick-tool{min-height:104px;border-radius:26px;padding:22px 24px}
  body.v8-8 .section-head{margin-bottom:34px}
  body.v8-8 .gallery-section h2{font-size:clamp(3rem,3.9vw,4.6rem)}
  body.v8-8 .gallery-item{border-radius:30px;box-shadow:0 20px 54px rgba(70,46,14,.10)}
  body.v8-8 .location{padding:64px;border-radius:42px;background:linear-gradient(145deg,#fffefa,#fff5e4)}
  body.v8-8 .host{border-radius:42px;padding:76px 46px 56px}
  body.v8-8 .host-list{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1040px;gap:18px}
  body.v8-8 .host-list>div{min-height:180px;flex-direction:column;border:1px solid rgba(155,95,9,.14)!important;border-radius:26px!important;background:linear-gradient(150deg,#fff,#fff8eb)}
  body.v8-8 .wish-showcase .section-head h3{font-size:clamp(2.8rem,3.5vw,4rem)}
  body.v8-8 .wish-card{padding:30px;border-radius:26px;background:linear-gradient(150deg,#fff,#fffaf0)}
  body.v8-8 .rsvp-wrap{padding-top:96px;padding-bottom:104px}
  body.v8-8 .rsvp-copy h2{font-size:clamp(3.4rem,4.2vw,5rem)}
  body.v8-8 .form-card{padding:36px;border-radius:32px;background:rgba(255,255,255,.96)}
}

@media(min-width:1440px){
  body.v8-8 .hero-v5 .hero-name{font-size:5.15rem}
  body.v8-8 .hero-event-title{font-size:1.58rem}
}

@media(max-width:1023px){
  body.v8-8 .hero-event-title{font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif}
}

/* =========================================================
   V8.8.1 — DESKTOP HERO PRECISION FIX
   Prevent name/title clipping on wide PC layouts while keeping
   the editorial luxury hierarchy controlled and balanced.
   ========================================================= */
@media (min-width:1024px){
  body.v8-8-1 .hero-v5{
    grid-template-columns:minmax(620px,1.16fr) minmax(420px,.84fr);
    gap:clamp(34px,3.2vw,58px);
    width:min(1320px,calc(100% - 56px));
  }
  body.v8-8-1 .hero-copy-card{
    min-width:0;
    padding:clamp(38px,3.1vw,52px) clamp(34px,2.7vw,46px);
    overflow:hidden;
  }
  body.v8-8-1 .hero-event-title{
    grid-template-columns:38px minmax(0,1fr) 38px;
    gap:12px;
    font-size:clamp(1.34rem,1.42vw,1.72rem);
    line-height:1.08;
    letter-spacing:.025em;
    margin-bottom:24px;
  }
  body.v8-8-1 .hero-event-title strong{
    display:block;
    min-width:0;
    max-width:520px;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
  }
  body.v8-8-1 .hero-v5 .hero-name{
    width:100%;
    max-width:100%;
    font-size:clamp(3.35rem,3.35vw,4.32rem);
    line-height:.95;
    letter-spacing:-.042em;
    margin:0 0 12px;
    text-wrap:balance;
    overflow:visible;
  }
  body.v8-8-1 .hero-v5 .hero-name span{
    display:block;
    width:100%;
    max-width:100%;
    white-space:nowrap;
  }
  body.v8-8-1 .hero-v5 .nickname{
    font-size:clamp(1.42rem,1.42vw,1.72rem);
    margin-top:10px;
  }
  body.v8-8-1 .hero-art-v5{
    width:min(100%,500px);
  }
}

@media (min-width:1024px) and (max-width:1180px){
  body.v8-8-1 .hero-v5{
    grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
    gap:30px;
    width:min(100% - 36px,1120px);
  }
  body.v8-8-1 .hero-copy-card{padding:34px 30px}
  body.v8-8-1 .hero-v5 .hero-name{font-size:clamp(3rem,4.2vw,3.8rem)}
  body.v8-8-1 .hero-v5 .hero-name span{white-space:normal}
  body.v8-8-1 .hero-event-title{font-size:1.28rem}
}

@media (min-width:1600px){
  body.v8-8-1 .hero-v5{width:min(1380px,calc(100% - 72px));}
  body.v8-8-1 .hero-v5 .hero-name{font-size:4.45rem;}
  body.v8-8-1 .hero-art-v5{width:min(100%,520px)}
}

/* =========================================================
   V8.8.2 — DESKTOP HERO SAFE-FIT PRECISION
   Final override: name must NEVER clip on PC. Two controlled
   editorial lines, container-aware sizing, balanced title/photo.
   ========================================================= */
@media (min-width:1024px){
  body.v8-8-2 .hero-v5{
    width:min(1320px,calc(100% - 64px));
    grid-template-columns:minmax(0,1.08fr) minmax(410px,.92fr);
    gap:clamp(38px,3.2vw,58px);
    align-items:center;
  }
  body.v8-8-2 .hero-copy-card{
    container-type:inline-size;
    min-width:0;
    width:100%;
    overflow:visible;
    padding:clamp(34px,3vw,48px) clamp(30px,2.5vw,42px);
  }
  body.v8-8-2 .hero-event-title{
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:12px;
    margin-bottom:22px;
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    font-size:clamp(1.45rem,2.9cqw,1.9rem);
    line-height:1.08;
    letter-spacing:.02em;
  }
  body.v8-8-2 .hero-event-title strong{
    display:block;
    min-width:0;
    max-width:100%;
    white-space:normal;
    text-wrap:balance;
    overflow:visible;
  }
  body.v8-8-2 .hero-v5 .hero-name{
    width:100%;
    max-width:none;
    margin:0 0 10px;
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    font-size:clamp(2.75rem,8.25cqw,4.15rem);
    line-height:.94;
    letter-spacing:-.038em;
    text-wrap:balance;
    overflow:visible;
  }
  body.v8-8-2 .hero-v5 .hero-name span{
    display:block;
    width:100%;
    max-width:100%;
    white-space:nowrap;
    overflow:visible;
  }
  body.v8-8-2 .hero-v5 .nickname{
    font-size:clamp(1.35rem,3.35cqw,1.72rem);
    margin-top:8px;
  }
  body.v8-8-2 .hero-v5 .verse{
    max-width:100%;
    margin:26px 0 24px;
  }
  body.v8-8-2 .hero-art-v5{
    width:min(100%,500px);
    justify-self:center;
  }
}

@media (min-width:1024px) and (max-width:1180px){
  body.v8-8-2 .hero-v5{
    width:min(100% - 36px,1120px);
    grid-template-columns:minmax(0,1.04fr) minmax(370px,.96fr);
    gap:28px;
  }
  body.v8-8-2 .hero-copy-card{padding:30px 26px}
  body.v8-8-2 .hero-event-title{font-size:clamp(1.25rem,3.2cqw,1.5rem)}
  body.v8-8-2 .hero-v5 .hero-name{font-size:clamp(2.55rem,8.15cqw,3.5rem)}
}

@media (min-width:1440px){
  body.v8-8-2 .hero-v5{width:min(1360px,calc(100% - 72px))}
  body.v8-8-2 .hero-copy-card{padding:46px 44px}
  body.v8-8-2 .hero-art-v5{width:min(100%,520px)}
}


/* =========================================================
   V8.8.3 — AUDITED DESKTOP HERO FINAL SAFE-FIT
   Conservative viewport-based typography to avoid clipping on
   browsers that handle container units differently. This block
   intentionally overrides all earlier V8.8 desktop hero rules.
   ========================================================= */
@media (min-width:1024px){
  body.v8-8-3 .hero-v5{
    width:min(1340px,calc(100% - 56px));
    grid-template-columns:minmax(0,1.12fr) minmax(400px,.88fr);
    gap:clamp(32px,3vw,52px);
    overflow:visible;
  }
  body.v8-8-3 .hero-copy-card{
    min-width:0;
    width:100%;
    overflow:visible;
    container-type:normal;
    padding:clamp(34px,2.8vw,48px) clamp(30px,2.5vw,44px);
  }
  body.v8-8-3 .hero-event-title{
    grid-template-columns:32px minmax(0,1fr) 32px;
    gap:12px;
    margin-bottom:22px;
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    font-size:clamp(1.32rem,1.45vw,1.62rem);
    line-height:1.12;
    letter-spacing:.018em;
  }
  body.v8-8-3 .hero-event-title strong{
    display:block;
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow:visible;
    text-wrap:balance;
  }
  body.v8-8-3 .hero-v5 .hero-name{
    width:100%;
    max-width:100%;
    margin:0 0 10px;
    font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
    font-size:clamp(3rem,4vw,4.05rem);
    line-height:.96;
    letter-spacing:-.035em;
    overflow:visible;
    text-wrap:balance;
  }
  body.v8-8-3 .hero-v5 .hero-name span{
    display:block;
    width:auto;
    max-width:100%;
    white-space:nowrap;
    overflow:visible;
  }
  body.v8-8-3 .hero-v5 .nickname{
    margin-top:8px;
    font-size:clamp(1.34rem,1.45vw,1.7rem);
  }
  body.v8-8-3 .hero-v5 .verse{
    width:100%;
    max-width:100%;
    margin:25px 0 22px;
  }
  body.v8-8-3 .hero-mini-info{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.v8-8-3 .hero-actions{flex-wrap:wrap;}
  body.v8-8-3 .hero-art-v5{
    width:min(100%,510px);
    justify-self:center;
  }
}
@media (min-width:1024px) and (max-width:1180px){
  body.v8-8-3 .hero-v5{
    width:min(100% - 32px,1140px);
    grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);
    gap:24px;
  }
  body.v8-8-3 .hero-copy-card{padding:30px 26px;}
  body.v8-8-3 .hero-v5 .hero-name{font-size:clamp(2.7rem,4.55vw,3.35rem);}
  body.v8-8-3 .hero-event-title{font-size:clamp(1.18rem,1.8vw,1.36rem);}
  body.v8-8-3 .hero-art-v5{width:min(100%,450px);}
}
@media (min-width:1440px){
  body.v8-8-3 .hero-v5{width:min(1380px,calc(100% - 72px));}
  body.v8-8-3 .hero-v5 .hero-name{font-size:4.05rem;}
  body.v8-8-3 .hero-event-title{font-size:1.58rem;}
  body.v8-8-3 .hero-art-v5{width:min(100%,520px);}
}


/* =========================================================
   V8.8.4 — GALLERY HEADING PRECISION
   Desktop/tablet gallery header rebuilt so the title stays on
   one elegant line whenever space allows, with consistent
   alignment between label, title, count and supporting note.
   ========================================================= */
body.v8-8-4 .gallery-section .section-head{
  position:relative;
}
body.v8-8-4 .gallery-section .section-label{
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin:0;
  color:var(--v88-gold,#9b5f09);
  font-weight:800;
  letter-spacing:.22em;
}
body.v8-8-4 .gallery-section .section-label::after{
  content:"";
  width:44px;
  height:1px;
  background:linear-gradient(90deg,rgba(155,95,9,.55),rgba(155,95,9,0));
}
body.v8-8-4 .gallery-section h2{
  max-width:none;
  margin:.42rem 0 0;
  color:var(--v88-ink,#211f1b);
  font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  font-weight:700;
  letter-spacing:-.045em;
  line-height:.94;
  text-wrap:normal;
}

@media (min-width:1024px){
  body.v8-8-4 .gallery-section{
    padding-top:82px;
  }
  body.v8-8-4 .gallery-section .section-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:44px;
    padding:0 2px 18px;
    margin-bottom:30px;
  }
  body.v8-8-4 .gallery-section .section-head>div:first-child{
    min-width:0;
  }
  body.v8-8-4 .gallery-section h2{
    white-space:nowrap;
    font-size:clamp(3rem,4vw,4.35rem);
  }
  body.v8-8-4 .gallery-meta{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:18px;
    text-align:right;
  }
  body.v8-8-4 .gallery-meta>span{
    flex:0 0 auto;
    min-height:38px;
    padding:9px 14px;
    border-radius:999px;
    font-size:.78rem;
    letter-spacing:.02em;
  }
  body.v8-8-4 .gallery-meta p{
    max-width:36ch;
    margin:0;
    line-height:1.5;
    color:#766e63;
  }
}

@media (min-width:768px) and (max-width:1023px){
  body.v8-8-4 .gallery-section .section-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:24px;
    margin-bottom:24px;
  }
  body.v8-8-4 .gallery-section h2{
    white-space:nowrap;
    font-size:clamp(2.45rem,5.4vw,3.35rem);
  }
  body.v8-8-4 .gallery-meta p{display:none;}
}

@media (max-width:767px){
  body.v8-8-4 .gallery-section .section-head{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:end;
    gap:14px;
    padding-bottom:10px;
  }
  body.v8-8-4 .gallery-section h2{
    max-width:100%;
    font-size:clamp(2rem,9.2vw,2.7rem);
    line-height:.98;
    letter-spacing:-.035em;
    text-wrap:balance;
  }
  body.v8-8-4 .gallery-meta{
    min-width:0;
    align-self:end;
  }
  body.v8-8-4 .gallery-meta p{display:none;}
}

@media (max-width:390px){
  body.v8-8-4 .gallery-section .section-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  body.v8-8-4 .gallery-meta{
    justify-self:start;
    text-align:left;
  }
  body.v8-8-4 .gallery-section h2{
    font-size:clamp(1.95rem,10.2vw,2.35rem);
  }
}


/* =========================================================
   V8.8.5 — AUDITED STABILITY SAFEGUARDS
   Final non-destructive guards after repeated regression audit.
   ========================================================= */
body.v8-8-4 .hero-v5,
body.v8-8-4 .hero-copy-card,
body.v8-8-4 .hero-v5 .hero-name,
body.v8-8-4 .hero-v5 .hero-name span,
body.v8-8-4 .gallery-section .section-head,
body.v8-8-4 .gallery-section .section-head > *{
  min-width:0;
}
@media (min-width:1024px){
  body.v8-8-4 .hero-v5 .hero-name{
    font-size:clamp(2.55rem,3.45vw,3.82rem);
    line-height:.98;
    max-width:100%;
  }
  body.v8-8-4 .hero-v5 .hero-name span{
    max-width:100%;
    white-space:nowrap;
  }
  body.v8-8-4 .gallery-section .section-head{
    max-width:100%;
  }
  body.v8-8-4 .gallery-section h2{
    max-width:100%;
  }
}
@media (max-width:1023px){
  body.v8-8-4 .hero-v5 .hero-name span{
    white-space:normal;
  }
}
@media (max-width:767px){
  body.v8-8-4 .gallery-section .section-head{
    width:100%;
  }
  body.v8-8-4 .gallery-section .section-head > div:first-child{
    overflow:hidden;
  }
  body.v8-8-4 .gallery-section h2{
    overflow-wrap:normal;
    word-break:normal;
  }
}
