*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);background-image:radial-gradient(circle at 15% 15%,oklch(.24 .06 350 / .4) 0%,transparent 50%),radial-gradient(circle at 85% 80%,oklch(.22 .05 340 / .35) 0%,transparent 60%);color:var(--text-ink);min-height:100vh;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}button:focus-visible,a:focus-visible{outline:var(--shadow-focus);outline-offset:3px}.button-rose{background:var(--accent-rose);color:var(--text-ink);padding:14px 32px;min-height:var(--touch-target-min);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:1.1rem;box-shadow:var(--shadow-glow);transition:var(--transition-smooth);display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;will-change:transform,box-shadow}.button-rose:hover{background:var(--accent-rose-hover);transform:translateY(-4px) scale(1.02);box-shadow:0 18px 44px #f46eb4a6;border-color:#ffffff73}.button-rose:active{transform:translateY(-1px) scale(.99)}.glass-card{background:var(--bg-surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:var(--radius-card);box-shadow:var(--shadow-glass);transition:var(--transition-smooth);will-change:transform,border-color;backface-visibility:hidden}.glass-card:hover{border-color:var(--border-glass-hover);transform:translateY(-4px)}.app-header{text-align:center;padding:clamp(50px,8vw,80px) 20px clamp(40px,6vw,60px) 20px;background:linear-gradient(135deg,#360e25e0,#180613f5);border-bottom:1px solid var(--border-glass);box-shadow:var(--shadow-glass);position:relative;animation:floatIn 1.1s var(--ease-expo)}.app-header h1{font-family:var(--font-handwriting);font-size:clamp(2.4rem,6.5vw,4rem);line-height:1.2;color:var(--text-ink);text-shadow:0 4px 18px rgba(0,0,0,.5)}.app-header p{font-size:clamp(1.1rem,2.5vw,1.38rem);color:var(--text-muted);max-width:680px;margin:14px auto 0}.nav-bar{background:#1c0b15e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-glass);position:sticky;top:0;z-index:1000;padding:14px 0}.nav-bar ul{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;list-style:none;padding:0 16px}@media(max-width:680px){.nav-bar ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 16px;gap:10px}.nav-bar ul::-webkit-scrollbar{display:none}.nav-bar button{white-space:nowrap;flex-shrink:0}}.nav-bar button{color:var(--text-muted);font-weight:500;font-size:1.02rem;padding:8px 16px;min-height:var(--touch-target-min);border-radius:12px;transition:var(--transition-fast);background:transparent;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.nav-bar button svg{flex-shrink:0}.sticker-3d{display:inline-block;object-fit:contain;vertical-align:middle;flex-shrink:0;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45));-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sticker-3d--float{animation:stickerFloat 3.4s ease-in-out infinite;will-change:transform}@keyframes stickerFloat{0%,to{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(-5px) rotate(2.5deg)}}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-expo),transform .7s var(--ease-expo);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.app-header{position:relative;overflow:hidden;isolation:isolate}.app-header:before{content:"";position:absolute;top:-40%;right:-20%;bottom:-40%;left:-20%;z-index:-1;background:radial-gradient(40% 50% at 25% 15%,oklch(.72 .18 350 / .2),transparent 70%),radial-gradient(38% 45% at 78% 25%,oklch(.8 .14 60 / .14),transparent 70%),radial-gradient(45% 45% at 55% 95%,oklch(.6 .22 320 / .16),transparent 70%);filter:blur(26px);animation:auroraShift 16s ease-in-out infinite alternate;pointer-events:none}.ann-page{position:relative;overflow:hidden;isolation:isolate}.ann-page:before{content:"";position:absolute;top:-20%;right:-10%;bottom:-20%;left:-10%;z-index:-1;background:radial-gradient(45% 45% at 20% 20%,oklch(.72 .18 350 / .22),transparent 70%),radial-gradient(40% 40% at 80% 30%,oklch(.8 .14 60 / .16),transparent 70%),radial-gradient(50% 50% at 50% 90%,oklch(.6 .22 320 / .18),transparent 70%);filter:blur(30px);animation:auroraShift 14s ease-in-out infinite alternate}@keyframes auroraShift{0%{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.12)}}.ann-hearts{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.ann-hearts span{position:absolute;bottom:-8%;opacity:0;animation-name:annFloatUp;animation-timing-function:ease-in;animation-iteration-count:infinite}@keyframes annFloatUp{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:.8}88%{opacity:.5}to{transform:translateY(-108vh) rotate(40deg);opacity:0}}.ann-hero{position:relative;z-index:1;max-width:820px;margin:0 auto;text-align:center;padding:clamp(16px,4vw,32px) 0}.ann-badge{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#f46eb433,#ffa65926);border:1px solid oklch(.72 .18 350 / .4);border-radius:var(--radius-pill);padding:8px 22px;margin-bottom:22px;color:var(--accent-rose);font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ann-title-sticker{margin-bottom:6px}.ann-shimmer{font-family:var(--font-handwriting);font-size:clamp(2.6rem,9vw,5rem);line-height:1.1;margin:0 0 6px;background:linear-gradient(90deg,var(--accent-rose),oklch(.8 .14 60),var(--accent-rose));background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:annShimmer 3.5s linear infinite;text-shadow:0 0 60px oklch(.72 .18 350 / .3)}@keyframes annShimmer{0%{background-position:0% center}to{background-position:200% center}}.ann-names{font-size:clamp(1.2rem,3.5vw,1.7rem);font-weight:700;color:var(--text-ink);margin:0 0 32px;letter-spacing:.01em}.ann-countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:380px;margin:0 auto}.ann-countdown-grid--wide{max-width:560px;gap:clamp(10px,2.5vw,18px)}.ann-unit{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px 8px;box-shadow:0 8px 24px #00000059,inset 0 1px #ffffff14}.ann-unit--accent{background:linear-gradient(135deg,#f46eb4,#b744cf);border-color:#f46eb499;box-shadow:0 0 32px #f46eb466,inset 0 1px #fff3}.ann-unit-value{font-size:clamp(1.7rem,5vw,2.6rem);font-weight:800;line-height:1;color:var(--text-ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.ann-unit-label{margin-top:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.ann-together-caption{margin:16px 0 40px;color:var(--text-muted);font-style:italic;font-size:.95rem}.ann-message{max-width:640px;margin:0 auto 44px;text-align:left;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:clamp(22px,5vw,36px)}.ann-message p{color:var(--text-ink);font-size:clamp(1.05rem,2.4vw,1.2rem);line-height:1.75;margin:0 0 18px;opacity:0;transform:translateY(12px);animation:annFadeUp .7s var(--ease-expo) forwards}.ann-message p:last-child{margin-bottom:0}@keyframes annFadeUp{to{opacity:1;transform:translateY(0)}}.ann-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;max-width:720px;margin:0 auto 44px}.ann-highlight-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px 16px;transition:transform .3s var(--ease-expo),border-color .3s var(--ease-expo)}.ann-highlight-card:hover{transform:translateY(-4px);border-color:#f46eb459}.ann-highlight-title{margin-top:10px;font-weight:800;font-size:1.05rem;color:var(--accent-rose)}.ann-highlight-desc{margin-top:4px;font-size:.85rem;color:var(--text-muted);line-height:1.4}.ann-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.ann-btn-ghost{display:inline-flex;align-items:center;gap:8px;background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:var(--text-ink);padding:14px 28px;min-height:var(--touch-target-min);border-radius:var(--radius-pill);font-weight:600;font-size:1rem;cursor:pointer;transition:var(--transition-fast)}.ann-btn-ghost:hover{background:#ffffff29;border-color:#ffffff59}.ann-unlock-cta{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:16px 34px;border:none;border-radius:var(--radius-pill);font-size:1.1rem;font-weight:800;letter-spacing:.01em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#f46eb4,#f98d8e,#ffa659);background-size:180% auto;box-shadow:0 12px 32px #f46eb480;animation:annShimmer 3s linear infinite,annPulse 2.2s ease-in-out infinite}.ann-unlock-cta:hover{filter:brightness(1.08)}@keyframes annPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@media(max-width:480px){.ann-countdown-grid--wide{grid-template-columns:repeat(2,1fr)}}.nav-bar button:hover,.nav-bar button.active{color:var(--text-ink);background:#ffffff1f;border-color:#ffffff2e;box-shadow:0 4px 12px #00000040}.main-content{flex:1;max-width:1100px;margin:0 auto;padding:clamp(28px,5vw,48px) 20px;width:100%}@keyframes floatIn{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes softFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.app-footer{background:#13040ce6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--text-muted);text-align:center;padding:36px 20px;margin-top:auto;border-top:1px solid var(--border-glass)}:root{--bg-primary: oklch(.15 .035 345);--bg-gradient-end: oklch(.2 .05 348);--bg-surface: oklch(.2 .04 348 / .72);--bg-surface-hover: oklch(.25 .05 350 / .82);--border-glass: rgba(255, 255, 255, .14);--border-glass-hover: rgba(255, 255, 255, .34);--shadow-glass: 0 16px 48px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .18);--shadow-glow: 0 12px 36px oklch(.72 .18 350 / .45);--shadow-focus: 0 0 0 3px oklch(.8 .14 60 / .8);--font-display: "Playfair Display", "Outfit", serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-handwriting: "Pacifico", cursive;--text-ink: oklch(.97 .01 350);--text-muted: oklch(.82 .02 350);--accent-rose: oklch(.72 .18 350);--accent-rose-hover: oklch(.66 .2 350);--accent-gold: oklch(.8 .14 60);--ease-expo: cubic-bezier(.16, 1, .3, 1);--transition-fast: all .25s var(--ease-expo);--transition-smooth: all .45s var(--ease-expo);--radius-card: 18px;--radius-pill: 999px;--touch-target-min: 44px}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
