:root{color:#fdf3e6;font-synthesis:none;text-rendering:optimizelegibility;--night-deep:#241b4d;--night:#372a66;--night-soft:#4a3378;--starlight:#fdf3e6;--gold:#f2cc86;--gold-text:#ffe7b3;--gold-soft:#f4d696bf;--rose:#f0aec4;--rose-deep:#c95762;--thread:#ef7b78;--muted:#eee6f7;--paper:#fdf4ec;--paper-ink:#3d3130;--paper-muted:#7a6a66;--line:#f4d69647;--shadow-night:0 30px 90px #1a0c3073;background:#241b4d;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#241b4d}body{background:var(--night-deep);min-width:0;min-height:100vh;margin:0;overflow-x:hidden}::selection{color:var(--night-deep);background:var(--gold)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[tabindex="-1"]:focus{outline:none}.site-shell{isolation:isolate;min-height:100vh;position:relative;overflow-x:clip}.skip-link{z-index:50;top:max(1rem, calc(env(safe-area-inset-top) + .5rem));left:max(1rem, calc(env(safe-area-inset-left) + .5rem));color:var(--night-deep);background:var(--gold);border-radius:999px;padding:.8rem 1rem;font-weight:700;transition:transform .16s;position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.night-sky{z-index:-1;pointer-events:none;background:radial-gradient(90% 55% at 78% -8%,#a082e66b,#0000 60%),radial-gradient(85% 55% at 8% 108%,#f08caa26,#0000 65%),radial-gradient(60% 40% at 50% 116%,#ffbea01a,#0000 70%),linear-gradient(#221a4c 0%,#41307a 42%,#74407e 74%,#743a6b 100%);position:fixed;inset:0;overflow:hidden}.milky-way{filter:blur(10px);background:linear-gradient(100deg,#0000 24%,#d2befa24 40%,#ffeaf638 50%,#d2befa24 60%,#0000 78%);width:140%;height:78%;position:absolute;top:-24%;left:-18%;transform:rotate(-16deg)}.star-field{position:absolute;inset:0}.star{opacity:var(--star-opacity,.7);animation:star-twinkle var(--star-duration,4s) ease-in-out var(--star-delay,0s) infinite;background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 6px #ffffff8c}.moon{aspect-ratio:1;background:radial-gradient(circle at 36% 34%,#fff8e8 0%,#f3e2b8 52%,#d9c08d 100%);border-radius:50%;width:clamp(4.5rem,9vw,7rem);animation:9s ease-in-out infinite moon-breathe;position:absolute;top:7%;right:9%;box-shadow:0 0 2.5rem #f6e2b080,0 0 7rem #f6e2b038}.moon:after{content:"";background:radial-gradient(circle at 62% 58%,#bea47459 0 8%,#0000 9%),radial-gradient(circle at 44% 70%,#bea4744d 0 5%,#0000 6%),radial-gradient(circle at 70% 36%,#bea47447 0 6%,#0000 7%);border-radius:50%;position:absolute;inset:0}.shooting-star{opacity:0;background:#fff;border-radius:50%;width:3px;height:3px;position:absolute;box-shadow:0 0 8px #ffffffe6}.shooting-star:after{content:"";transform-origin:0;background:linear-gradient(90deg,#ffffffd9,#0000);width:8.5rem;height:1.5px;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(-32deg)}.shooting-star--one{animation:11s linear 2.5s infinite shoot;top:16%;right:12%}.shooting-star--two{animation:17s linear 9s infinite shoot;top:34%;right:38%}.hero{isolation:isolate;width:min(1120px,100% - 3rem);min-height:min(880px,100svh);padding:max(4rem, calc(10vh + env(safe-area-inset-top))) env(safe-area-inset-right) max(6.5rem, calc(5rem + env(safe-area-inset-bottom))) env(safe-area-inset-left);text-align:center;place-items:center;margin:0 auto;display:grid;position:relative}.hero__sky{pointer-events:none;position:absolute;inset:0}.named-star{flex-direction:column;align-items:center;gap:.55rem;display:flex;position:absolute;top:27%}.named-star--vega{left:4%}.named-star--altair{top:max(27%,11rem);right:4%}.named-star__dot{background:#fff;border-radius:50%;width:.65rem;height:.65rem;animation:3.6s ease-in-out infinite named-star-pulse;box-shadow:0 0 .9rem #fffffff2,0 0 2.6rem #bec8ffa6}.named-star--altair .named-star__dot{animation-delay:1.7s;box-shadow:0 0 .9rem #fff4d6f2,0 0 2.6rem #e9c07a99}.named-star span{color:var(--gold-soft);letter-spacing:.32em;text-indent:.32em;font-size:.78rem}.magpie-bridge{width:min(50rem,90%);position:absolute;top:0;left:50%;overflow:visible;transform:translate(-50%)}.magpie-bridge__glow,.magpie-bridge__base,.magpie-bridge__arc{fill:none;stroke-linecap:round}.magpie-bridge__glow{stroke:#d6c2ff3d;stroke-width:18px;opacity:.78;filter:blur(7px)}.magpie-bridge__base{stroke:#ffe2ab75;stroke-width:1.8px;stroke-dasharray:2 11;filter:drop-shadow(0 0 5px #e9c07a61)}.magpie-bridge__arc{stroke:var(--gold);stroke-width:2.5px;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 6px #e9c07abf);transition:stroke-dashoffset 1.9s cubic-bezier(.4,0,.2,1) .24s}.magpie-bridge__birds circle{fill:#ffe9bd;opacity:0;transform-origin:50%;transform-box:fill-box;transition:opacity .42s,scale .52s cubic-bezier(.22,1,.36,1);scale:.4}.site-shell[data-state=opened] .magpie-bridge__arc{stroke-dashoffset:0}.site-shell[data-state=opened] .magpie-bridge__birds circle{opacity:1;scale:1}.site-shell[data-state=opened] .magpie-bridge__birds circle:first-child{transition-delay:.55s}.site-shell[data-state=opened] .magpie-bridge__birds circle:nth-child(2){transition-delay:.8s}.site-shell[data-state=opened] .magpie-bridge__birds circle:nth-child(3){transition-delay:1.05s}.site-shell[data-state=opened] .magpie-bridge__birds circle:nth-child(4){transition-delay:1.3s}.site-shell[data-state=opened] .magpie-bridge__birds circle:nth-child(5){transition-delay:1.55s}.hero__copy{z-index:1;max-width:44rem;position:relative}.site-shell[data-state=sealed] .hero__copy{animation:.88s cubic-bezier(.22,1,.36,1) both hero-copy-arrive}.eyebrow{color:var(--gold-text);letter-spacing:.24em;text-transform:uppercase;text-wrap:balance;line-break:strict;margin:0 0 1.5rem;font-size:.72rem;font-weight:800}.recipient-name{text-transform:none}.hero h1{letter-spacing:0;width:max-content;max-width:100%;color:var(--starlight);text-shadow:0 0 2.2rem #ffcdaa66;margin:0 auto;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(3.45rem,5.7vw,4.5rem);font-weight:600;line-height:1.05}.hero-title__line{letter-spacing:.06em;text-indent:.06em;white-space:nowrap;display:inline-block}.hero-title__comma{opacity:.72;margin-inline:.02em .04em;font-size:.68em;display:inline-block;translate:0 -.08em}.hero__intro{max-width:32rem;color:var(--muted);letter-spacing:.035em;text-wrap:balance;word-break:auto-phrase;line-break:strict;margin:2rem auto 0;font-size:clamp(1rem,1.6vw,1.12rem);line-height:2.05}.word-unit,.text-tail{white-space:nowrap}.primary-button{color:#2a1c0c;letter-spacing:.04em;background:linear-gradient(150deg, #f6d9a2, var(--gold) 60%, #d9a95c);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:1.1rem;min-height:3.5rem;margin-top:2.7rem;padding:.95rem 1.3rem .95rem 1.5rem;font-weight:700;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:0 14px 34px #e9c07a3d,0 0 3.2rem #e9c07a29}.primary-button:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 18px 40px #e9c07a4d,0 0 4rem #e9c07a38}.primary-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.25rem}.hero__festival{bottom:max(1.6rem, calc(env(safe-area-inset-bottom) + .75rem));color:#fff6e8;letter-spacing:.42em;text-indent:.42em;white-space:nowrap;margin:0;font-size:.82rem;animation:4.5s ease-in-out infinite festival-glow;position:absolute;left:50%;transform:translate(-50%)}.story-section{width:min(960px,100% - 3rem);padding:4rem env(safe-area-inset-right) max(8rem, calc(6rem + env(safe-area-inset-bottom))) env(safe-area-inset-left);margin:0 auto}.section-lead{text-align:center;max-width:42rem;margin:0 auto 2.25rem}.section-lead h2,.chapter-card h2{letter-spacing:-.02em;color:var(--starlight);text-wrap:balance;word-break:auto-phrase;line-break:strict;margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.22}.story-lead{scroll-margin-top:clamp(2.25rem,8vh,4.5rem)}.story-lead .eyebrow,.story-lead h2{text-shadow:0 .2rem 1.5rem #180e36f2}.story-lead:after,.letter-lead:after{content:"";background:linear-gradient(90deg, transparent, var(--gold-soft), transparent);transform-origin:50%;width:4.5rem;height:1px;margin:1.35rem auto 0;transition:scale .7s cubic-bezier(.22,1,.36,1) .18s;display:block;scale:0 1}.story-lead.is-visible:after,.story-lead:focus-within:after,.letter-lead.is-visible:after,.letter-lead:focus-within:after{scale:1}.story-river{gap:5.5rem;max-width:48rem;margin:3.5rem auto 0;padding:.5rem 0 .5rem 2.9rem;list-style:none;display:grid;position:relative}.story-river:before{content:"";background:linear-gradient(180deg, transparent, var(--gold-soft) 12%, var(--gold-soft) 88%, transparent);width:1px;position:absolute;top:0;bottom:0;left:calc(.65rem - 1px)}.story-chapter{position:relative}.story-chapter:not(:last-child):before{content:"";z-index:0;pointer-events:none;background:radial-gradient(#ffcdbe33 0%,#f0aec41a 42%,#0000 74%);height:8rem;position:absolute;bottom:-5.5rem;left:6%;right:6%}.story-chapter__card{z-index:1;isolation:isolate;min-height:clamp(26rem,62vw,30rem);box-shadow:var(--shadow-night), 0 0 5rem #ffcdbe21;background:#30255a;border:1px solid #ffd6b461;border-radius:2rem;align-items:flex-end;display:flex;position:relative;overflow:hidden}.story-chapter__scene{z-index:-2;background:var(--night-soft);margin:0;position:absolute;inset:0}.story-chapter__scene:after{content:"";pointer-events:none;background:radial-gradient(circle at 50% 24%,#0000 18%,#160e302e 72%),linear-gradient(#1910360a 20%,#1c123a47 48%,#1f1540db 72%,#1d143bfa 100%);position:absolute;inset:0}.story-chapter__scene img{object-fit:cover;object-position:50% 50%;width:100%;height:100%;display:block}.story-chapter__content{z-index:1;width:100%;min-height:inherit;flex-direction:column;justify-content:flex-end;padding:clamp(1.5rem,4vw,2.4rem);display:flex;position:relative}.story-chapter__marker{z-index:4;background:radial-gradient(circle at 50% 45%, #fff7e0, var(--gold) 60%, #c99a4e);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 .5rem #e9c07ad9);width:1.3rem;height:1.3rem;position:absolute;top:-.1rem;left:-2.9rem}.story-chapter__kicker{color:var(--gold-text);letter-spacing:.22em;margin:0 0 .8rem;font-size:.78rem;font-weight:800}.story-chapter h3{color:var(--starlight);text-wrap:balance;word-break:auto-phrase;line-break:strict;text-shadow:0 .15rem 1.2rem #140c30e6;margin:0 0 .9rem;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(1.55rem,3.4vw,2.1rem);line-height:1.35}.story-chapter__body{color:#f5effa;text-wrap:pretty;max-width:34rem;word-break:auto-phrase;line-break:strict;text-shadow:0 .1rem 1rem #140c30e6;margin:0;font-size:1rem;line-height:1.9}.letter-block{margin-top:8rem}.letter-card{max-width:46rem;color:var(--paper-ink);background:radial-gradient(circle at 16% 10%, #f0aec433, transparent 16rem), linear-gradient(168deg, #fff9f4, var(--paper) 55%, #f9e8e0);box-shadow:var(--shadow-night), 0 0 7rem #ffcdbe33;border:1px solid #f0beaa8c;border-radius:2rem;margin:0 auto;padding:clamp(2rem,6vw,4.8rem);position:relative}.letter-card:before,.letter-card:after{content:"";border-color:#c9576252;width:4rem;height:4rem;position:absolute}.letter-card:before{border-top:1px solid;border-left:1px solid;border-radius:1rem 0 0;top:1.1rem;left:1.1rem}.letter-card:after{border-bottom:1px solid;border-right:1px solid;border-radius:0 0 1rem;bottom:1.1rem;right:1.1rem}.letter-card__pin{width:1.4rem;color:var(--rose-deep);position:absolute;top:1.45rem;right:1.6rem}.letter-card__pin svg,.chapter-card__heart svg{fill:currentColor;width:100%}.letter-card__salutation{margin:0 0 2rem;font-family:Songti SC,STSong,serif;font-size:1.25rem;font-weight:700}.letter-card__body{gap:1.4rem;display:grid}.letter-card__body p{color:#52413e;letter-spacing:.015em;text-wrap:pretty;word-break:auto-phrase;line-break:strict;margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(1.05rem,2.4vw,1.2rem);line-height:2}.letter-card__signature{flex-direction:column;align-items:flex-end;gap:.4rem;margin:3rem 0 0 auto;display:flex}.letter-card__signature span{color:var(--paper-muted);letter-spacing:.12em;font-size:.75rem}.letter-card__signature strong{font-family:Songti SC,STSong,serif;font-size:1.15rem}.letter-card__signature-date{font-family:Songti SC,STSong,serif}.story-portrait{background:var(--night-soft);box-shadow:var(--shadow-night), 0 0 5rem #ffcdbe29;border:1px solid #ffd6b466;border-radius:1.5rem;margin:2.25rem 0 0;position:relative;overflow:hidden}.story-portrait:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#fff8e68c,#0000);width:24%;position:absolute;inset:-30% auto -30% -45%;transform:translate(0,0)skew(-16deg)}.has-scroll-reveal .story-chapter.is-visible .story-portrait:after{animation:1.25s ease-out .48s both portrait-shimmer}.story-portrait img{width:100%;height:auto;display:block}.story-portrait figcaption{color:#ffedc9;letter-spacing:.28em;text-align:center;text-indent:.28em;background:linear-gradient(#0000,#2e1842a8);padding:3.5rem 1.5rem 1.4rem;font-family:Songti SC,STSong,serif;font-size:1.05rem;position:absolute;inset:auto 0 0}.chapter-card{text-align:center;box-shadow:var(--shadow-night), 0 0 1.4rem #f2cc8617, 0 0 4.8rem #cab8ff26, inset 0 0 2.4rem #ffe4c90f;background:radial-gradient(circle at 82% 8%,#ffcddc47,#0000 14rem) padding-box padding-box,linear-gradient(158deg,#4c317e 0%,#83407c 52%,#ad5378 100%) padding-box padding-box,linear-gradient(122deg,#f2cc8629 0%,#ffebc5c7 12%,#f0aec438 32%,#cab8ffad 52%,#f0aec433 72%,#ffebc59e 90%,#f2cc861f 100%) border-box;border:1px solid #0000;border-radius:2.25rem;margin-top:8rem;padding:clamp(2.5rem,7vw,5.4rem);position:relative;overflow:hidden}.chapter-card:before{content:"";pointer-events:none;background:#2316464d;position:absolute;inset:0}.chapter-card:after{content:"";z-index:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 5% 18%,#fff6dbf5 0 1px,#0000 3px),radial-gradient(circle at 21% 1%,#daccffe6 0 1px,#0000 2.7px),radial-gradient(circle at 79% 1.5%,#ffe7bde0 0 1px,#0000 3px),radial-gradient(circle at 96% 27%,#ecdaffe6 0 1px,#0000 2.8px),radial-gradient(circle at 96.5% 76%,#ffeecfeb 0 1px,#0000 3px),radial-gradient(circle at 77% 99%,#daccffe0 0 1px,#0000 2.8px),radial-gradient(circle at 24% 99%,#ffe7bde6 0 1px,#0000 3px),radial-gradient(circle at 3.5% 72%,#ecdaffe0 0 1px,#0000 2.8px);position:absolute;inset:0;box-shadow:inset 0 0 1.1rem #ffebcd14,inset 0 0 3.6rem #cab8ff14}.chapter-card__thread{z-index:2;width:min(34rem,88%);position:absolute;top:1.2rem;left:50%;overflow:visible;transform:translate(-50%)}.chapter-card__portrait{z-index:1;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#ffe7be33,#0000 68%);border-radius:50%;width:5.5rem;position:absolute;top:.45rem;left:clamp(2rem,12vw,9.5rem);overflow:hidden;box-shadow:0 0 1.4rem #cab8ff2e}.chapter-card__portrait:before{content:"";border:1px solid #ffe7be3d;border-radius:50%;position:absolute;inset:12%;box-shadow:0 0 .8rem #f2cc8624,inset 0 0 .7rem #cab8ff1f}.chapter-card__portrait--her{left:auto;right:clamp(2rem,12vw,9.5rem)}.chapter-card__portrait-art{z-index:1;opacity:.94;filter:drop-shadow(0 0 .35rem #ffe2b83d);width:300%;max-width:none;height:auto;position:absolute;top:0;-webkit-mask-image:linear-gradient(#000 0 72%,#0000 100%);mask-image:linear-gradient(#000 0 72%,#0000 100%)}.chapter-card__portrait--him .chapter-card__portrait-art{top:.25rem;left:0}.chapter-card__portrait--her .chapter-card__portrait-art{top:-.625rem;right:0}.chapter-card__thread-glow,.chapter-card__thread-base,.chapter-card__thread-line{fill:none;stroke-linecap:round}.chapter-card__thread-glow{stroke:#d0beff33;stroke-width:15px;opacity:.72;filter:blur(5px)}.chapter-card__thread-base{stroke:#ffe7bc61;stroke-width:1.5px;stroke-dasharray:2 10;filter:drop-shadow(0 0 5px #f2cc8657)}.chapter-card__thread-line{stroke:url(#chapter-qixi-thread);stroke-width:2.2px;stroke-dasharray:1;stroke-dashoffset:0;opacity:.94;filter:drop-shadow(0 0 6px #f2cc8680);transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1) .3s}.chapter-card__bridge-stars circle{fill:#fff0c7;opacity:.92;transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 4px #ffeec9e6);transition:opacity .42s,scale .52s cubic-bezier(.22,1,.36,1);scale:1}.has-scroll-reveal .chapter-card__thread-line{stroke-dashoffset:1px}.has-scroll-reveal .chapter-card__bridge-stars circle{opacity:0;scale:.4}.has-scroll-reveal .chapter-card.is-visible .chapter-card__thread-line,.has-scroll-reveal .chapter-card:focus-within .chapter-card__thread-line{stroke-dashoffset:0}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle,.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle{opacity:.92;scale:1}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle:first-child,.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle:first-child{transition-delay:.55s}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle:nth-child(2),.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle:nth-child(2){transition-delay:.72s}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle:nth-child(3),.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle:nth-child(3){transition-delay:.89s}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle:nth-child(4),.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle:nth-child(4){transition-delay:1.06s}.has-scroll-reveal .chapter-card.is-visible .chapter-card__bridge-stars circle:nth-child(5),.has-scroll-reveal .chapter-card:focus-within .chapter-card__bridge-stars circle:nth-child(5){transition-delay:1.23s}.chapter-card__heart{color:#ffd6e438;width:13rem;position:absolute;bottom:-4rem;right:-2.5rem;transform:rotate(-12deg)}.chapter-card .eyebrow,.chapter-card h2,.chapter-card__body,.chapter-card__note,.text-button{z-index:3;position:relative}.chapter-card .eyebrow{color:#fff2f7}.chapter-card h2{max-width:16em;margin:0 auto}.chapter-card__body{color:#fff2f7;text-wrap:pretty;max-width:40rem;word-break:auto-phrase;line-break:strict;margin:1.5rem auto 0;font-size:1.05rem;line-height:1.8}.chapter-card__note{color:#fff6e8;text-wrap:pretty;word-break:auto-phrase;line-break:strict;margin:.8rem auto 0;font-weight:700;line-height:1.7}.text-button{color:#fff6e8;text-underline-offset:.3em;cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:2.75rem;margin-top:1.3rem;padding:.6rem 1rem;text-decoration:underline}.site-footer{z-index:1;padding:1.6rem max(1rem, env(safe-area-inset-right)) max(1.8rem, calc(1rem + env(safe-area-inset-bottom))) max(1rem, env(safe-area-inset-left));color:#f7edf9;text-align:center;background:#231848c7;border-top:1px solid #ffe7b32e;font-size:.78rem;line-height:1.6;position:relative}.site-footer a{min-height:2.75rem;color:inherit;text-underline-offset:.25em;align-items:center;padding-inline:.4rem;text-decoration-color:#f7edf999;display:inline-flex}.site-footer a:hover{color:#fff6e8}.has-scroll-reveal [data-reveal]{opacity:0;transition:opacity .72s cubic-bezier(.22,1,.36,1),translate .72s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);translate:0 1.35rem}.has-scroll-reveal [data-reveal].is-visible,.has-scroll-reveal [data-reveal]:focus-within{opacity:1;translate:none}.has-scroll-reveal .story-chapter[data-reveal]{transition:opacity .5s;translate:none}.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__scene img{transition:scale 1.25s cubic-bezier(.22,1,.36,1) .12s;scale:1.045}.has-scroll-reveal .story-chapter[data-reveal].is-visible .story-chapter__scene img,.has-scroll-reveal .story-chapter[data-reveal]:focus-within .story-chapter__scene img{scale:1}.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__marker{transition:scale .72s cubic-bezier(.34,1.56,.64,1) 80ms,rotate .72s cubic-bezier(.34,1.56,.64,1) 80ms;rotate:-135deg;scale:0}.has-scroll-reveal .story-chapter[data-reveal].is-visible .story-chapter__marker,.has-scroll-reveal .story-chapter[data-reveal]:focus-within .story-chapter__marker{rotate:0deg;scale:1}.has-scroll-reveal .story-chapter[data-reveal]:after{content:"";border:1px solid var(--gold);opacity:0;pointer-events:none;border-radius:50%;width:1.3rem;height:1.3rem;position:absolute;top:-.1rem;left:-2.9rem}.has-scroll-reveal .story-chapter[data-reveal].is-visible:after{animation:.95s ease-out .32s both marker-ping}.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__kicker{opacity:0;transition:opacity .52s .2s,translate .64s cubic-bezier(.22,1,.36,1) .2s;translate:-1rem}.has-scroll-reveal .story-chapter[data-reveal] h3{opacity:0;filter:blur(5px);transition:opacity .56s .32s,translate .7s cubic-bezier(.22,1,.36,1) .32s,filter .62s .32s;translate:-1.3rem}.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__body{opacity:0;transition:opacity .56s .46s,translate .68s cubic-bezier(.22,1,.36,1) .46s;translate:0 .7rem}.has-scroll-reveal .story-chapter[data-reveal] .story-portrait{opacity:0;transition:opacity .62s .58s,translate .78s cubic-bezier(.22,1,.36,1) .58s,scale .78s cubic-bezier(.22,1,.36,1) .58s,rotate .78s cubic-bezier(.22,1,.36,1) .58s;translate:0 1.6rem;rotate:1.4deg;scale:.965}.has-scroll-reveal .story-chapter[data-reveal].is-visible .story-chapter__kicker,.has-scroll-reveal .story-chapter[data-reveal].is-visible h3,.has-scroll-reveal .story-chapter[data-reveal].is-visible .story-chapter__body,.has-scroll-reveal .story-chapter[data-reveal].is-visible .story-portrait,.has-scroll-reveal .story-chapter[data-reveal]:focus-within .story-chapter__kicker,.has-scroll-reveal .story-chapter[data-reveal]:focus-within h3,.has-scroll-reveal .story-chapter[data-reveal]:focus-within .story-chapter__body,.has-scroll-reveal .story-chapter[data-reveal]:focus-within .story-portrait{opacity:1;filter:none;translate:none;rotate:0deg;scale:1}.has-scroll-reveal .letter-card[data-reveal]:before,.has-scroll-reveal .letter-card[data-reveal]:after{opacity:0;transition:opacity .56s .26s,scale .72s cubic-bezier(.22,1,.36,1) .26s;scale:.65}.has-scroll-reveal .letter-card[data-reveal]:before{transform-origin:0 0}.has-scroll-reveal .letter-card[data-reveal]:after{transform-origin:100% 100%}.has-scroll-reveal .letter-card[data-reveal].is-visible:before,.has-scroll-reveal .letter-card[data-reveal].is-visible:after,.has-scroll-reveal .letter-card[data-reveal]:focus-within:before,.has-scroll-reveal .letter-card[data-reveal]:focus-within:after{opacity:1;scale:1}.has-scroll-reveal .letter-card[data-reveal] .letter-card__pin,.has-scroll-reveal .letter-card[data-reveal] .letter-card__salutation,.has-scroll-reveal .letter-card[data-reveal] .letter-card__body,.has-scroll-reveal .letter-card[data-reveal] .letter-card__signature{opacity:0;transition:opacity .56s,translate .68s cubic-bezier(.22,1,.36,1);translate:0 .7rem}.has-scroll-reveal .letter-card[data-reveal] .letter-card__pin{transition-delay:.18s;rotate:-10deg;scale:.65}.has-scroll-reveal .letter-card[data-reveal] .letter-card__salutation{transition-delay:.17s}.has-scroll-reveal .letter-card[data-reveal] .letter-card__body{transition-delay:.25s}.has-scroll-reveal .letter-card[data-reveal] .letter-card__signature{transition-delay:.34s}.has-scroll-reveal .letter-card[data-reveal].is-visible .letter-card__pin,.has-scroll-reveal .letter-card[data-reveal].is-visible .letter-card__salutation,.has-scroll-reveal .letter-card[data-reveal].is-visible .letter-card__body,.has-scroll-reveal .letter-card[data-reveal].is-visible .letter-card__signature,.has-scroll-reveal .letter-card[data-reveal]:focus-within .letter-card__pin,.has-scroll-reveal .letter-card[data-reveal]:focus-within .letter-card__salutation,.has-scroll-reveal .letter-card[data-reveal]:focus-within .letter-card__body,.has-scroll-reveal .letter-card[data-reveal]:focus-within .letter-card__signature{opacity:1;translate:none}.has-scroll-reveal .letter-card[data-reveal].is-visible .letter-card__pin,.has-scroll-reveal .letter-card[data-reveal]:focus-within .letter-card__pin{rotate:0deg;scale:1}noscript{color:var(--night-deep);text-align:center;background:var(--gold);padding:1rem;font-weight:700;display:block}@keyframes star-twinkle{0%,to{opacity:var(--star-opacity,.7);scale:1}50%{opacity:calc(var(--star-opacity,.7) * .35);scale:.72}}@keyframes moon-breathe{0%,to{box-shadow:0 0 2.5rem #f6e2b080,0 0 7rem #f6e2b038}50%{box-shadow:0 0 3rem #f6e2b09e,0 0 8.5rem #f6e2b04d}}@keyframes shoot{0%{opacity:0;transform:translate(0,0)}2%{opacity:1}11%{opacity:0;transform:translate(-36vw,24vh)}to{opacity:0;transform:translate(-36vw,24vh)}}@keyframes named-star-pulse{0%,to{scale:1}50%{scale:1.35}}@keyframes festival-glow{0%,to{text-shadow:0 0 .4rem #ffdeaa2e}50%{text-shadow:0 0 1rem #ffdeaa94}}@keyframes hero-copy-arrive{0%{opacity:0;translate:0 1.25rem}to{opacity:1;translate:none}}@keyframes portrait-shimmer{0%{opacity:0;transform:translate(0,0)skew(-16deg)}25%{opacity:.6}to{opacity:0;transform:translate(720%)skew(-16deg)}}@keyframes marker-ping{0%{opacity:.9;scale:.4}to{opacity:0;scale:2.4}}@media (width<=760px){.hero{width:min(100% - 2rem,36rem);min-height:min(760px,100svh);padding:max(5rem, calc(4rem + env(safe-area-inset-top))) env(safe-area-inset-right) max(5.5rem, calc(4rem + env(safe-area-inset-bottom))) env(safe-area-inset-left)}.hero h1{font-size:clamp(1.9rem,8.8vw,3.25rem)}.primary-button{gap:.7rem;padding-inline:1rem;font-size:.92rem}.named-star{top:15%}.named-star--vega{left:1%}.named-star--altair{top:19%;right:1%}.named-star span{letter-spacing:.22em;text-indent:.22em;font-size:.68rem}.magpie-bridge{width:108%;top:7%}.moon{top:5%;right:6%}.story-section{width:min(100% - 2rem,40rem);padding-top:2rem}.story-river{gap:3.5rem;margin-top:2.5rem;padding-left:0}.story-river:before{left:calc(.65rem - 1px)}.story-chapter__marker,.has-scroll-reveal .story-chapter[data-reveal]:after{top:-.6rem;left:0}.story-chapter__card{min-height:clamp(23rem,62vw,30rem)}.story-chapter:not(:last-child):before{height:5rem;bottom:-3.5rem;left:3%;right:3%}.story-chapter:nth-child(3) .story-chapter__scene img{object-position:46% 50%}.story-chapter__content{padding:1.6rem}.letter-block,.chapter-card{margin-top:6rem}.chapter-card{border-radius:1.75rem}.chapter-card__portrait{width:3rem;top:.4rem;left:.2rem}.chapter-card__portrait--her{left:auto;right:.2rem}.chapter-card__portrait--him .chapter-card__portrait-art{top:.1rem}.chapter-card__portrait--her .chapter-card__portrait-art{top:-.3rem}}@media (width<=760px) and (height<=680px){.hero{min-height:43rem}.magpie-bridge{width:96%;top:4%}.named-star{top:12%}.named-star--altair{top:18%}}@media (width<=390px){.hero{width:calc(100% - 1.25rem)}.story-section{width:calc(100% - 1.75rem)}.hero__festival{letter-spacing:.3em;text-indent:.3em;font-size:.75rem}.letter-card,.story-chapter__card,.story-portrait,.chapter-card{border-radius:1.4rem}.story-chapter__card{min-height:23rem}.story-chapter__content{padding:1.35rem}.letter-card{padding:2rem 1.35rem}.chapter-card{padding:2.5rem 1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.shooting-star,.story-portrait:after{display:none}.star{animation:none}.magpie-bridge__arc,.chapter-card__thread-line{stroke-dashoffset:0;transition:none}.magpie-bridge__birds circle{opacity:1;transition:none;scale:1}.chapter-card__bridge-stars circle{opacity:.92!important;transition:none!important;scale:1!important}.has-scroll-reveal [data-reveal],.has-scroll-reveal [data-reveal].is-visible,.has-scroll-reveal [data-reveal]:focus-within{opacity:1!important;transition:none!important;translate:none!important}.has-scroll-reveal .letter-card[data-reveal]:before,.has-scroll-reveal .letter-card[data-reveal]:after,.has-scroll-reveal .letter-card[data-reveal] .letter-card__pin,.has-scroll-reveal .letter-card[data-reveal] .letter-card__salutation,.has-scroll-reveal .letter-card[data-reveal] .letter-card__body,.has-scroll-reveal .letter-card[data-reveal] .letter-card__signature,.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__marker,.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__kicker,.has-scroll-reveal .story-chapter[data-reveal] h3,.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__body,.has-scroll-reveal .story-chapter[data-reveal] .story-chapter__scene img,.has-scroll-reveal .story-chapter[data-reveal] .story-portrait{opacity:1!important;filter:none!important;transition:none!important;translate:none!important;rotate:0deg!important;scale:1!important}.has-scroll-reveal .story-chapter[data-reveal]:after{animation:none!important}.letter-lead:after,.story-lead:after{transition:none;scale:1}}
