:root{--pink-1: #ffeff5;--pink-2: #ffd8e8;--pink-3: #ff8fb5;--pink-4: #f25f9c;--ink: #4b2a37;--cream: rgba(255, 252, 250, .82);--mint: #6ea07a}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%}body{font-family:"Source Han Serif SC",Songti SC,STSong,"Noto Serif CJK SC",serif;color:var(--ink);overflow:hidden;background:radial-gradient(circle at 18% 20%,#ffffffe6,#fff0 36%),radial-gradient(circle at 86% 16%,#ffbed68c,#ffbed600 38%),linear-gradient(150deg,var(--pink-1) 0%,var(--pink-2) 48%,#ffd0df 100%)}body.pointer-fine{cursor:none}.stage{width:100%;height:100%;position:relative;overflow:hidden}.trail-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9}.cursor-dot{position:fixed;top:0;left:0;width:18px;height:18px;border:2px solid rgba(242,95,156,.75);border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffffffe6,#ff8fb5e6);box-shadow:0 0 18px #f25f9c73;transform:translate(-50%,-50%);pointer-events:none;z-index:10}.ambient-layer{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.ambient-heart{position:absolute;bottom:-12vh;color:#f25f9c59;animation-name:float-heart;animation-timing-function:linear;animation-iteration-count:infinite;user-select:none}@keyframes float-heart{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:1}to{transform:translateY(-120vh) rotate(360deg);opacity:0}}.page-track{position:absolute;inset:0;z-index:2;transition:transform .8s cubic-bezier(.22,1,.36,1);will-change:transform}.page{width:100%;height:100vh;position:relative;opacity:.35;transform-origin:center center;transition:opacity .55s ease,filter .55s ease;filter:saturate(.8) blur(.3px);pointer-events:none}.page.is-active{opacity:1;filter:saturate(1) blur(0);pointer-events:auto}.page.is-past{transform:rotateX(8deg) scale(.985)}.page.is-future{transform:rotateX(-8deg) scale(.985)}.page-scroll{height:100vh;overflow-y:auto;padding:8vh 0;scrollbar-width:thin;scrollbar-color:rgba(242,95,156,.45) transparent}.page-scroll::-webkit-scrollbar{width:8px}.page-scroll::-webkit-scrollbar-thumb{background:#f25f9c6b;border-radius:999px}.page-shell{width:min(980px,92vw);margin:0 auto;background:var(--cream);border:1px solid rgba(255,255,255,.65);border-radius:26px;box-shadow:0 24px 58px #6c2e4829;backdrop-filter:blur(8px);min-height:142vh;padding:clamp(24px,4vw,42px)}.eyebrow{display:inline-block;letter-spacing:.16em;font-size:.82rem;color:#4b2a37a8;text-transform:uppercase;margin-bottom:14px}h1,h2{font-family:STKaiti,KaiTi,"FangSong","Source Han Serif SC",serif;color:#cc356f;line-height:1.15}h1{font-size:clamp(2.5rem,7vw,4.4rem);margin-bottom:24px}h2{font-size:clamp(2rem,6vw,3.2rem);margin-bottom:16px}.lead{font-size:clamp(1rem,2.6vw,1.18rem);line-height:1.9;margin-bottom:18px}.letter-box{border:1px solid rgba(242,95,156,.22);background:#fffc;border-radius:18px;padding:22px;min-height:200px;line-height:1.95;font-size:1.05rem;margin-top:16px}.typing-cursor{display:inline-block;margin-left:2px;animation:cursor-blink 1s step-end infinite;color:#cc356f}@keyframes cursor-blink{50%{opacity:0}}.timer-card{margin-top:22px;display:inline-flex;gap:10px;flex-wrap:wrap}.timer-item{min-width:86px;text-align:center;background:linear-gradient(160deg,#fffffff2,#ffe6f0f2);border:1px solid rgba(255,185,210,.7);border-radius:14px;padding:10px 12px}.timer-value{display:block;font-weight:700;font-size:1.3rem;color:#cb2f6b}.timer-label{display:block;font-size:.76rem;color:#4b2a37bd}.timer-note{margin-top:12px;color:#4b2a37b8;font-size:.86rem}.timeline{margin-top:22px;display:grid;gap:14px}.timeline-item{background:#ffffffd1;border:1px solid rgba(255,188,214,.68);border-radius:14px;padding:16px}.timeline-item strong{color:#c9326d;font-size:1rem;margin-right:8px}.wishlist{margin-top:18px;display:grid;gap:12px}.wish{padding:16px;border-radius:14px;border:1px dashed rgba(242,95,156,.42);background:#ffffffbf}.heart-art{margin-top:22px;border-radius:18px;border:1px solid rgba(255,171,200,.6);background:radial-gradient(circle at 50% 20%,#ffffffeb,#ffecf5c2 58%,#ffdceabd);min-height:270px;padding:14px;display:grid;place-items:center;position:relative;overflow:hidden;isolation:isolate}.floral-heart{width:min(360px,82vw);aspect-ratio:1 / 1;position:relative;z-index:2}.floral-heart:before{content:"";position:absolute;inset:20% 18%;border-radius:50%;background:radial-gradient(circle,#ffa3c959,#ffa3c900);filter:blur(16px)}.line-flower,.tail-flower{position:absolute;left:var(--line-x);top:var(--line-y);line-height:1;user-select:none;pointer-events:none}.line-flower{font-size:var(--line-size);color:hsl(var(--line-hue),86%,64%);text-shadow:0 0 7px rgba(255,255,255,.86),0 5px 12px rgba(218,58,130,.34);opacity:.25;transform:translate(-50%,-50%) rotate(var(--line-rotate)) scale(.7);animation:line-bloom 3.1s ease-in-out infinite;animation-delay:var(--line-delay)}.tail-flower{left:var(--tail-x);top:var(--tail-y);font-size:var(--tail-size);color:hsl(var(--tail-hue),92%,60%);text-shadow:0 0 8px rgba(255,255,255,.92),0 0 12px rgba(255,96,167,.75),0 0 22px rgba(255,96,167,.5);opacity:0;transform:translate(-50%,-50%) scale(.25);animation:tail-chase 4.2s linear infinite;animation-delay:var(--tail-delay)}@keyframes line-bloom{0%,to{opacity:.2;transform:translate(-50%,-50%) rotate(var(--line-rotate)) scale(.68)}45%{opacity:.85;transform:translate(-50%,-50%) rotate(var(--line-rotate)) scale(1.05)}}@keyframes tail-chase{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.24)}50%{opacity:.6;transform:translate(-50%,-50%) scale(.94)}to{opacity:0;transform:translate(-50%,-50%) scale(.25)}}.scroll-tip{margin-top:20px;color:#4b2a37ad;font-size:.9rem}.pager{position:fixed;right:clamp(8px,2vw,24px);top:50%;transform:translateY(-50%);z-index:8;display:grid;gap:8px}.pager button{width:12px;height:32px;border:0;border-radius:999px;background:#f25f9c47;cursor:pointer;transition:transform .25s ease,background .25s ease}.pager button.active{background:#f25f9ce0;transform:scale(1.05)}.footer-note{margin-top:24px;font-size:.9rem;color:#4b2a37a8}@media (max-width: 768px){body{overflow:hidden}.page-scroll{padding:5vh 0}.page-shell{min-height:132vh;border-radius:18px;padding:20px 16px}.timer-card{width:100%;justify-content:space-between}.timer-item{min-width:22%;padding:10px 8px}.pager{right:6px}.pager button{width:9px;height:28px}}@media (prefers-reduced-motion: reduce){.line-flower,.tail-flower,.ambient-heart{animation-duration:.001ms!important;animation-iteration-count:1!important}}
