/* Royal typography and an optional midnight-gold presentation layer.
   This file loads last so the invitation's existing layout and interactions
   remain intact while visual tokens can be changed as one coherent theme. */
:root{
  --display:"Lora","Cormorant Garamond",Georgia,"Noto Serif Kannada",serif;
  --ceremonial:"Poppins","Cormorant Garamond",Georgia,serif;
  --serif:"Lora",Georgia,"Noto Serif Kannada",serif;
  --body:"Poppins",Arial,"Noto Serif Kannada",sans-serif;
  --royal-gold:#c69a43;
  --royal-gold-light:#f1d68d;
  --royal-champagne:#f6e8c4;
  --royal-black:#090806;
  --royal-black-soft:#11100d;
  color-scheme:light;
}

h1,h2,h3,.couple-names,.footer-names,.event-label,.event-date strong,.date-reveal strong{font-family:var(--display);font-weight:500}
.couple-names,.cover-content h1{letter-spacing:-.055em}
.hero-invite,.cover-invite,.vintage-copy p:not(.eyebrow),.moment-caption h3,.playful-caption,.photo-card figcaption,.blessing-message,.blessing-signoff{font-family:var(--serif)}
.eyebrow,.cover-date,.hero-date,.story-tag,.character-prompt,.event-year{font-family:var(--ceremonial);font-weight:600;letter-spacing:.17em}
.button,.controls,.gallery-toolbar,.event-note,.countdown-label{font-family:var(--body)}

/* Opening cover: sized as the focal object, with a clear editorial rhythm. */
@media(min-width:601px){
  .opening{padding-block:18px}
  .opening .cover-wrap{width:clamp(340px,calc((100svh - 270px) * .6667),410px)}
  .opening .devotional-invocation{margin-bottom:14px}
  .opening .cover-content{inset:8.5% 16% 25%;justify-content:flex-start;padding-top:clamp(10px,3cqi,16px);gap:clamp(8px,2.4cqi,12px)}
  .opening .cover-crest{width:clamp(78px,24cqi,104px)}
  .opening .cover-content .eyebrow{font-size:clamp(.6rem,2.2cqi,.72rem);letter-spacing:.13em}
  .opening .cover-content h1{font-size:clamp(2.15rem,8cqi,2.55rem);line-height:.9;letter-spacing:-.055em}
  .opening .cover-content h1 em{margin:.26em 0;font-size:.31em}
  .opening .cover-invite{font-size:clamp(.74rem,2.8cqi,.88rem);line-height:1.35}
  .opening .cover-date{font-size:clamp(.62rem,2.1cqi,.72rem);letter-spacing:.18em;margin-top:2px}
  .opening .cover-content .open-button{min-height:46px;max-width:242px;margin-top:3px;padding-block:10px;font-size:.84rem}
  .opening-options{padding-top:13px}
}

/* The cover is an invitation, never a blank animation frame. Keep its
   essential wording visible immediately in both colour themes. */
.opening .sequence-crest,.opening .sequence-guest,.opening .sequence-title,.opening .sequence-invite,.opening .sequence-date,.opening .sequence-open{animation:none!important;opacity:1!important;transform:none!important}

.theme-toggle{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:5px 9px;border:1px solid #bd913d66;color:var(--wine);white-space:nowrap;transition:color .3s ease,background .3s ease,border-color .3s ease}
.theme-toggle:hover{background:#bd913d12;border-color:var(--gold)}
.theme-toggle-icon{position:relative;display:grid;place-items:center;width:18px;height:18px;color:var(--gold);font:1.2rem/1 Georgia,serif}
.theme-sun,.theme-moon{position:absolute;transition:opacity .35s ease,transform .45s var(--ease)}
.theme-sun{opacity:0;transform:rotate(-35deg) scale(.65)}
.theme-moon{opacity:1;transform:none}
.theme-toggle-label{font-size:.8125rem}

html[data-theme=dark]{color-scheme:dark;--ivory:#0b0a08;--paper:#12100c;--wine:#dfb85c;--wine-deep:#050504;--ink:#f0d990;--muted:#c9b98e;--gold:#d2aa50;--gold-light:#f4d98d;--green:#11100c;--champagne:#d8b968;--champagne-light:#f2d997;--blush:#b89155;--blush-deep:#8e6b35;--rose:#d3aa51;--glow-gold:#f5d77e}
html[data-theme=dark] body{background:radial-gradient(circle at 50% -12%,#241d0f 0%,#0e0c08 34%,#050504 74%);color:var(--royal-champagne)}
html[data-theme=dark] .theme-toggle{color:#f1d68d;background:#d2aa500c;border-color:#d2aa506b}
html[data-theme=dark] .theme-sun{opacity:1;transform:none}
html[data-theme=dark] .theme-moon{opacity:0;transform:rotate(35deg) scale(.65)}

/* Keep the opening's outer rose scene unchanged. Midnight styling belongs
   only to the invitation artwork and copy within the card. */
html[data-theme=dark] .opening{background:radial-gradient(ellipse at 50% 30%,#7a2a3a 0%,#44131e 55%,#2c0c14 100%)}
html[data-theme=dark] .opening-glow{background:radial-gradient(ellipse at 50% 38%,#c98a5866,transparent 58%),radial-gradient(circle at 15% 85%,#c9737f2e,transparent 40%),radial-gradient(circle at 85% 20%,#e9cf9422,transparent 38%),linear-gradient(125deg,#38151c,#792e3b 52%,#3e141e)}
html[data-theme=dark] .opening .invitation-card{box-shadow:0 24px 90px #000c,0 0 0 1px #e5bd626e,0 0 58px #d2aa5017}
html[data-theme=dark] .opening .cover-content{inset:10% 12% 32%;padding-inline:clamp(10px,3cqi,18px);background:transparent;border:none;box-shadow:none}
html[data-theme=dark] .opening .cover-content h1{color:#671e2c!important;text-shadow:none!important}
html[data-theme=dark] .opening .cover-content .eyebrow,html[data-theme=dark] .opening .cover-date{color:#671e2c!important;text-shadow:none!important}
html[data-theme=dark] .opening .cover-invite{color:#3e3027!important;text-shadow:none!important}
html[data-theme=dark] .opening .cover-content .open-button{color:#fff0c5;background:linear-gradient(135deg,#5e4111,#211606);border-color:#f1cf77;box-shadow:0 7px 22px #000a,0 0 16px #d2aa502e}
html[data-theme=dark] .opening .opening-options .silent-button,html[data-theme=dark] .opening .opening-options .skip-intro{color:#f1d68d}

/* Keep the monogram heart as a quiet frame around the names on phones. */
.opening .hu-outline{width:clamp(140px,35cqi,200px)}
@media(min-width:601px){.opening .hu-outline{width:clamp(200px,40cqi,280px)}}

html[data-theme=dark] h1,html[data-theme=dark] h2,html[data-theme=dark] h3,html[data-theme=dark] .couple-names,html[data-theme=dark] .footer-names,html[data-theme=dark] .event-label,html[data-theme=dark] .event-date strong{color:#e4bc61;text-shadow:0 1px 18px #d2aa5012}
html[data-theme=dark] .eyebrow,html[data-theme=dark] .cover-date,html[data-theme=dark] .hero-date,html[data-theme=dark] .story-tag,html[data-theme=dark] .character-prompt{color:#d6ad55}
html[data-theme=dark] .section-heading>p:last-child:not(.eyebrow),html[data-theme=dark] .moment-caption p,html[data-theme=dark] .blessing-note,html[data-theme=dark] .music-credit,html[data-theme=dark] .gallery-toolbar{color:#cbbd98}
html[data-theme=dark] a{color:#ecd083}

html[data-theme=dark] .topbar{background:linear-gradient(90deg,#090806f5,#151108f2,#090806f5);border-bottom-color:#d2aa5048;box-shadow:0 10px 34px #0009}
html[data-theme=dark] .brand img,html[data-theme=dark] .cover-crest,html[data-theme=dark] .blessing-crest{filter:sepia(.22) saturate(1.2) drop-shadow(0 4px 8px #d2aa5026)}
html[data-theme=dark] .sound-button,html[data-theme=dark] .sfx-button,html[data-theme=dark] .text-button,html[data-theme=dark] .language-menu>summary{color:#e7ca80}
html[data-theme=dark] .equalizer i{background:#d2aa50}
html[data-theme=dark] .language-menu>summary{border-color:#d2aa5055}
html[data-theme=dark] .language-options{background:#100e0a;border-color:#d2aa5060;box-shadow:0 18px 36px #000b}
html[data-theme=dark] .language-options .language{color:#cabc96}
html[data-theme=dark] .language-options .language:hover,html[data-theme=dark] .language-options .language.active{color:#f0d990;background:#d2aa5018}

html[data-theme=dark] .hero:before{background:radial-gradient(ellipse at 68% 45%,#d2aa5025,transparent 52%),radial-gradient(ellipse at 35% 70%,#806d3a14,transparent 48%)}
html[data-theme=dark] .story{border-top-color:#d2aa5038}
html[data-theme=dark] .portrait-arch,html[data-theme=dark] .story-photo,html[data-theme=dark] .photo-open,html[data-theme=dark] .mini-couple-portrait,html[data-theme=dark] .radha-krishna-blessing{background:linear-gradient(145deg,#17140d,#080705);border-color:#d2aa508f;box-shadow:0 0 0 1px #f0d99013,0 20px 48px #0009}
html[data-theme=dark] .heart-moment .story-photo{box-shadow:0 0 0 1px #d2aa5099,0 0 0 7px #d2aa5015,0 22px 48px #000a}
html[data-theme=dark] .portrait-heart-glow,html[data-theme=dark] .names-heart-glow{opacity:.3}
html[data-theme=dark] .gold-rule:before,html[data-theme=dark] .gold-rule:after{background:linear-gradient(90deg,transparent,#846d38,#e0b95d)}

html[data-theme=dark] .vintage,html[data-theme=dark] .celebration{background:radial-gradient(circle at 78% 20%,#2b2311 0%,#11100c 34%,#060605 78%);border-color:#d2aa5060}
html[data-theme=dark] .vintage:before{border-color:#d2aa5045}
html[data-theme=dark] .vintage-copy p:not(.eyebrow),html[data-theme=dark] .family-invite{color:#ead9ad}
html[data-theme=dark] .family-memory,html[data-theme=dark] .details-note,html[data-theme=dark] .host-address{color:#cdbd92}
html[data-theme=dark] .character-stage{background:radial-gradient(ellipse at 50% 72%,#d2aa5022,transparent 52%),radial-gradient(circle at 16% 10%,#5b481c22,transparent 35%),linear-gradient(135deg,#11100c,#080705 48%,#161207);border-color:#d2aa5080;box-shadow:0 24px 52px #000a,inset 0 0 55px #d2aa500a}
html[data-theme=dark] .stage-border{border-color:#d2aa504f}
html[data-theme=dark] .film-video{background:#0d0b08}

html[data-theme=dark] .photo-track:before,html[data-theme=dark] .photo-track:after{background:linear-gradient(90deg,#090806,transparent)}
html[data-theme=dark] .photo-card figcaption,html[data-theme=dark] .playful-caption,html[data-theme=dark] .mini-couple-portrait figcaption,html[data-theme=dark] .radha-krishna-blessing figcaption,html[data-theme=dark] .blessing-signoff,html[data-theme=dark] .blessing-count{color:#e4c878}
html[data-theme=dark] .gallery-arrow{color:#ebcf82;border-color:#d2aa5066;background:#100e0a}
html[data-theme=dark] .gallery-progress{background:#d2aa5028}
html[data-theme=dark] .gallery-progress span{background:#d2aa50}

html[data-theme=dark] .event-panel,html[data-theme=dark] .date-card,html[data-theme=dark] .date-reveal{background:linear-gradient(145deg,#17140d,#090806);color:#ead08a;border-color:#d2aa5078;outline-color:#d2aa5038}
html[data-theme=dark] .event-item{border-color:#d2aa5030}
html[data-theme=dark] .event-date,html[data-theme=dark] .event-copy time,html[data-theme=dark] .event-year{color:#e4bc61}
html[data-theme=dark] .event-note,html[data-theme=dark] .countdown-label{color:#bfae81}
html[data-theme=dark] .clock-unit{background:#0c0a07;border-color:#d2aa5045}
html[data-theme=dark] .clock-unit b{color:#edcf7e}
html[data-theme=dark] .clock-unit small{color:#bda971}
html[data-theme=dark] .rsvp-card{background:#100e0a;color:#ead9ad;border-color:#d2aa5070}
html[data-theme=dark] .rsvp-backdrop{background:#030302d9}
html[data-theme=dark] .rsvp-card{background:linear-gradient(145deg,#1b160d,#0d0b07 72%);color:#ead9ad;border-color:#d2aa5070;box-shadow:0 25px 80px #000d,inset 0 1px #f4d98d18}
html[data-theme=dark] .rsvp-card h3{color:#e4bc61}
html[data-theme=dark] .rsvp-close{background:#17130b;color:#f0d990;border-color:#d2aa5066}
html[data-theme=dark] .rsvp-close:hover,html[data-theme=dark] .rsvp-close:focus-visible{background:#2a210f}
html[data-theme=dark] .rsvp-card fieldset label{background:#17130bcc;border-color:#d2aa5040;color:#ead9ad}
html[data-theme=dark] .rsvp-field input,html[data-theme=dark] .rsvp-field textarea{background:#080705;color:#f0d990;border-color:#d2aa505c;caret-color:#f0d990}
html[data-theme=dark] .rsvp-field input::placeholder,html[data-theme=dark] .rsvp-field textarea::placeholder{color:#9e8d64}
html[data-theme=dark] .rsvp-field input:focus,html[data-theme=dark] .rsvp-field textarea:focus{outline-color:#d2aa50}
html[data-theme=dark] .consent-field,html[data-theme=dark] .rsvp-note,html[data-theme=dark] .rsvp-status{color:#c7b88e}

/* The blessing chapter has its own dark palette so the wall, cards, and
   submission form do not fall back to the light paper treatment. */
html[data-theme=dark] .blessing{background:radial-gradient(circle at 50% 12%,#2a210f 0%,transparent 43%),linear-gradient(180deg,#0b0906 0%,#12100b 100%);border-top:1px solid #d2aa5038}
html[data-theme=dark] .blessing-wall{background:radial-gradient(circle at 50% 0%,#2b2210 0%,#141108 44%,#080705 100%);border-top-color:#d2aa5050}
html[data-theme=dark] .blessing-wall .section-heading>p:last-child:not(.eyebrow),html[data-theme=dark] .blessing-wall-empty{color:#cbbd98}
html[data-theme=dark] .blessing-note-card{border-color:#d2aa507a;background:radial-gradient(circle at 88% 14%,#d2aa5028,transparent 25%),linear-gradient(145deg,#1a160d,#11100b 58%,#0a0806);box-shadow:0 18px 32px #0009,0 0 0 5px #d2aa5012,inset 0 1px #f4d98d18}
html[data-theme=dark] .blessing-note-card:before{color:#d2aa50b8}
html[data-theme=dark] .blessing-note-card:after{color:#d2aa5078}
html[data-theme=dark] .blessing-note-card:hover,html[data-theme=dark] .blessing-note-card:focus-within{box-shadow:0 22px 42px #000b,0 0 0 6px #d2aa5022,inset 0 1px #f4d98d25}
html[data-theme=dark] .blessing-note-card blockquote{color:#f0d990}
html[data-theme=dark] .blessing-note-card cite{color:#d8bb72}
html[data-theme=dark] .blessing-wall-arrow{color:#e8c873;border-color:#d2aa5060;background:#100e0acc}
html[data-theme=dark] .blessing-wall-arrow:hover{background:#241c0d;border-color:#d2aa50}
html[data-theme=dark] .blessing-order-note,html[data-theme=dark] .blessing-note-card time{color:#c7b88e}
html[data-theme=dark] .blessing-latest-badge{color:#f0d990;border-color:#d2aa5066;background:#d2aa5019}
html[data-theme=dark] .blessing-note-meta{border-top-color:#d2aa5030}
html[data-theme=dark] .blessing-read-more{color:#e8c873}
html[data-theme=dark] .blessing-read-more:hover{color:#f4d98d}
html[data-theme=dark] .blessing-note-dialog-backdrop{background:#030302e8}
html[data-theme=dark] .blessing-note-dialog-card{color:#ead9ad;border-color:#d2aa5070;background:radial-gradient(circle at 92% 8%,#d2aa5024,transparent 25%),linear-gradient(145deg,#1b160d,#0d0b07 72%);box-shadow:0 25px 90px #000e,inset 0 1px #f4d98d18}
html[data-theme=dark] .blessing-note-dialog-card h3,html[data-theme=dark] .blessing-note-dialog-card blockquote{color:#f0d990}
html[data-theme=dark] .blessing-note-dialog-card blockquote{border-block-color:#d2aa5038}
html[data-theme=dark] .blessing-note-dialog-card time{color:#c7b88e}
html[data-theme=dark] .blessing-note-dialog-close{background:#17130b;color:#f0d990;border-color:#d2aa5066}
html[data-theme=dark] .blessing-note-dialog-close:hover{background:#2a210f}
html[data-theme=dark] .instagram-follow{color:#e8c873;border-color:#d2aa5060;background:#100e0acc}
html[data-theme=dark] .instagram-follow:hover{background:#241c0d;border-color:#d2aa50}
html[data-theme=dark] .instagram-follow small{color:#c7b88e}

html[data-theme=dark] .heart-joiner{border-color:#d2aa5070;background:linear-gradient(135deg,#1b160dcc,#0d0b07d9);box-shadow:0 16px 38px #000b,inset 0 1px #f4d98d18}
html[data-theme=dark] .heart-joiner:before{background:radial-gradient(circle at 50% 55%,#d2aa502b,transparent 42%)}
html[data-theme=dark] .heart-joiner h3,html[data-theme=dark] .heart-joiner-message{color:#f0d990}
html[data-theme=dark] .heart-joiner-stage{border-color:#d2aa504d;background:linear-gradient(90deg,#1b160d99,#d2aa5015,#1b160d99)}
html[data-theme=dark] .heart-joiner-stage:before{background:linear-gradient(180deg,transparent,#d2aa50a8,transparent)}
html[data-theme=dark] .heart-joiner-thread{color:#d2aa50a8}
html[data-theme=dark] .heart-token{color:#f0d990;color-scheme:dark}
html[data-theme=dark] .heart-token-glyph{color:#d85c70;text-shadow:0 3px 11px #d85c7044}
html[data-theme=dark] .heart-joiner-hint{color:#c7b88e}
html[data-theme=dark] .heart-joiner.is-joined{box-shadow:0 16px 38px #000b,0 0 0 5px #d2aa502b,0 0 34px #d2aa5066,inset 0 1px #f4d98d18}
html[data-theme=dark] .heart-joiner-stage.is-joined:before{background:linear-gradient(180deg,transparent,#e9cf94,transparent)}
html[data-theme=dark] .heart-joiner-stage.is-joined .heart-token-glyph{color:#ef7890;text-shadow:0 0 18px #e9cf94,0 3px 12px #d85c7066}
html[data-theme=dark] .interactive-flower{color:#e9cf94;text-shadow:0 0 9px #ffe4a8aa}
html[data-theme=dark] .blessing-note-card.is-new-arrival{animation-name:blessing-card-arrive,blessing-card-glow-dark}
@keyframes blessing-card-glow-dark{0%,100%{box-shadow:0 18px 32px #0009,0 0 0 5px #d2aa5012}22%{box-shadow:0 20px 46px #000d,0 0 0 7px #d2aa5055,0 0 38px #e9cf94aa}65%{box-shadow:0 20px 42px #000b,0 0 0 5px #d2aa502b,0 0 22px #d2aa5066}}

html[data-theme=dark] .button{color:#e8c873;border-color:#d2aa5075;background:linear-gradient(135deg,#17130b,#090806)}
html[data-theme=dark] .button.primary{color:#0b0905;background:linear-gradient(135deg,#f0d37e,#b8872d);border-color:#f5dea0;box-shadow:0 10px 30px #0008,0 0 24px #d2aa5020}
html[data-theme=dark] .button.primary:hover{background:linear-gradient(135deg,#f6df9e,#c99a3e)}
html[data-theme=dark] footer{background:linear-gradient(135deg,#080705,#17130b,#080705);border-top-color:#d2aa5045;color:#cdbc91}
html[data-theme=dark] .toast{background:#090806;color:#f0d990;border-color:#d2aa5070}
html[data-theme=dark] .toast.is-heart-message{background:linear-gradient(135deg,#2b1118,#531b2c);color:#f6df9f;border-color:#d2aa50;box-shadow:0 14px 42px #000d,0 0 26px #d2aa5066}

@media(max-width:850px){.theme-toggle-label{display:none}.theme-toggle{width:40px;justify-content:center;padding-inline:7px}}
@media(max-width:600px){
  .opening .cover-wrap{width:min(390px,calc((100svh - 260px) * .6667),calc(100vw - 28px))}
  .opening .cover-content{inset:8% 13% auto;height:74%;gap:clamp(6px,2cqi,10px);padding-top:clamp(18px,5cqi,25px)}
  .opening .cover-crest{width:clamp(74px,23cqi,96px)}
  .opening .cover-content h1{font-size:clamp(2rem,9.4cqi,2.48rem);line-height:.9}
  .opening .cover-content h1 em{margin:.25em 0}
  .opening .cover-invite{font-size:clamp(.71rem,2.9cqi,.82rem);line-height:1.3}
  .opening .cover-date{margin-top:2px}
  .opening .cover-content .open-button{min-height:44px;max-width:230px;margin-top:2px}
  html[data-theme=dark] .opening .cover-content{inset:8% 9% auto;height:74%;padding-inline:10px}
  .theme-toggle{min-width:36px;width:36px;padding:4px}
}
@media(max-width:390px){.theme-toggle{min-width:32px;width:32px}.theme-toggle-icon{width:16px}.controls{gap:4px}}

html[lang=kn]{--display:"Noto Serif Kannada","Cormorant Garamond",serif;--ceremonial:"Noto Serif Kannada",serif}
html[lang=hi]{--display:"Noto Serif Devanagari","Cormorant Garamond",serif;--ceremonial:"Noto Serif Devanagari",serif;--serif:"Noto Serif Devanagari","Cormorant Garamond",serif;--body:"Manrope","Noto Serif Devanagari",sans-serif}
html[lang=kn] .eyebrow,html[lang=hi] .eyebrow{letter-spacing:.025em}

@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-sun,.theme-moon{transition:none}}

/* Local couple bot — keep its little stage legible in the midnight palette. */
html[data-theme=dark] .couple-bot-launcher{background:linear-gradient(135deg,#17130bf5,#0b0908f2);border-color:#d2aa5080;color:#f0d990;box-shadow:0 15px 38px #000b,0 0 0 5px #d2aa5017}
html[data-theme=dark] .couple-bot-launcher:hover,html[data-theme=dark] .couple-bot-launcher[aria-expanded=true]{border-color:#f1d68d;box-shadow:0 18px 42px #000d,0 0 0 6px #d2aa502b}
html[data-theme=dark] .couple-bot-launcher-copy small{color:#c7b88e}
html[data-theme=dark] .couple-bot-launcher-arrow{border-color:#d2aa5070;background:#d2aa5010}
html[data-theme=dark] .couple-bot-panel{background:linear-gradient(150deg,#1b160d,#0d0b07 60%,#11100b);border-color:#d2aa508c;box-shadow:0 25px 76px #000e,0 0 0 6px #d2aa5015,inset 0 1px #f4d98d18}
html[data-theme=dark] .couple-bot-thread{background:radial-gradient(circle at 92% 15%,#d2aa5017,transparent 25%),linear-gradient(180deg,#110e09,#0a0907);scrollbar-color:#d2aa5066 transparent}
html[data-theme=dark] .couple-bot-bubble{border-color:#d2aa5055;background:#19140c;color:#ead9ad;box-shadow:0 5px 13px #0005}
html[data-theme=dark] .couple-bot-message.is-user .couple-bot-bubble{border-color:#d2aa50;background:linear-gradient(135deg,#8b6423,#523511);color:#fff1bd}
html[data-theme=dark] .couple-bot-prompts button{border-color:#d2aa5066;background:#17130b;color:#e8c873}
html[data-theme=dark] .couple-bot-prompts button:hover{border-color:#f1d68d;background:#2a210f}
html[data-theme=dark] .couple-bot-form,html[data-theme=dark] .couple-bot-footnote{background:#100e0acc;border-top-color:#d2aa5038}
html[data-theme=dark] .couple-bot-form input{border-color:#d2aa5066;background:#080705;color:#f0d990;caret-color:#f0d990}
html[data-theme=dark] .couple-bot-form input::placeholder,html[data-theme=dark] .couple-bot-footnote{color:#bda971}
html[data-theme=dark] .couple-bot-typing-dots{border-color:#d2aa5055;background:#19140c}
html[data-theme=dark] .site-credit{color:#d8c79a;opacity:.14;mix-blend-mode:screen}

/* The scroll world stays behind the page; the last chapter brings its tree art forward. */
#pageContent{position:relative;z-index:0}
#invitation:focus{outline:none}
.living-tree-scene.is-world-ready .living-tree-art{opacity:0;transition:opacity 1.6s ease,transform 4s ease}
.living-tree-scene.is-art-ready:not(.is-world-ready) .living-tree-art{opacity:0}
.living-tree-scene.is-tree-finale.is-art-ready:not(.is-world-ready) .living-tree-art{opacity:.94}
.living-tree-scene.is-world-ready .living-tree-leaves{opacity:0;visibility:hidden}
.living-tree-scene.is-world-ready{transform:none!important}
.living-tree-scene.is-world-ready:before{background:linear-gradient(180deg,#07070555,transparent 34%,#07070555)}
.living-tree-scene.is-tree-finale .living-tree-art{opacity:.94;transform:scale(1.025);filter:saturate(1.08) contrast(1.04)}
.living-tree-scene.is-tree-finale:before{background:linear-gradient(90deg,#080806e8 0%,#080806bf 31%,#08080655 58%,#08080616 100%),linear-gradient(0deg,#080806b5 0%,transparent 32%,#0808064d 100%)}
.living-tree-scene.is-tree-finale .cinematic-world-canvas{opacity:.64}
.tree-finale{position:relative;z-index:0;min-height:260svh;overflow:clip;color:var(--ink);isolation:isolate}
.tree-finale-inner{position:sticky;top:0;display:grid;align-items:center;min-height:100svh;padding:clamp(74px,10vh,120px) clamp(28px,9vw,150px)}
.tree-finale-copy{max-width:min(570px,46vw);text-align:left;text-shadow:0 2px 22px #05040366}
.tree-finale-copy>.eyebrow{color:var(--gold-light);margin-bottom:20px}
.tree-finale-copy h2{max-width:560px;margin:0;color:#fff0c8;font:500 clamp(3rem,6vw,6.3rem)/.99 var(--serif);letter-spacing:-.045em;text-shadow:0 3px 35px #0009}
.tree-finale-stage{min-height:2.8em;margin:25px 0 27px;color:#f2d998;font:italic clamp(1.05rem,1.6vw,1.35rem)/1.5 var(--serif);transition:opacity .45s ease}
.tree-finale-names{margin:0;color:#fff0c8;font:500 clamp(2rem,3.4vw,3.3rem)/1.1 var(--serif);letter-spacing:-.035em}
.tree-finale-names em{padding-inline:7px;color:var(--gold-light);font-size:.75em}
.tree-finale-dates{margin:12px 0 0;color:#f2d998;font-size:.8rem;letter-spacing:.12em}
.tree-finale-invite{max-width:390px;margin:22px 0 0;color:#f2ead8;font:1.08rem/1.6 var(--serif)}
.tree-finale-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.tree-finale-actions .button{min-height:48px;padding:12px 19px;text-decoration:none}
.tree-finale .tree-instagram-link{border:1px solid #e4c87866;background:#08080655;color:#f5e4bc}
.tree-finale .tree-instagram-link:hover{border-color:#e4c878;background:#c69b4922}
.tree-finale .tree-bless-link{border:1px solid #e4c878aa;background:#15110866;color:#fff0c8}
.tree-finale .tree-bless-link:hover{background:#c69b4933}
.tree-secret-mark{display:flex;align-items:center;gap:5px;min-height:38px;margin-top:28px;padding:4px 7px;border:0;background:transparent;color:#f5e4bc9c;font:italic .78rem/1 var(--serif);letter-spacing:.06em;cursor:pointer;opacity:.56;transition:opacity .3s ease,filter .3s ease}
.tree-secret-mark:hover,.tree-secret-mark:focus-visible{opacity:1;filter:drop-shadow(0 0 10px #ffe5a8)}
.tree-secret-mark i{color:#e4bc61;font-size:.7rem;font-style:normal}
.tree-finale-caption{position:absolute;right:clamp(120px,12vw,180px);bottom:34px;color:#fff0c87a;font:italic .8rem/1.4 var(--serif);letter-spacing:.08em}
@media(min-width:1000px){.tree-finale-copy{max-width:min(700px,52vw)}.tree-finale-copy h2{max-width:720px;font-size:clamp(3.5rem,5.1vw,5.8rem)}}
html[data-theme=light] .tree-finale-copy h2{color:#fff1d0}
html[data-theme=light] .living-tree-scene.is-tree-finale .living-tree-art{filter:saturate(1.06) contrast(1.06)}
html[data-theme=dark] .vintage,html[data-theme=dark] .celebration{background:linear-gradient(135deg,#17140ddf,#0b0a08d9 55%,#080706e3);border-color:#d2aa503b}
html[data-theme=light] .vintage{background:linear-gradient(125deg,#4b1723ed,#702236e3 52%,#3b1821ed)}
html[data-theme=light] .celebration{background:linear-gradient(135deg,#233e3de8,#34544fe0 52%,#253b42e8)}
html[data-theme=dark] .blessing-wall{background:linear-gradient(180deg,#100e0bbf 0%,#0a0907a8 100%)}
html[data-theme=dark] footer{background:linear-gradient(145deg,#17140dd6,#0c0a07c9 72%,#080705c4)}
html[data-theme=light] .blessing-wall{background:linear-gradient(180deg,#fffaf0e8 0%,#f4f6f8d9 100%)}
html[data-theme=light] footer{background:linear-gradient(135deg,#f4f6f8ed,#f7eddade,#fffaf0e8)}
body.in-tree-finale .ambient-hearts{opacity:.24}
body.in-tree-finale .interactive-flowers{opacity:.4}
body.in-tree-finale .tree-finale{z-index:2;pointer-events:none}
body.in-tree-finale .tree-finale-inner{position:fixed;inset:0;z-index:2;width:100%;pointer-events:none}
body.in-tree-finale .tree-finale-copy{pointer-events:auto}
body.in-tree-finale footer{visibility:hidden}
@media(max-width:700px){
  .tree-finale{min-height:230svh}
  .tree-finale-inner{min-height:100svh;padding:88px 26px 52px;align-items:end}
  .tree-finale-copy{max-width:min(500px,100%);padding-bottom:clamp(34px,8svh,76px)}
  .tree-finale-copy h2{max-width:440px;font-size:clamp(3rem,12vw,5rem)}
  .tree-finale-stage{margin:17px 0 21px}
  .tree-finale-names{font-size:2.5rem}
  .tree-finale-dates{font-size:.72rem;letter-spacing:.07em}
  .tree-finale-invite{font-size:1rem}
  .tree-finale-actions{gap:9px}
  .tree-finale-actions .button{min-height:45px;padding:10px 14px;font-size:.82rem}
  .tree-finale-caption{right:20px;bottom:78px;left:20px;text-align:center;font-size:.7rem}
  .living-tree-scene.is-tree-finale:before{background:linear-gradient(180deg,#08080615 0%,#08080624 29%,#08080692 52%,#080806f0 100%),linear-gradient(90deg,#08080620,#08080600 72%)}
  .living-tree-scene.is-tree-finale .cinematic-world-canvas{opacity:.56}
}
@media(prefers-reduced-motion:reduce){
  .tree-finale{min-height:100svh}
  .tree-finale-inner{position:relative;min-height:100svh}
  .tree-finale-stage,.living-tree-scene.is-world-ready .living-tree-art{transition:none}
}
