
:root{color-scheme:light;--ink:#34282a;--soft:#67575a;--cream:#fffaf3;--line:#e5d5ca;--accent:#9b4655;--dark:#773342;--gold:#bd9152;--serif:"Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:Inter,"Aptos",Arial,sans-serif;--shadow:0 28px 70px #58383a16}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:98px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.7 var(--sans)}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input{font:inherit}.wrap{width:min(1160px,calc(100% - 48px));margin:auto}.section-pad{padding:92px 0}.skip-link{position:fixed;left:12px;top:-80px;background:white;padding:12px;z-index:99}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:30;background:#fffaf3ed;border-bottom:1px solid #74544b1a;backdrop-filter:blur(16px)}.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand img{width:156px;height:68px;object-fit:contain;background:#fff4e3;border-radius:6px}.experience-name{display:grid;text-align:center;line-height:1.15}.experience-name span,.eyebrow{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:700}.experience-name b{font:600 1.2rem var(--serif)}.header-contact{border:1px solid var(--line);border-radius:99px;padding:10px 18px;font-size:.84rem;font-weight:600}.hero-section{position:relative;overflow:hidden;min-height:710px;background:linear-gradient(118deg,#fffaf5,#f4e4dc 52%,#ead1c7);padding:78px 0 66px}.theme-sun .hero-section{background:linear-gradient(118deg,#fffaf3,#ebdfc0)}.theme-rose .hero-section{background:linear-gradient(118deg,#fff8f2,#efd4da)}.theme-gold .hero-section{background:linear-gradient(118deg,#fff8eb,#eed8ab)}.theme-ink .hero-section{background:linear-gradient(118deg,#f6f4f2,#cbd1df)}.theme-berry .hero-section{background:linear-gradient(118deg,#fff5ef,#e9bac4)}.theme-sand .hero-section{background:linear-gradient(118deg,#fffaf1,#e7d6b6)}.theme-night .hero-section{background:linear-gradient(118deg,#f7f2f8,#d0c1dc)}.theme-wedding .hero-section{background:linear-gradient(118deg,#fff8ec,#ebd4bf)}.theme-dawn .hero-section{background:linear-gradient(118deg,#fff9ef,#f1d1bd)}.theme-road .hero-section{background:linear-gradient(118deg,#f3fbfb,#cfdee3)}.theme-ever .hero-section{background:linear-gradient(118deg,#fff9f0,#e7d7c2)}.hero-orbit{position:absolute;width:610px;height:610px;border:1px solid #fff9;border-radius:50%;right:-60px;top:-260px}.hero-grid{position:relative;display:grid;grid-template-columns:1fr .92fr;align-items:center;gap:64px}.hero-copy h1{font:500 clamp(3rem,5.3vw,5.5rem)/1.02 var(--serif);letter-spacing:-.045em;margin:0 0 23px;max-width:650px}.hero-copy h1 em,h2 em{font-style:italic;color:var(--accent);font-weight:500}.eyebrow{margin-bottom:18px}.lead{font-size:1.1rem;color:#625155;max-width:570px;line-height:1.8}.hero-note{color:var(--dark);font:italic 1.08rem var(--serif)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:var(--accent);color:#fffaf4;border:1px solid var(--accent);border-radius:99px;padding:14px 23px;font-weight:700;box-shadow:0 12px 26px #76334326;transition:.25s transform,.25s background}.button:hover{transform:translateY(-3px);background:var(--dark)}.quiet-link,.text-link,.share-link{color:var(--dark);font-size:.88rem;font-weight:700}.share-link{border:0;background:transparent;cursor:pointer;padding:8px}.hero-signature{display:flex;align-items:center;gap:12px;margin-top:48px;color:#927d7a;font-size:.72rem;letter-spacing:.06em}.signature-line{width:45px;height:1px;background:var(--gold)}.hero-art{margin:0;background:#fffaf1;padding:12px;border:1px solid white;border-radius:48% 48% 16px 16px;box-shadow:var(--shadow);transform:rotate(1deg)}.hero-art img{width:100%;aspect-ratio:1.17;object-fit:cover;border-radius:48% 48% 9px 9px}.hero-art figcaption{display:flex;justify-content:space-between;padding:14px 10px 8px;color:#876b68;font-size:.65rem;letter-spacing:.18em}.story-intro,.gallery-section,.chapter-nav-section{background:#fffdf8}.intro-grid{display:grid;grid-template-columns:.9fr 1fr;gap:96px}.intro-grid h2,.section-heading h2,.countdown-wrap h2,.letter-card h2,.final-note h2{font:500 clamp(2.1rem,4vw,3.5rem)/1.1 var(--serif);letter-spacing:-.035em;margin:0}.intro-grid p{color:var(--soft);font-size:1.04rem;margin:0 0 15px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:34px}.section-heading>p{max-width:365px;margin:0;color:var(--soft)}.timeline-section{background:#f5e9e0}.timeline-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.timeline-link{display:flex;align-items:center;gap:9px;padding:12px 11px;border:1px solid #d9c7bc;border-radius:13px;background:#fffaf5;font-size:.74rem;transition:.2s transform,.2s border}.timeline-link:hover{transform:translateY(-3px);border-color:var(--accent)}.timeline-link.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.timeline-link.is-active .timeline-dot{color:#fff;border-color:#fff}.timeline-dot{display:grid;place-items:center;flex:none;width:28px;height:28px;border:1px solid var(--accent);border-radius:50%;font-size:.62rem;color:var(--accent)}.countdown-section{background:#352a31;color:#fff8ef}.countdown-wrap{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:75px}.countdown-wrap .eyebrow,.date-label{color:#e5bd83}.countdown-wrap h2 em{color:#e5bd83}.countdown-wrap p:not(.eyebrow){color:#d8c9c4}.date-label{display:block;margin:20px 0 8px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}.date-label+input{padding:12px 14px;background:#fff9f1;border:0;border-radius:8px;color:#3d3030}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;text-align:center}.countdown>div{padding:22px 8px 19px;border:1px solid #ffffff36;background:#ffffff0b;border-radius:18px}.countdown strong{display:block;font:500 clamp(2rem,4vw,3.5rem)/1 var(--serif);color:#f3d8a7;font-variant-numeric:tabular-nums}.countdown span{display:block;margin-top:11px;color:#e4cfca;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em}.countdown-message{grid-column:1/-1;min-height:20px;color:#f3d8a7!important;text-align:center;font:italic 1rem var(--serif);margin:8px 0 0}.gallery-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px}.gallery-card{position:relative;border:0;padding:0;background:#eee0d4;border-radius:18px;overflow:hidden;cursor:zoom-in;min-height:260px}.gallery-card img{width:100%;height:100%;min-height:260px;object-fit:cover;transition:transform .5s}.gallery-card:hover img{transform:scale(1.04)}.gallery-main,.gallery-main img{min-height:400px}.gallery-caption{position:absolute;left:14px;bottom:14px;padding:9px 13px;border-radius:99px;background:#fffaf0e8;color:#594648;font-size:.74rem}.letter-section{background:#f6ebe3}.letter-card{max-width:780px;margin:auto;padding:60px clamp(24px,7vw,84px);background:#fffaf2;border:1px solid #e8d8cb;border-radius:5px 48px;box-shadow:var(--shadow);text-align:center}.letter-mark{display:block;height:48px;font:5rem/.9 var(--serif);color:var(--gold)}.letter-card h2{font-size:clamp(2rem,4vw,3.25rem)}.letter-card>p:not(.eyebrow){max-width:550px;margin:20px auto;color:var(--soft)}.letter-card details{max-width:500px;margin:25px auto 0;text-align:left;border-top:1px solid var(--line);padding-top:15px}.letter-card summary{cursor:pointer;color:var(--dark);font-weight:700}.chapter-nav-section{padding:36px 0}.chapter-nav{display:flex;justify-content:space-between;gap:20px}.story-direction{display:grid;gap:4px;padding:16px 19px;border:1px solid var(--line);border-radius:14px;min-width:220px}.story-direction span{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#9a7778}.story-direction b{font:600 1.2rem var(--serif)}.story-direction.next{text-align:right}.direction-muted{opacity:.55}.final-note{background:linear-gradient(125deg,#843948,#472e3d);color:#fff9f2;text-align:center;padding:92px 0}.final-note-inner{max-width:700px}.final-note .eyebrow{color:#eecb9d}.final-note h2 em{color:#f3d4a7}.final-note-inner>p:not(.eyebrow){color:#eadbda;max-width:540px;margin:18px auto 28px}.button-light{background:#fff5e7;color:#61333d;border-color:#fff5e7}.demo-label{font-size:.72rem!important;color:#e0c6bf!important;margin-top:25px!important}.site-footer{background:#29222a;color:#e8d9d7;padding:24px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;font-size:.78rem}.lightbox{border:0;padding:0;background:#1f1b20;max-width:min(92vw,1050px);max-height:92vh;border-radius:14px;overflow:visible}.lightbox::backdrop{background:#18141bd9;backdrop-filter:blur(5px)}.lightbox img{max-height:86vh;max-width:90vw;object-fit:contain;border-radius:12px}.lightbox-close{position:absolute;right:-14px;top:-16px;border:0;width:42px;height:42px;border-radius:50%;background:#fff;font-size:1.7rem;cursor:pointer}@media(max-width:900px){.hero-grid{gap:35px}.timeline-rail{grid-template-columns:repeat(4,minmax(0,1fr))}.countdown-wrap{gap:35px}.section-pad{padding:72px 0}}@media(max-width:680px){.wrap{width:min(100% - 32px,560px)}.header-inner{height:70px}.brand img{width:112px;height:52px}.experience-name span{font-size:.5rem}.experience-name b{font-size:.95rem}.header-contact{padding:8px 10px;font-size:.7rem}.hero-section{padding:47px 0 56px;min-height:auto}.hero-grid{grid-template-columns:1fr;gap:28px}.hero-copy h1{font-size:clamp(2.7rem,12vw,4.4rem)}.hero-art{width:min(100%,490px);margin:auto}.hero-signature{margin-top:26px}.intro-grid,.countdown-wrap{grid-template-columns:1fr;gap:22px}.section-pad{padding:60px 0}.section-heading{display:block}.section-heading>p{margin-top:15px}.timeline-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.timeline-link{font-size:.7rem;padding:8px}.countdown{gap:7px}.countdown>div{padding:17px 3px}.countdown strong{font-size:2rem}.countdown span{font-size:.55rem;letter-spacing:.08em}.gallery-grid{grid-template-columns:1fr 1fr;gap:9px}.gallery-card,.gallery-card img{min-height:175px}.gallery-main,.gallery-main img{grid-column:1/-1;min-height:260px}.gallery-caption{left:8px;bottom:8px;font-size:.65rem;padding:7px 10px}.letter-card{padding:44px 22px}.chapter-nav{align-items:stretch}.story-direction{min-width:0;width:50%;padding:12px}.story-direction b{font-size:1rem}.footer-inner{flex-wrap:wrap;justify-content:center;text-align:center}.final-note{padding:68px 0}}@keyframes storyFade{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-copy{animation:storyFade .8s both}.hero-art{animation:storyRise 1s .12s both}@keyframes storyRise{from{opacity:0;transform:translateY(28px) rotate(4deg)}to{opacity:1;transform:translateY(0) rotate(1deg)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Chapter identity: each moment carries its own palette */
body.theme-cover{--ink:#352938;--soft:#6f5d6b;--accent:#9b6c39;--dark:#654129;--deep:#39283b;--paper:#fffaf2;--tint:#f1e6d9;--tint2:#f6eee5;--line:#ddcbb7;--warm:#e8c995;--glow:#edd6b7}
body.theme-soft{--ink:#263a38;--soft:#607571;--accent:#557c70;--dark:#315c54;--deep:#294a45;--paper:#f8fbf5;--tint:#e3eee6;--tint2:#edf4ee;--line:#c8dacf;--warm:#c7dfd2;--glow:#c8e3d9}
body.theme-sun{--ink:#483418;--soft:#766343;--accent:#b47b18;--dark:#80590f;--deep:#674a1b;--paper:#fffaf0;--tint:#f4e8c5;--tint2:#fbf1d7;--line:#e1ce98;--warm:#f2d68c;--glow:#f1dd9f}
body.theme-rose{--ink:#4a2736;--soft:#765563;--accent:#ad536e;--dark:#79374f;--deep:#603248;--paper:#fff8f7;--tint:#f5e1e7;--tint2:#fae9e9;--line:#e8c9d2;--warm:#f0c6d1;--glow:#efcbd7}
body.theme-gold{--ink:#493321;--soft:#77614b;--accent:#b76d31;--dark:#8b4e28;--deep:#633e2e;--paper:#fff9ef;--tint:#f3e2ca;--tint2:#f8ead9;--line:#e5c9a9;--warm:#f0c28a;--glow:#f2d0a6}
body.theme-ink{--ink:#293249;--soft:#626d82;--accent:#526c9b;--dark:#394d77;--deep:#26334f;--paper:#f7f9fd;--tint:#e2e8f1;--tint2:#edf1f7;--line:#cbd5e3;--warm:#c5d7ed;--glow:#cad8ed}
body.theme-berry{--ink:#4b2832;--soft:#76545b;--accent:#b14a58;--dark:#7d3441;--deep:#592d3a;--paper:#fff8f5;--tint:#f3ded9;--tint2:#f9e9e1;--line:#e7c4bd;--warm:#f3c29f;--glow:#f0c9be}
body.theme-sand{--ink:#3c3d27;--soft:#69694f;--accent:#858345;--dark:#60622f;--deep:#41442f;--paper:#fbfaf1;--tint:#eeecd8;--tint2:#f5f2e3;--line:#d8d5b6;--warm:#ddd58d;--glow:#e5e2ba}
body.theme-night{--ink:#302e45;--soft:#69647b;--accent:#8072a8;--dark:#5b4f83;--deep:#302c49;--paper:#faf8ff;--tint:#eae5f3;--tint2:#f1edf8;--line:#d6cde7;--warm:#d9c8a2;--glow:#ddd3ee}
body.theme-wedding{--ink:#482b26;--soft:#75554e;--accent:#a24b38;--dark:#743526;--deep:#542d2b;--paper:#fff9ef;--tint:#f0dfc8;--tint2:#f8ead8;--line:#e2c7a8;--warm:#e9c27d;--glow:#edcda0}
body.theme-dawn{--ink:#49352d;--soft:#796258;--accent:#c36e50;--dark:#934d3b;--deep:#663d36;--paper:#fff9f3;--tint:#f4e2d8;--tint2:#faece3;--line:#e8c9bb;--warm:#f1c4a6;--glow:#f4d0bb}
body.theme-road{--ink:#243c46;--soft:#5c747c;--accent:#347d83;--dark:#285d66;--deep:#244550;--paper:#f4fbfb;--tint:#dcecee;--tint2:#e9f4f3;--line:#c2dddf;--warm:#b7dddc;--glow:#c2e5e5}
body.theme-ever{--ink:#303d31;--soft:#647166;--accent:#6b8157;--dark:#4d6542;--deep:#344638;--paper:#f8faf3;--tint:#e5ebd9;--tint2:#eef2e5;--line:#d0dbc1;--warm:#d8c994;--glow:#dbe5c8}
body[class*="theme-"]{background:var(--paper);color:var(--ink)}
body[class*="theme-"] .site-header{background:color-mix(in srgb,var(--paper) 94%,transparent);border-color:color-mix(in srgb,var(--accent) 20%,transparent)}
body[class*="theme-"] .experience-name span,body[class*="theme-"] .eyebrow{color:var(--accent)}
body[class*="theme-"] .experience-name b,body[class*="theme-"] h2 em{color:var(--dark)}
body[class*="theme-"] .hero-section{background:radial-gradient(ellipse at 82% 23%,color-mix(in srgb,var(--glow) 80%,transparent),transparent 34%),linear-gradient(128deg,var(--paper) 12%,var(--tint) 100%)}
body[class*="theme-"] .hero-orbit{border-color:color-mix(in srgb,var(--accent) 24%,transparent);animation:orbit-breathe 17s ease-in-out infinite}
body[class*="theme-"] .hero-copy h1{color:var(--ink);text-wrap:balance}
body[class*="theme-"] .hero-copy h1 em{color:var(--accent)}
body[class*="theme-"] .lead,body[class*="theme-"] .intro-grid p,body[class*="theme-"] .section-heading>p{color:var(--soft)}
body[class*="theme-"] .hero-note{color:var(--dark)}
body[class*="theme-"] .hero-art{background:var(--paper);border-color:color-mix(in srgb,var(--accent) 12%,white);box-shadow:0 34px 75px color-mix(in srgb,var(--dark) 17%,transparent);animation:memory-drift 8s ease-in-out infinite}
body[class*="theme-"] .hero-art figcaption{color:var(--dark)}
body[class*="theme-"] .story-intro,body[class*="theme-"] .gallery-section,body[class*="theme-"] .chapter-nav-section{background:var(--paper)}
body[class*="theme-"] .timeline-section{background:var(--tint)}
body[class*="theme-"] .timeline-link{color:var(--ink);background:transparent;border:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:0}
body[class*="theme-"] .timeline-link:hover{transform:translateX(4px);border-color:var(--accent)}
body[class*="theme-"] .timeline-link.is-active{background:transparent;color:var(--dark);border-color:var(--accent)}
body[class*="theme-"] .timeline-dot{border-color:var(--accent);color:var(--dark)}
body[class*="theme-"] .timeline-link.is-active .timeline-dot{background:var(--accent);border-color:var(--accent);color:white}
body[class*="theme-"] .countdown-section{background:radial-gradient(circle at 16% 20%,color-mix(in srgb,var(--accent) 38%,transparent),transparent 34%),var(--deep)}
body[class*="theme-"] .countdown-wrap h2 em,body[class*="theme-"] .countdown strong,body[class*="theme-"] .countdown-message{color:var(--warm)!important}
body[class*="theme-"] .countdown>div{border-color:color-mix(in srgb,var(--warm) 35%,transparent);background:#ffffff0a}
body[class*="theme-"] .countdown input{accent-color:var(--accent)}
body[class*="theme-"] .gallery-card{background:var(--tint);box-shadow:0 16px 38px color-mix(in srgb,var(--dark) 12%,transparent)}
body[class*="theme-"] .gallery-card:hover{transform:translateY(-5px)}
body[class*="theme-"] .gallery-caption{background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--dark)}
body[class*="theme-"] .letter-section{background:var(--tint2)}
body[class*="theme-"] .letter-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:8px 52px 8px 52px;box-shadow:0 25px 60px color-mix(in srgb,var(--dark) 10%,transparent)}
body[class*="theme-"] .letter-card:before{content:"";position:absolute;left:0;top:30px;bottom:30px;width:3px;background:linear-gradient(transparent,var(--accent),transparent)}
body[class*="theme-"] .letter-mark{color:var(--accent);opacity:.7}
body[class*="theme-"] .letter-card>p:not(.eyebrow){color:var(--soft);font-size:1.08rem;line-height:1.9}
body[class*="theme-"] .letter-card summary{color:var(--dark)}
body[class*="theme-"] .chapter-nav-section{border-top:1px solid var(--line)}
body[class*="theme-"] .story-direction{border:0;border-bottom:1px solid var(--line);border-radius:0}
body[class*="theme-"] .story-direction span{color:var(--accent)}
body[class*="theme-"] .final-note{background:radial-gradient(circle at 80% 15%,color-mix(in srgb,var(--accent) 48%,transparent),transparent 30%),linear-gradient(125deg,var(--deep),var(--dark));position:relative;overflow:hidden}
body[class*="theme-"] .final-note:before{content:"";position:absolute;inset:18px;border:1px solid color-mix(in srgb,var(--warm) 23%,transparent);pointer-events:none}
body[class*="theme-"] .final-note-inner{position:relative}
body[class*="theme-"] .final-note h2 em,body[class*="theme-"] .final-note .eyebrow{color:var(--warm)}
body[class*="theme-"] .final-note-inner>p:not(.eyebrow){color:color-mix(in srgb,var(--paper) 82%,transparent)}
body[class*="theme-"] .button-light{background:var(--paper);color:var(--deep);border-color:var(--paper);box-shadow:0 12px 28px #0002}
body[class*="theme-"] .quiet-link{color:var(--dark);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:5px}
body[class*="theme-"] .button{background:var(--accent);border-color:var(--accent);box-shadow:0 14px 28px color-mix(in srgb,var(--dark) 24%,transparent)}
body[class*="theme-"] .site-footer{background:var(--deep)}
.timeline-rail{gap:6px 22px}
.timeline-link{font-size:.76rem;min-height:48px}
.timeline-label{line-height:1.35}
.hero-actions{gap:18px}
.hero-signature{color:var(--soft)}
.gallery-card{transition:transform .55s cubic-bezier(.2,.75,.25,1),box-shadow .55s}
html.has-motion .reveal-on-scroll{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.25,1)}
html.has-motion .reveal-on-scroll.is-visible{opacity:1;transform:none}
html.has-motion .gallery-card:nth-child(2){transition-delay:.12s}
html.has-motion .gallery-card:nth-child(3){transition-delay:.24s}
@keyframes memory-drift{0%,100%{transform:translateY(0) rotate(1deg)}50%{transform:translateY(-8px) rotate(-.4deg)}}
@keyframes orbit-breathe{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-24px,18px) scale(1.04)}}
@media(max-width:900px){.timeline-rail{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:680px){
 .timeline-rail{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:4px 2px 16px}
 .timeline-link{flex:0 0 145px;scroll-snap-align:start;display:flex;align-items:center;min-height:62px;padding:7px 4px}
 body[class*="theme-"] .hero-art{animation:none}
 body[class*="theme-"] .final-note:before{inset:10px}
}
@media(prefers-reduced-motion:reduce){
 html.has-motion .reveal-on-scroll{opacity:1;transform:none;transition:none}
 body[class*="theme-"] .hero-orbit,body[class*="theme-"] .hero-art{animation:none}
}
