:root{--text: #3e3636;--muted: #7b6a6b;--primary: #7c5357;--accent: #d4af37;--shadow: 0 24px 60px rgba(124, 83, 87, .1);--shadow-soft: 0 18px 40px rgba(166, 123, 123, .09);--container: 1120px;--radius-pill: 999px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--text);background:radial-gradient(circle at top left,rgba(232,180,184,.34),transparent 28%),radial-gradient(circle at 85% 18%,rgba(212,175,55,.12),transparent 18%),linear-gradient(180deg,#fcfaf6,#f7f1ea 52%,#fbf9f5);font-family:Questrial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit}#root{min-height:100vh}.container{width:min(calc(100% - 2rem),var(--container));margin:0 auto}.narrow{width:min(calc(100% - 2rem),820px)}.section{position:relative;padding:8rem 0}.section-tinted{background:linear-gradient(180deg,#efeeeac2,#faf6f1b8);border-top:1px solid rgba(212,175,55,.18);border-bottom:1px solid rgba(212,175,55,.18)}.page-glow{position:fixed;width:36rem;height:36rem;border-radius:50%;filter:blur(60px);opacity:.28;pointer-events:none;z-index:-1}.page-glow-left{top:-10rem;left:-16rem;background:#e8b4b88c}.page-glow-right{top:18rem;right:-14rem;background:#d4af3729}.site-header{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf9f5b8;border-bottom:1px solid rgba(212,175,55,.16)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5rem}.brand,.site-footer h3,.section-title,.hero-title,.timeline-copy h3,.lightbox-copy h3{font-family:EB Garamond,serif}.brand{font-size:clamp(1.6rem,2vw,2rem);font-style:italic;color:var(--primary)}.desktop-nav,.footer-links{display:flex;align-items:center;gap:1.5rem}.desktop-nav a,.mobile-nav a,.footer-links a,.eyebrow{letter-spacing:.14em;text-transform:uppercase;font-family:EB Garamond,serif;font-size:.82rem}.desktop-nav a,.mobile-nav a,.footer-links a{color:var(--muted);transition:color .18s ease}.desktop-nav a:hover,.mobile-nav a:hover,.footer-links a:hover{color:var(--primary)}.menu-toggle{display:none;border:0;background:transparent;color:var(--primary);padding:.2rem;cursor:pointer}.mobile-nav{display:none;flex-direction:column;gap:1rem;padding:0 1rem 1rem}.mobile-nav.is-open{display:flex}.hero{min-height:calc(100vh - 5rem);display:flex;align-items:center}.hero-inner,.closing-inner{text-align:center}.hero-title{margin:0;color:var(--primary);font-size:clamp(3rem,8vw,5.35rem);line-height:.95;letter-spacing:-.03em}.hero-copy,.section-copy,.letter-body,.timeline-copy p,.site-footer p{color:var(--muted);line-height:1.9}.hero-copy,.section-copy{max-width:42rem;margin:1.2rem auto 0;font-size:1.08rem}.hero-actions{margin-top:2rem}.button{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 1.8rem;border-radius:var(--radius-pill);font-family:EB Garamond,serif;letter-spacing:.12em;text-transform:uppercase;font-size:.86rem;transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.button:hover{transform:translateY(-1px)}.button-ghost{color:var(--primary);border:1px solid rgba(212,175,55,.56);background:#ffffff38}.button-ghost:hover{background:#e8b4b824}.button-solid{color:#fff;background:var(--primary);box-shadow:var(--shadow-soft)}.button-solid:hover{background:#956569}.eyebrow{margin:0 0 1rem;color:var(--muted)}.section-heading{text-align:center;margin-bottom:4rem}.section-title{margin:0;color:var(--primary);font-size:clamp(2.2rem,4vw,3.4rem)}.italic{font-style:italic}.letter-card{position:relative;padding:clamp(2rem,4vw,4rem);border:1px solid rgba(212,175,55,.32);background:linear-gradient(180deg,#ffffffe6,#faf5eeeb),url(https://www.transparenttextures.com/patterns/natural-paper.png);box-shadow:var(--shadow)}.letter-seal{position:absolute;top:-1.4rem;left:50%;transform:translate(-50%);display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:#fbf9f5;color:var(--accent)}.letter-body p{margin:0 0 1rem;font-size:1.08rem}.signature{padding-top:.5rem;color:var(--primary);font-size:1.7rem;font-family:EB Garamond,serif;font-style:italic}.timeline{display:grid;gap:3.5rem}.timeline-item{display:grid;grid-template-columns:1.2fr .9fr;gap:2rem;align-items:center}.timeline-item-reverse{grid-template-columns:.9fr 1.2fr}.timeline-item-reverse .timeline-copy{order:2}.timeline-item-reverse .timeline-art{order:1}.timeline-copy{position:relative;padding:2rem 2rem 2rem 0}.timeline-copy:before{content:"";position:absolute;top:1.2rem;left:-1rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 8px #d4af371f}.timeline-label{margin:0 0 .4rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}.timeline-copy h3{margin:0 0 .8rem;color:var(--primary);font-size:2rem}.timeline-art,.note{border:1px solid rgba(212,175,55,.16);box-shadow:var(--shadow-soft)}.timeline-art{min-height:240px;display:grid;place-items:center;background:linear-gradient(180deg,#ffffff8c,#f2e8dfb3);padding:1rem;text-align:center}.timeline-art span{color:#7c535794;font-family:EB Garamond,serif;font-size:1.5rem;font-style:italic}.organic-shape{border-radius:58% 42% 36% 64%/46% 35% 65% 54%}.organic-shape-one{border-radius:56% 44% 30% 70%/60% 34% 66% 40%}.organic-shape-two{border-radius:34% 66% 63% 37%/44% 55% 45% 56%}.organic-shape-three{border-radius:48% 52% 33% 67%/39% 39% 61% 61%}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:start}.polaroid{background:#ffffffdb;border:1px solid rgba(212,175,55,.14);padding:1rem 1rem 2.6rem;box-shadow:var(--shadow-soft)}.polaroid-button{width:100%;text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.polaroid-button:hover{box-shadow:0 26px 50px #7c535724}.polaroid-button:hover .polaroid-hint{opacity:1}.polaroid img{aspect-ratio:4 / 5;object-fit:cover}.polaroid figcaption{padding-top:.9rem;text-align:center;color:var(--primary);font-family:EB Garamond,serif;font-size:1.35rem;font-style:italic}.polaroid-hint{display:block;padding-top:.35rem;text-align:center;color:#7b6a6bc2;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;opacity:.68}.tilt-left{transform:rotate(-2deg)}.tilt-right{transform:rotate(2.5deg)}.offset-down{margin-top:2.4rem}.offset-up{margin-top:-1.8rem}.notes-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.note{max-width:20rem;padding:1.6rem 1.4rem;background:#ffffffbd}.note:nth-child(odd){background:#fdfbf7e6}.note .material-symbols-outlined{color:var(--primary);font-size:1.6rem}.note p{margin:.75rem 0 0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.35rem;font-style:italic;line-height:1.45}.closing-section{padding-top:7rem}.site-footer{padding:3rem 0 3.6rem;border-top:1px solid rgba(212,175,55,.18)}.footer-inner{text-align:center}.site-footer h3{margin:0;color:var(--primary);font-size:1.8rem}.site-footer p{margin:.5rem 0 1rem}.site-footer small{display:block;margin-top:1.4rem;color:#7b6a6bb8}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#1c1515a3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:40}.lightbox-panel{position:relative;width:min(100%,980px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:1.5rem;padding:1.2rem;background:linear-gradient(180deg,#fffffff2,#faf5eef5);border:1px solid rgba(212,175,55,.24);box-shadow:0 24px 80px #00000029}.lightbox-close{position:absolute;top:.7rem;right:.7rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.lightbox-image{width:100%;height:100%;max-height:72vh;object-fit:cover}.lightbox-copy{display:flex;flex-direction:column;justify-content:center;padding:1rem 1rem 1rem .5rem}.lightbox-copy h3{margin:0;color:var(--primary);font-size:clamp(2rem,4vw,3rem)}.lightbox-copy p:last-child{margin:1rem 0 0;color:var(--muted);line-height:1.8;font-size:1.02rem}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (max-width: 900px){.timeline-item,.timeline-item-reverse{grid-template-columns:1fr}.timeline-item-reverse .timeline-copy,.timeline-item-reverse .timeline-art{order:initial}.timeline-copy{padding:0}.timeline-copy:before{display:none}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lightbox-panel{grid-template-columns:1fr}.lightbox-copy{padding:.25rem .2rem .5rem}}@media (max-width: 720px){.section{padding:6rem 0}.desktop-nav{display:none}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.hero-title{font-size:clamp(2.7rem,12vw,4.3rem)}.gallery-grid{grid-template-columns:1fr}.offset-down,.offset-up{margin-top:0}.tilt-left,.tilt-right{transform:none}.footer-links{flex-direction:column;gap:.8rem}}.hero-action-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem}.button-soft{color:var(--primary);border:1px solid rgba(124,83,87,.14);background:#ffffffbd;box-shadow:var(--shadow-soft)}.button-soft:hover{background:#e8b4b82e}.music-player{position:fixed;right:1rem;bottom:1rem;z-index:30;width:min(100% - 2rem,360px)}.music-player-toggle{position:absolute;top:-.9rem;right:1rem;display:grid;place-items:center;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:var(--primary);color:#fff;box-shadow:var(--shadow-soft);cursor:pointer}.music-player-panel{padding:1.25rem;border:1px solid rgba(212,175,55,.24);background:linear-gradient(180deg,#fffffff2,#faf5eef5);box-shadow:0 24px 80px #00000024;transform:translateY(calc(100% - 4.6rem));transition:transform .22s ease}.music-player.is-open .music-player-panel{transform:translateY(0)}.music-player-label{margin-bottom:.4rem}.music-player-header h3{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:1.8rem}.music-player-artist{margin:.4rem 0 0;color:var(--muted)}.music-player-progress{margin-top:1rem}.music-player-progress input{width:100%;accent-color:var(--primary)}.music-player-time{display:flex;justify-content:space-between;margin-top:.35rem;color:var(--muted);font-size:.82rem}.music-player-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1rem}.music-player-controls button{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:0;border-radius:50%;background:#7c535714;color:var(--primary);cursor:pointer}.music-player-controls .music-player-primary{width:3.3rem;height:3.3rem;background:var(--primary);color:#fff}.music-player-playlist{display:grid;gap:.55rem;margin-top:1rem}.music-track{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.8rem .9rem;border:1px solid rgba(124,83,87,.08);background:#ffffff9e;color:var(--text);text-align:left;cursor:pointer}.music-track.is-active{border-color:#d4af375c;background:#e8b4b81f}.music-track-title{color:var(--primary);font-family:EB Garamond,serif;font-size:1.08rem}.music-track-artist{color:var(--muted);font-size:.84rem}@media (max-width: 720px){.music-player{right:.75rem;left:.75rem;width:auto}.music-player-panel{transform:translateY(calc(100% - 4.2rem))}.hero-action-row{flex-direction:column;align-items:center}}.music-player-fallback{margin-top:1rem;padding:.95rem;border:1px solid rgba(212,175,55,.24);background:#e8b4b81a}.music-player-fallback p{margin:0 0 .75rem;color:var(--muted);line-height:1.7;font-size:.92rem}.memory-video-thumb{position:relative}.memory-video-thumb video{width:100%;aspect-ratio:4 / 5;object-fit:cover;display:block}.memory-badge{position:absolute;right:.75rem;bottom:.75rem;padding:.3rem .55rem;background:#3e3636c7;color:#fff;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.chapter-frame{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.chapter-rail{position:sticky;top:0;height:100vh;padding:2rem 1.4rem;border-right:1px solid rgba(212,175,55,.16);background:#fbf9f5b8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:1.5rem}.chapter-brand{display:inline-block}.chapter-meta h2{margin:.35rem 0 0;color:var(--primary);font-family:EB Garamond,serif;font-size:2rem}.chapter-nav{display:grid;gap:.5rem}.chapter-link{display:flex;align-items:center;gap:.9rem;padding:.85rem .95rem;border:1px solid transparent;color:var(--muted)}.chapter-link.is-active{border-color:#d4af374d;background:#e8b4b814;color:var(--primary)}.chapter-index{font-family:EB Garamond,serif;font-size:1.05rem;letter-spacing:.08em}.chapter-rail-button{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:0;padding:.95rem 1rem;background:var(--primary);color:#fff;cursor:pointer}.chapter-main{min-width:0}.chapter-page{min-height:calc(100vh - 6rem);display:flex;align-items:center;padding:3rem 0 1rem}.chapter-shell{width:min(calc(100% - 2rem),1100px)}.chapter-heading{margin-bottom:2rem}.chapter-title{margin:0;color:var(--primary);font-family:EB Garamond,serif;font-size:clamp(3rem,8vw,5rem);line-height:.95}.chapter-copy{max-width:42rem;margin:1rem 0 0;color:var(--muted);line-height:1.9;font-size:1.06rem}.intro-card,.ending-card,.timeline-panel,.memory-gallery-panel{padding:2rem;border:1px solid rgba(212,175,55,.18);background:#ffffff80;box-shadow:var(--shadow-soft)}.intro-card p,.ending-card p{max-width:42rem;color:var(--muted);line-height:1.9;font-size:1.08rem}.letter-card-page{max-width:900px;margin:0 auto}.memories-layout{display:grid;gap:1.5rem}.chapter-panel-heading{margin-bottom:2rem;text-align:left}.notes-wrap-page{justify-content:flex-start}@media (max-width: 980px){.chapter-frame{grid-template-columns:1fr}.chapter-rail{position:static;height:auto;border-right:0;border-bottom:1px solid rgba(212,175,55,.16)}.chapter-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-rail-button{margin-top:0}}@media (max-width: 720px){.chapter-nav{grid-template-columns:1fr}.chapter-page{padding-top:2rem}.chapter-title{font-size:clamp(2.6rem,13vw,4rem)}.chapter-pager{gap:1rem;flex-wrap:wrap}}.chapter-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem}.chapter-actions>span{display:block}@media (max-width: 720px){.chapter-actions{flex-direction:column;align-items:stretch}.chapter-actions .button{justify-content:center}}
