:root{--bg: #fff7f8;--bg-alt: #fdeef3;--card: #ffffff;--ink: #2e2130;--muted: #7d6977;--line: #f1d9e2;--accent: #d6457a;--accent-soft: #fde2ec;--lilac: #8b5fd6;--lilac-soft: #efe6fd;--sky: #2f7bd6;--sky-soft: #e3effd;--gold: #e09a2b;--gold-soft: #fff1d9;--grad: linear-gradient(120deg, #ff6f9f 0%, #c06cf0 50%, #5d9bff 100%);--grad-soft: linear-gradient(135deg, #fff0f5 0%, #f5edff 50%, #eaf3ff 100%);--glow: 0 0 0 1px rgba(214, 69, 122, .15), 0 18px 40px -18px rgba(214, 69, 122, .45);--shadow: 0 12px 34px -20px rgba(120, 40, 80, .4);--serif: "Fraunces", Georgia, serif;--sans: "DM Sans", system-ui, sans-serif;--script: "Caveat", cursive;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #160f1c;--bg-alt: #1f1527;--card: #251a2e;--ink: #f7ecf4;--muted: #b8a4b5;--line: #3e2b45;--accent: #ff84ae;--accent-soft: #42213a;--lilac: #c4a2ff;--lilac-soft: #2e2343;--sky: #8cc0ff;--sky-soft: #1c2a42;--gold: #f3c06a;--gold-soft: #3a2c18;--grad: linear-gradient(120deg, #ff8fb6 0%, #d18cff 50%, #86b6ff 100%);--grad-soft: linear-gradient(135deg, #2a1830 0%, #241c36 50%, #1a2238 100%);--glow: 0 0 0 1px rgba(255, 132, 174, .25), 0 18px 40px -16px rgba(255, 132, 174, .35);--shadow: 0 12px 34px -18px rgba(0, 0, 0, .85);color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0}.script{font-family:var(--script);font-size:1.5em;color:var(--accent)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 20px 48px;position:relative;background:radial-gradient(60% 50% at 20% 15%,var(--accent-soft),transparent 70%),radial-gradient(50% 45% at 85% 80%,var(--sky-soft),transparent 70%),var(--bg)}.hero h1{font-size:clamp(2.6rem,9vw,5.5rem);margin:16px 0 8px;letter-spacing:-.02em}.amp{font-style:italic;font-weight:400;color:var(--accent)}.hero-sub{margin:0 0 20px;color:var(--muted)}.hero-lede{max-width:34rem;color:var(--muted);margin:0 0 40px}.hero-meet{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 24px;box-shadow:var(--shadow)}.countdown{display:flex;gap:12px;justify-content:center;margin-top:12px}.countdown-cell{display:flex;flex-direction:column;min-width:56px}.countdown-num{font-family:var(--serif);font-size:2rem;font-variant-numeric:tabular-nums;color:var(--accent)}.countdown-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.countdown-done{font-family:var(--serif);font-size:1.4rem;margin:12px 0 0;color:var(--accent)}.scroll-cue{position:absolute;bottom:20px;color:var(--muted);text-decoration:none;font-size:1.4rem;animation:bob 2s ease-in-out infinite}@keyframes bob{50%{transform:translateY(6px)}}.section{max-width:1040px;margin:0 auto;padding:96px 16px}.section-head{text-align:center;margin-bottom:48px}.section-head h2{font-size:clamp(2rem,5vw,3rem);margin-top:8px}.note{color:var(--muted);font-style:italic;max-width:32rem;margin:12px auto 0}.day{position:relative}.day-marker{display:flex;flex-direction:column;align-items:center;margin:48px 0 24px;position:relative;z-index:1}.day-label{background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:999px}.day-date{font-family:var(--serif);font-style:italic;color:var(--muted);margin-top:6px;background:var(--bg);padding:0 10px}.day-marker-future .day-label{background:transparent;color:var(--accent);border:1.5px dashed var(--accent)}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;top:-24px;bottom:-24px;left:50%;width:2px;transform:translate(-50%);background:linear-gradient(var(--line),var(--accent-soft),var(--line))}.entry{position:relative;width:50%;padding:0 40px 28px}.entry-left{margin-right:50%}.entry-right{margin-left:50%}.entry-dot{position:absolute;top:14px;width:40px;height:40px;display:grid;place-items:center;background:var(--card);border:2px solid var(--line);border-radius:50%;font-size:1.1rem;z-index:1}.entry-left .entry-dot{right:-20px}.entry-right .entry-dot{left:-20px}.entry-highlight .entry-dot{border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow)}.entry-highlight .card{border-color:var(--accent)}.card-lost{background:repeating-linear-gradient(-45deg,var(--card),var(--card) 10px,var(--bg-alt) 10px,var(--bg-alt) 20px);border-style:dashed}.entry-time{font-size:.8rem;font-weight:700;color:var(--accent);letter-spacing:.06em}.card h3{font-size:1.3rem;margin:4px 0 8px}.entry-body{margin:0 0 8px;color:var(--muted)}.quotes{display:flex;flex-direction:column;gap:8px;margin-top:10px}.quote{margin:0;padding:10px 14px;border-radius:14px;max-width:92%}.quote-S{background:var(--sky-soft);align-self:flex-end;border-bottom-right-radius:4px}.quote-M{background:var(--accent-soft);align-self:flex-start;border-bottom-left-radius:4px}.quote figcaption{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.quote-S figcaption{color:var(--sky)}.quote-M figcaption{color:var(--accent)}.quote blockquote{margin:2px 0 0;font-family:var(--serif);font-size:1rem}.gloss{margin:4px 0 0;font-size:.82rem;color:var(--muted);font-style:italic}.tag{display:inline-block;margin-top:12px;font-size:.78rem;padding:4px 10px;border-radius:999px;background:var(--bg-alt);color:var(--muted)}.section-plan{max-width:720px}.plan{list-style:none;padding:0;margin:0;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.plan li{display:grid;grid-template-columns:40px 96px 1fr;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line)}.plan li:last-child{border-bottom:0}.plan-icon{font-size:1.3rem}.plan-time{font-weight:700;font-size:.85rem;color:var(--accent)}.dress{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.dress-card{display:flex;flex-direction:column;gap:4px;padding:16px 20px;border-radius:16px;background:var(--sky-soft);font-family:var(--serif);font-size:1.1rem}.dress-card:first-child{background:var(--accent-soft)}.favs{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.favs-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line)}.favs-row:last-child{border-bottom:0}.favs-header{font-family:var(--serif);font-size:1.15rem;background:var(--bg-alt)}.favs-header span:nth-child(2){color:var(--sky)}.favs-header span:nth-child(3){color:var(--accent)}.favs-label{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding-top:2px}.munch{margin-top:48px;text-align:center}.munch h3{font-size:1.6rem}.munch em{color:var(--accent)}.munch ul{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.munch li{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card)}.gate,.gate-loader{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(ellipse at top,var(--accent-soft),var(--bg) 70%)}.gate-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:36px 28px;box-shadow:var(--shadow);text-align:center}.gate-card h1{font-size:1.9rem;margin:8px 0 4px}.gate-sub{color:var(--muted);margin:0 0 22px}.gate-field{display:flex;border:1px solid var(--line);border-radius:12px;background:var(--bg);overflow:hidden}.gate-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gate-field input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;padding:12px 14px;outline:none}.gate-toggle{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.85rem;font-weight:700;padding:0 14px;cursor:pointer}.gate-toggle:hover,.gate-toggle:focus-visible{color:var(--accent)}.gate-error{color:var(--accent);font-size:.9rem;margin:10px 0 0}.gate-submit{width:100%;margin-top:16px;padding:12px;border:0;border-radius:12px;background:var(--accent);color:#fff;font:inherit;font-weight:700;cursor:pointer}.gate-submit:disabled{opacity:.5;cursor:default}.gate-heart{display:inline-block;font-size:3rem;line-height:1;animation:heartbeat 1.1s ease-in-out infinite}.gate-heart-still{animation:none;font-size:2.4rem}.gate-loader{text-align:center;align-content:center}.gate-loader .gate-heart{font-size:4.5rem}.gate-loader p{font-family:var(--script);font-size:1.6rem;color:var(--muted);margin:18px 0 0}@keyframes heartbeat{0%,40%,to{transform:scale(1)}15%{transform:scale(1.25)}25%{transform:scale(1.05)}32%{transform:scale(1.2)}}@media (prefers-reduced-motion: reduce){.gate-heart{animation-duration:2.4s}}.families{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.family{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--sky);border-radius:18px;padding:24px;box-shadow:var(--shadow);text-align:center}.family-M{border-top-color:var(--accent)}.family h3{margin:0 0 18px;font-size:1.3rem}.tree-tier{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.tree-link{width:1px;height:18px;margin:6px auto;background:var(--line)}.person{display:inline-flex;flex-direction:column;padding:8px 14px;border-radius:12px;background:var(--bg-alt);font-family:var(--serif);line-height:1.3}.person small{font-family:var(--sans);font-size:.75rem;color:var(--muted)}.person-kid{background:var(--sky-soft)}.family-M .person-kid{background:var(--accent-soft)}.person-me{font-family:var(--script);font-size:1.6rem;background:none;color:var(--sky)}.family-M .person-me{color:var(--accent)}.tree-branches{gap:18px;align-items:flex-start}.tree-link-short{height:12px;margin:0 auto}.sibling{display:flex;flex-direction:column;align-items:center}.sibling-kids{display:flex;gap:6px}.family-friends{margin:18px 0 0;font-size:.9rem;color:var(--muted)}.promises{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.promise{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.promise span{font-size:1.6rem}.promise p{margin:8px 0 0;font-family:var(--serif);font-size:1.05rem}.footer{text-align:center;padding:80px 16px 64px;background:var(--bg-alt)}.footer-dadi{font-family:var(--script);font-size:3.5rem;margin:0;display:flex;gap:20px;justify-content:center;align-items:center;color:var(--accent)}.footer-dadi .heart{font-size:2rem}.footer-line{font-family:var(--serif);font-style:italic;margin:12px 0 4px}.footer-small{color:var(--muted);margin:0}body{background:radial-gradient(900px 600px at 0% 0%,var(--accent-soft),transparent 60%),radial-gradient(900px 700px at 100% 40%,var(--lilac-soft),transparent 60%),radial-gradient(800px 600px at 0% 100%,var(--sky-soft),transparent 60%),var(--bg);background-attachment:fixed}main,.hero,.footer{position:relative;z-index:1}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:shimmer 8s ease-in-out infinite}@keyframes shimmer{50%{background-position:100% 0}}.hero{background:transparent;overflow:hidden}.hero:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(30% 30% at 25% 30%,rgba(255,111,159,.28),transparent 70%),radial-gradient(30% 30% at 75% 35%,rgba(192,108,240,.22),transparent 70%),radial-gradient(35% 35% at 50% 80%,rgba(93,155,255,.2),transparent 70%);filter:blur(10px);animation:blobs 18s ease-in-out infinite alternate;z-index:-1}@keyframes blobs{to{transform:rotate(12deg) scale(1.08)}}.hero .eyebrow{color:var(--accent);font-weight:700}.hero h1{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 .25em}.amp-heart{display:inline-block;font-size:.7em;animation:heartbeat 1.4s ease-in-out infinite;filter:drop-shadow(0 6px 14px rgba(214,69,122,.45))}.hero-sparkle{position:absolute;font-size:1.8rem;opacity:.85;animation:twinkle 3.5s ease-in-out infinite;pointer-events:none}.hero-sparkle.s1{top:14%;left:12%}.hero-sparkle.s2{top:22%;right:14%;animation-delay:.8s;font-size:2.2rem}.hero-sparkle.s3{bottom:24%;left:16%;animation-delay:1.6s}.hero-sparkle.s4{bottom:18%;right:12%;animation-delay:2.4s;font-size:2.4rem}@keyframes twinkle{0%,to{transform:scale(.85) rotate(-8deg);opacity:.55}50%{transform:scale(1.15) rotate(8deg);opacity:1}}.hero-meet{background:color-mix(in srgb,var(--card) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid transparent;background-image:linear-gradient(color-mix(in srgb,var(--card) 88%,transparent),color-mix(in srgb,var(--card) 88%,transparent)),var(--grad);background-origin:border-box;background-clip:padding-box,border-box;box-shadow:var(--glow)}.countdown-cell{background:var(--grad-soft);border-radius:14px;padding:8px 6px}.countdown-num{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}.scroll-cue{color:var(--accent)}.head-emoji{display:inline-block;font-size:2.4rem;margin-bottom:6px;animation:float 4s ease-in-out infinite}@keyframes float{50%{transform:translateY(-8px) rotate(4deg)}}.section-head .eyebrow{color:var(--lilac);font-weight:700}.timeline:before{width:3px;background:var(--grad);opacity:.55;border-radius:3px}.day-label{background:var(--grad);box-shadow:0 8px 20px -10px #d6457ab3}.day-date{background:transparent}.entry-dot{background:var(--card);border-color:var(--accent-soft);box-shadow:0 6px 16px -8px #d6457a99;transition:transform .3s ease}.entry:hover .entry-dot{transform:scale(1.18) rotate(-6deg)}.card{position:relative;transition:transform .35s ease,box-shadow .35s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--glow)}.entry-time{color:var(--lilac)}.entry-highlight .card{border:1.5px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box;box-shadow:var(--glow)}.entry-highlight .card h3{color:var(--accent)}.entry-highlight .entry-dot{border-color:transparent;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box;border:2px solid transparent;animation:pulse-ring 2.4s ease-out infinite}@keyframes pulse-ring{0%{box-shadow:0 0 #d6457a73}70%{box-shadow:0 0 0 14px #d6457a00}to{box-shadow:0 0 #d6457a00}}.card-badge{position:absolute;top:-12px;right:14px;font-size:1.3rem;animation:heartbeat 1.6s ease-in-out infinite}.plan{box-shadow:var(--glow)}.plan li{transition:background .25s ease}.plan li:hover{background:var(--grad-soft)}.plan-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--grad-soft)}.plan-time{color:var(--lilac)}.dress-card{box-shadow:var(--shadow)}.favs{box-shadow:var(--glow)}.favs-header{background:var(--grad-soft)}.favs-row:not(.favs-header):hover{background:var(--grad-soft)}.favs-label{color:var(--lilac)}.munch li{background:var(--grad-soft);border-color:transparent;box-shadow:var(--shadow);transition:transform .25s ease}.munch li:nth-child(3n+1){background:var(--accent-soft)}.munch li:nth-child(3n+2){background:var(--lilac-soft)}.munch li:nth-child(3n){background:var(--sky-soft)}.munch li:hover{transform:translateY(-3px) rotate(-1.5deg)}.family{border-top:0;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--sky),var(--lilac)) border-box;border:2px solid transparent;box-shadow:var(--glow)}.family-M{background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--accent),var(--lilac)) border-box}.person{transition:transform .25s ease}.person:hover{transform:scale(1.06)}.tree-link{background:var(--grad);width:2px}.promise{transition:transform .3s ease,box-shadow .3s ease;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box;border:1.5px solid transparent}.promise:hover{transform:translateY(-5px) rotate(-.6deg);box-shadow:var(--glow)}.promise span{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--grad-soft)}.footer{background:var(--grad-soft)}.footer-dadi span:not(.heart){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.footer-dadi .heart{display:inline-block;animation:heartbeat 1.3s ease-in-out infinite}.footer-emoji{margin:18px 0 0;font-size:1.4rem;letter-spacing:.3em}.gate,.gate-loader{background:radial-gradient(60% 50% at 20% 20%,var(--accent-soft),transparent 70%),radial-gradient(60% 50% at 80% 80%,var(--lilac-soft),transparent 70%),var(--bg)}.gate-card{border:1.5px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,var(--grad) border-box;box-shadow:var(--glow)}.gate-card h1{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.gate-submit{background:var(--grad);box-shadow:0 10px 24px -12px #d6457acc;transition:transform .2s ease,filter .2s ease}.gate-submit:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.05)}.fx-float,.fx-shower{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.fx-float{z-index:0}.fx-shower{z-index:50}.fx-float span{position:absolute;bottom:-40px;opacity:0;animation-name:drift-up;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes drift-up{0%{transform:translate(0) rotate(0);opacity:0}10%{opacity:.35}90%{opacity:.35}to{transform:translate(var(--drift),-110vh) rotate(25deg);opacity:0}}.fx-shower span{position:absolute;top:-60px;opacity:0;animation-name:fall;animation-timing-function:cubic-bezier(.3,.6,.5,1);animation-fill-mode:forwards}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}85%{opacity:1}to{transform:translateY(110vh) rotate(var(--spin));opacity:0}}.fx-pop{position:fixed;z-index:60;pointer-events:none;font-size:1.3rem;transform:translate(-50%,-50%);animation:pop .95s ease-out forwards}@keyframes pop{0%{transform:translate(-50%,-50%) scale(.4);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.2);opacity:0}}@media (prefers-reduced-motion: reduce){.grad-text,.hero:before,.hero-sparkle,.amp-heart,.head-emoji,.card-badge,.entry-highlight .entry-dot,.footer-dadi .heart{animation:none}.card:hover,.promise:hover,.munch li:hover{transform:none}}@media (max-width: 720px){.section{padding:72px 16px}.timeline:before{left:20px}.entry,.entry-left,.entry-right{width:100%;margin:0;padding:0 0 22px 52px}.entry-left .entry-dot,.entry-right .entry-dot{left:0;right:auto}.day-marker{align-items:flex-start}.day-date{padding-left:0}.plan li{grid-template-columns:32px 1fr}.plan-text{grid-column:2}.favs-row{grid-template-columns:1fr;gap:4px}.favs-header{display:none}.favs-row span[data-who]:before{content:attr(data-who) " · ";font-weight:700}.favs-row span[data-who=Sulthan]:before{color:var(--sky)}.favs-row span[data-who=Muneefa]:before{color:var(--accent)}.dress{grid-template-columns:1fr}.countdown{gap:6px}.countdown-cell{min-width:48px}}@media (max-width: 720px){body{background-attachment:scroll}.hero-sparkle{font-size:1.3rem}}
