:root{--bg-0: #0a0618;--bg-1: #150b2e;--bg-2: #1f1142;--ink: #f5ecff;--ink-dim: #c9b8e8;--ink-faint: rgba(245, 236, 255, .45);--gold: #f6d8a0;--rose: #ff8fb3;--violet: #a97dff;--cyan: #8fe3ff;--line: linear-gradient(180deg, #ffb6c1 0%, #c9a0ff 50%, #8fe3ff 100%);--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--serif: "Cormorant Garamond", "Instrument Serif", serif;--sans: "Inter", system-ui, sans-serif;--script: "Dancing Script", cursive}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-0);color:var(--ink);font-family:Inter,system-ui,sans-serif;overflow-x:hidden;-webkit-overflow-scrolling:touch}body{background:radial-gradient(ellipse at 20% 10%,rgba(169,125,255,.25),transparent 50%),radial-gradient(ellipse at 80% 30%,rgba(255,143,179,.22),transparent 55%),radial-gradient(ellipse at 50% 90%,rgba(143,227,255,.18),transparent 60%),linear-gradient(180deg,#0a0618,#150b2e,#1a0d38 80%,#0a0618);background-attachment:fixed;min-height:100vh;font-feature-settings:"ss01","cv11","kern","liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width: 900px){body{background-attachment:scroll}body:after{display:none}}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}.stars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;opacity:.6;animation:twinkle var(--d, 3s) ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.8)}50%{opacity:.9;transform:scale(1.2)}}.particle{position:fixed;pointer-events:none;z-index:1;color:var(--rose);opacity:.5;animation:float var(--d, 12s) linear infinite}@keyframes float{0%{transform:translateY(100vh) translate(0) rotate(0);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translateY(-10vh) translate(50px) rotate(360deg);opacity:0}}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1.5rem;z-index:2}.hero-eyebrow{font-family:Dancing Script,cursive;font-size:clamp(1.2rem,2vw,1.6rem);color:var(--gold);letter-spacing:.05em;margin-bottom:1rem;text-shadow:0 0 20px rgba(246,216,160,.5)}.hero-title{font-family:var(--serif);font-size:clamp(3rem,9vw,7.5rem);font-weight:500;line-height:1.02;letter-spacing:-.025em;margin:0;background:linear-gradient(135deg,#fff,#ffd0e0 40%,#c9a0ff,#8fe3ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 60px rgba(255,180,220,.3)}.hero-eyebrow{font-variant-numeric:tabular-nums}.hero-tag{margin-top:1.75rem;display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .9rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 10px var(--rose);animation:pulseDot 2s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.hero-title em{font-style:italic;font-family:Cormorant Garamond,serif}.hero-names{margin-top:1rem;font-family:Dancing Script,cursive;font-size:clamp(1.6rem,3vw,2.4rem);color:var(--rose);letter-spacing:.02em;text-shadow:0 0 24px rgba(255,143,179,.5)}.hero-names span{color:var(--gold);margin:0 .4rem}.hero-sub{margin-top:1.5rem;font-size:clamp(1rem,1.4vw,1.15rem);color:var(--ink-dim);max-width:36rem;font-weight:300;letter-spacing:.02em;line-height:1.7}.hero-characters{margin-top:2.5rem;display:flex;gap:clamp(1.5rem,5vw,4rem);align-items:flex-end;justify-content:center}.hero-emblem{margin-top:2.5rem;display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:420px}.hero-emblem svg{width:100%;height:auto;max-width:420px}.hero-emblem-caption{font-family:Dancing Script,cursive;font-size:clamp(1.6rem,3vw,2.4rem);background:linear-gradient(135deg,#fff,#ffd0e0 40%,#f6d8a0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.02em;text-shadow:0 0 30px rgba(255,143,179,.4)}.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--ink-dim);font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;opacity:.7;animation:pulse 2.4s ease-in-out infinite}.scroll-cue .arrow{width:1px;height:40px;background:linear-gradient(180deg,var(--ink-dim),transparent)}@keyframes pulse{0%,to{opacity:.3;transform:translate(-50%)}50%{opacity:.9;transform:translate(-50%,8px)}}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--rose),var(--violet),var(--cyan));transform-origin:0 50%;z-index:100;box-shadow:0 0 12px #ff8fb399}.timeline-section{position:relative;padding:clamp(3rem,8vw,7rem) 1rem clamp(4rem,10vw,8rem);z-index:2}.timeline-wrap{max-width:1180px;margin:0 auto;position:relative}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translate(-50%);background:var(--line);border-radius:2px;box-shadow:0 0 16px #c9a0ff99,0 0 32px #ff8fb366;transform-origin:top}.timeline-event{position:relative;display:grid;grid-template-columns:1fr 84px 1fr;align-items:center;margin-bottom:clamp(3rem,8vw,6rem)}.timeline-event.left .event-card{grid-column:1;text-align:right}.timeline-event.left .event-spacer{grid-column:3}.timeline-event.right .event-card{grid-column:3;text-align:left}.timeline-event.right .event-spacer{grid-column:1}.event-dot-wrap{grid-column:2;display:flex;justify-content:center;position:relative;z-index:3}.event-heart{position:relative;display:grid;place-items:center;filter:drop-shadow(0 0 12px rgba(255,143,179,.6)) drop-shadow(0 0 28px rgba(201,160,255,.35))}.event-heart:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1px solid rgba(255,143,179,.25);animation:ring 3s ease-out infinite;pointer-events:none}@keyframes ring{0%{transform:scale(.7);opacity:.8}to{transform:scale(1.8);opacity:0}}.event-card{position:relative;padding:clamp(1.4rem,2.6vw,2rem) clamp(1.4rem,2.6vw,2.1rem);background:linear-gradient(135deg,#ffffff0d,#c9a0ff06);border-radius:24px;backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:0 24px 80px #0006,inset 0 1px #ffffff12;overflow:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s,border-color .4s}.event-ghost-date{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3.2vw,2.9rem);font-weight:500;line-height:1.1;letter-spacing:-.015em;background:linear-gradient(135deg,#fff,#ffd0e0,#c9a0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.6rem;font-variant-numeric:tabular-nums oldstyle-nums;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.timeline-event.left .event-ghost-date{text-align:right}.timeline-event.right .event-ghost-date{text-align:left}.event-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;border-radius:22px;background:linear-gradient(135deg,#ff8fb380,#c9a0ff40 40%,#8fe3ff80);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.event-card:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:24px;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,143,179,.15),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}.event-card:hover{transform:translateY(-4px);box-shadow:0 30px 80px #0000008c,0 0 40px #ff8fb326,inset 0 1px #ffffff1f}.event-card:hover:after{opacity:1}.event-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap}.timeline-event.left .event-head{flex-direction:row-reverse}.event-chapter{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:.5rem}.event-chapter:before{content:"";width:18px;height:1px;background:linear-gradient(90deg,transparent,var(--rose));opacity:.6}.timeline-event.left .event-chapter:before{background:linear-gradient(90deg,var(--rose),transparent)}.event-chapter i{font-style:normal;opacity:.4}.event-date-pill{display:inline-flex;align-items:center;padding:.3rem .8rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;color:var(--gold);background:#f6d8a00f;border:1px solid rgba(246,216,160,.22);border-radius:6px;font-weight:400;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-transform:lowercase}.event-title{font-family:Cormorant Garamond,serif;font-size:clamp(1.4rem,3vw,2rem);font-weight:500;margin:0 0 .75rem;color:#fff;line-height:1.18;letter-spacing:-.01em}.event-title em{font-style:italic;color:var(--rose)}.event-body{color:var(--ink-dim);font-size:clamp(.92rem,1.1vw,1rem);line-height:1.7;font-weight:300;margin:0}.event-body strong{color:var(--ink);font-weight:500}.event-foot{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.timeline-event.left .event-foot{flex-direction:row-reverse}.event-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .75rem .3rem .6rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.02em;text-transform:none;color:var(--cyan);border:1px solid rgba(143,227,255,.22);border-radius:999px;background:#8fe3ff0a;white-space:nowrap;font-weight:400}.event-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.event-scene{display:flex;opacity:.95;flex-shrink:0;max-width:100%}.event-scene>*{max-width:100%}.event-scene svg{max-width:100%;height:auto}.event-scene img{max-width:100%;height:auto}.timeline-event.left .event-scene{justify-content:flex-end}.timeline-event.right .event-scene{justify-content:flex-start}.finale{position:relative;min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem 6rem;z-index:2}.finale-eyebrow{font-family:Dancing Script,cursive;color:var(--gold);font-size:1.4rem;letter-spacing:.03em;margin-bottom:1rem}.finale-title{font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,6vw,4.5rem);font-weight:500;margin:0;background:linear-gradient(135deg,#fff,#ffb6c1 50%,#c9a0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}.finale-title em{font-style:italic}.finale-body{margin-top:1.5rem;color:var(--ink-dim);font-size:1.1rem;font-weight:300;line-height:1.8;max-width:38rem}.finale-heart{margin-top:2.5rem;filter:drop-shadow(0 0 30px rgba(255,143,179,.7));animation:beat 1.6s ease-in-out infinite}@keyframes beat{0%,to{transform:scale(1)}25%{transform:scale(1.08)}40%{transform:scale(1)}60%{transform:scale(1.12)}75%{transform:scale(1)}}.footer-note{margin-top:3rem;display:inline-flex;align-items:center;gap:1rem;padding:.9rem 1.8rem;font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4vw,3rem);font-weight:500;letter-spacing:.08em;background:linear-gradient(135deg,#fff,#ffd0e0,#c9a0ff 70%,#8fe3ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;position:relative;text-shadow:0 0 60px rgba(255,180,220,.4);font-variant-numeric:tabular-nums oldstyle-nums}.footer-note:before,.footer-note:after{content:"";width:clamp(2rem,6vw,4rem);height:1px;background:linear-gradient(90deg,transparent,rgba(246,216,160,.6),transparent);-webkit-text-fill-color:initial}@media (max-width: 1024px){.timeline-event{grid-template-columns:1fr 72px 1fr}.event-heart svg{width:50px;height:46px}}@media (max-width: 768px){.timeline-section{padding:2.5rem 1rem 4rem}.timeline-line{left:28px}.timeline-event{grid-template-columns:56px 1fr;margin-bottom:2.5rem}.timeline-event.left .event-card,.timeline-event.right .event-card{grid-column:2;text-align:left}.timeline-event.left .event-spacer,.timeline-event.right .event-spacer{display:none}.event-dot-wrap{grid-column:1}.event-heart svg{width:44px;height:40px}.timeline-event.left .event-head,.timeline-event.right .event-head{flex-direction:row}.event-foot,.timeline-event.left .event-foot,.timeline-event.right .event-foot{flex-direction:column;align-items:flex-start;gap:1rem}.event-scene,.timeline-event.left .event-scene,.timeline-event.right .event-scene{width:100%;justify-content:center}.event-scene>*{width:100%;max-width:420px}.event-card{padding:1.2rem;border-radius:20px;backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(135deg,#201246b8,#1a0d38b8);box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0f}.event-card:before{border-radius:20px}.event-card:after{display:none}.event-card:hover{transform:none}.event-date-pill,.hero-tag{backdrop-filter:none;-webkit-backdrop-filter:none}.timeline-event.left .event-ghost-date,.timeline-event.right .event-ghost-date{text-align:left}.hero{padding:2rem 1rem 5rem}.hero-characters{gap:.5rem;margin-top:1.75rem}.finale{padding:3rem 1rem 5rem;min-height:70vh}}@media (max-width: 480px){.hero-characters{transform:scale(.78);transform-origin:center top}.hero-emblem{max-width:100%}.hero-tag{font-size:.6rem;letter-spacing:.12em;padding:.3rem .75rem}.event-head{gap:.5rem}.event-chapter{font-size:.6rem;letter-spacing:.1em}.event-ghost-date{font-size:1.35rem}.event-tag{font-size:.6rem;letter-spacing:.08em;padding:.25rem .6rem}.event-foot{gap:.6rem}.event-scene svg{max-width:100%;height:auto}.scroll-cue{bottom:1rem;font-size:.65rem}.footer-note{font-size:clamp(1.5rem,7vw,2.2rem);padding:.7rem 1.2rem}.footer-note:before,.footer-note:after{width:1.5rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
