:root{--ink:#100a24;--ink-2:#171033;--ink-3:#211344;--ivory:#fff8ff;--ivory-dim:rgba(216, 205, 234, 0.82);--ivory-faint:rgba(169, 157, 191, 0.85);--gold:#ffd166;--gold-lt:#ffe39a;--gold-dark:#e8a93a;--rose:#ff78ae;--violet:#9b6dff;--lavender:#c9a7ff;--line:rgba(216, 205, 234, 0.14);--card-bg:rgba(33, 24, 61, 0.55);--card-bg-lt:rgba(42, 32, 72, 0.6);--card-border:rgba(58, 43, 95, 0.75);--gradient-gold:linear-gradient(120deg, var(--gold-lt), var(--gold) 55%, #ff8a65);--gradient-primary:linear-gradient(135deg, #7c4dff 0%, #b85cff 45%, #ff6fae 100%);--blue:#6fc3ff;--blue-dark:#2e6fce;--paper-bg-1:#fdeec2;--paper-bg-2:#f0d190;--paper-bg-3:#e4bd86;--paper-ink:#43301c;--paper-ink-dim:rgba(67, 48, 28, 0.86);--paper-accent:#c2486b;--paper-gold:#8f6b2e;--font-display:"Alex Brush",cursive;--font-script:"Alex Brush",cursive;--font-num:"Outfit",-apple-system,BlinkMacSystemFont,sans-serif;--font-body:"Outfit",-apple-system,BlinkMacSystemFont,sans-serif;--container:880px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse 900px 700px at 50% -8%,#3a2570,transparent),radial-gradient(ellipse 700px 600px at 100% 15%,rgba(184,92,255,.14),transparent),linear-gradient(180deg,#1c1140,#140a30 55%,#0a0518);background-color:var(--ink);color:var(--ivory);font-family:var(--font-body);font-size:16px;line-height:1.6;overflow-x:hidden;min-height:100vh}body.locked{overflow:hidden;height:100vh}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer}a{color:inherit}.bg-scene{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.28;animation:drift 26s ease-in-out infinite}.blob-a{width:520px;height:520px;top:-180px;left:-140px;background:radial-gradient(circle,var(--gold) 0,transparent 70%);animation-delay:0s}.blob-b{width:480px;height:480px;bottom:-160px;right:-120px;background:radial-gradient(circle,var(--rose) 0,transparent 70%);animation-delay:-8s}.blob-c{width:380px;height:380px;top:45%;left:55%;background:radial-gradient(circle,var(--violet) 0,transparent 70%);opacity:.18;animation-delay:-14s}@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.08)}}.stars{position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 10% 20%,rgba(255,248,255,.55),transparent),radial-gradient(1.5px 1.5px at 80% 15%,rgba(255,248,255,.45),transparent),radial-gradient(1px 1px at 30% 70%,rgba(255,248,255,.4),transparent),radial-gradient(1px 1px at 60% 40%,rgba(255,248,255,.35),transparent),radial-gradient(1.5px 1.5px at 90% 80%,rgba(255,248,255,.45),transparent),radial-gradient(1px 1px at 45% 90%,rgba(255,248,255,.35),transparent),radial-gradient(1.5px 1.5px at 20% 55%,rgba(255,248,255,.4),transparent);background-size:100% 100%;animation:star-twinkle 4.5s ease-in-out infinite alternate}@keyframes star-twinkle{0%{opacity:.55}100%{opacity:1}}.bg-sparkles{position:absolute;inset:0;overflow:hidden}.bg-sparkle{position:absolute;bottom:-6vh;left:var(--x,50%);width:var(--size,4px);height:var(--size,4px);border-radius:50%;background:var(--tint,var(--gold));box-shadow:0 0 8px 2px var(--tint,var(--gold));opacity:0;animation:sparkle-float var(--dur,16s) linear infinite;animation-delay:var(--delay, 0s)}@keyframes sparkle-float{0%{transform:translate(0,0);opacity:0}8%{opacity:.75}50%{transform:translate(var(--drift,24px),-52vh)}92%{opacity:.6}100%{transform:translate(calc(var(--drift,24px) * 2),-108vh);opacity:0}}#confetti-canvas{position:fixed;inset:0;z-index:200;pointer-events:none}.sound-toggle{position:fixed;top:22px;right:22px;z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid var(--card-border);background:rgba(16,10,36,.6);backdrop-filter:blur(8px);color:var(--ivory);font-size:18px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease}.sound-toggle:hover{transform:scale(1.07);background:rgba(16,10,36,.8)}.sound-toggle.is-elevated{z-index:560}.cursor-spark{position:fixed;width:5px;height:5px;border-radius:50%;background:var(--gold-lt);box-shadow:0 0 8px 2px rgba(240,185,58,.55);pointer-events:none;z-index:300;transform:translate(-50%,-50%);animation:spark-fade .65s ease-out forwards}@keyframes spark-fade{0%{opacity:.85;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.2) translateY(-16px)}}.sendwish-sky{position:fixed;inset:0;z-index:150;pointer-events:none;overflow:hidden}.lantern{position:absolute;transform:translate(-50%,0);max-width:240px;padding:10px 18px;border-radius:999px;background:rgba(16,10,36,.6);border:1px solid rgba(255,209,102,.45);color:var(--gold-lt);font-size:13px;font-weight:600;line-height:1.4;text-align:center;backdrop-filter:blur(6px);animation:lantern-rise 4.4s ease-out forwards;box-shadow:0 8px 24px -6px rgba(255,209,102,.3)}@keyframes lantern-rise{0%{opacity:0;transform:translate(-50%,0) scale(.8)}10%{opacity:1;transform:translate(-50%,-46px) scale(1)}55%{opacity:1;transform:translate(calc(-50% + 26px),-56vh) scale(1)}100%{opacity:0;transform:translate(calc(-50% - 18px),-108vh) scale(.92)}}.intro-gate{position:fixed;inset:0;z-index:550;overflow:hidden;background:radial-gradient(ellipse 700px 500px at 50% -10%,rgba(155,109,255,.22),transparent),radial-gradient(ellipse 600px 500px at 100% 100%,rgba(255,120,174,.12),transparent),linear-gradient(180deg,#1c1140,#140a30 55%,#0a0518)}.intro-gate.is-fading{opacity:0;transition:opacity .6s ease}.intro-gate.is-hidden{display:none}.intro-step{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:100px 24px 40px}.intro-step[hidden]{display:none}.intro-card{position:relative;z-index:2;max-width:560px;width:100%;text-align:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:26px;padding:46px 40px;backdrop-filter:blur(6px);animation:intro-card-in .6s cubic-bezier(.2,.8,.2,1)}@keyframes intro-card-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.intro-emoji{font-size:40px;margin-bottom:16px}.intro-title{font-family:var(--font-display);font-size:clamp(26px, 4.4vw, 38px);font-weight:600;line-height:1.25;margin-bottom:20px;background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.intro-body{color:var(--ivory-dim);font-size:15px;line-height:1.75;margin-bottom:16px}.intro-body-sm{font-style:italic;color:var(--ivory-faint);margin-bottom:30px}.intro-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:8px}#intro-carousel-text{margin-bottom:28px}.intro-dots{display:flex;justify-content:center;gap:8px;margin-top:22px}.intro-dot{width:7px;height:7px;border-radius:50%;background:rgba(216,205,234,.3);transition:background .3s ease,transform .3s ease}.intro-dot.is-active{background:var(--gold-lt);transform:scale(1.3)}.intro-cake{position:relative;width:140px;height:130px;margin:10px auto 18px}.intro-cake-body{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:130px;height:60px;border-radius:14px;background:var(--gradient-primary);box-shadow:0 0 30px -8px rgba(184,92,255,.45)}.intro-cake-out .intro-cake-body{filter:grayscale(.75) brightness(.6)}.intro-cake-candles{position:absolute;bottom:56px;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:flex-end;gap:16px}.intro-candle{position:relative;width:7px;height:32px;border-radius:3px;background:var(--ivory-faint);border:none;padding:0 6px 8px;margin:0 -6px -8px;cursor:pointer}.intro-candle-flame{position:absolute;top:-13px;left:50%;transform:translateX(-50%);width:9px;height:13px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff2c4,#ffb347 55%,#ff6a1f 90%);box-shadow:0 0 9px 2px rgba(255,170,60,.6);animation:flicker .9s ease-in-out infinite alternate;transition:opacity .2s ease,transform .3s ease}.intro-candle.out .intro-candle-flame{opacity:0;transform:translateX(-50%) scaleY(.2)}.intro-hint{color:var(--ivory-faint);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-top:4px}.intro-lights{position:absolute;top:0;left:0;right:0;height:70px;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;padding:18px 4vw 0;opacity:0;transition:opacity .6s ease}.intro-lights.is-on{opacity:1}.intro-lights[hidden]{display:flex}.intro-bulb{width:10px;height:13px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff2c4,var(--gold-lt) 55%,var(--gold-dark) 100%);box-shadow:0 0 10px 2px rgba(255,209,102,.55);animation:bulb-twinkle 2.6s ease-in-out infinite}@keyframes bulb-twinkle{0%,100%{opacity:1}50%{opacity:.55}}.intro-balloons{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.intro-balloon-launch{position:absolute;bottom:-80px;animation:intro-balloon-launch 5.5s ease-in forwards}@keyframes intro-balloon-launch{0%{transform:translate(0,0) rotate(-3deg);opacity:0}10%{opacity:.95}90%{opacity:.85}100%{transform:translate(var(--drift,20px),-120vh) rotate(4deg);opacity:0}}.intro-yt-frame{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;border:none;bottom:0;right:0}.curtain{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center}.curtain-panel{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(135deg,var(--ink-3) 0,var(--ink) 60%);transition:transform 1s cubic-bezier(.65, 0, .35, 1)}.curtain-left{left:0;border-right:1px solid var(--line)}.curtain-right{right:0;border-left:1px solid var(--line)}.curtain.opening .curtain-left{transform:translateX(-100%)}.curtain.opening .curtain-right{transform:translateX(100%)}.curtain.hidden{display:none}.curtain-content{position:relative;z-index:2;text-align:center;max-width:520px;padding:0 24px;transition:opacity .5s ease,transform .5s ease}.curtain.opening .curtain-content{opacity:0;transform:scale(.92)}.curtain-eyebrow{font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:10px}.curtain-name{font-family:var(--font-display);font-size:clamp(56px, 12vw, 96px);font-weight:700;background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;margin-bottom:18px;animation:text-shimmer 5s ease-in-out infinite;background-size:200% 100%}@keyframes text-shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}.curtain-sub{color:var(--ivory-dim);font-size:15px;line-height:1.7;margin-bottom:28px}.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;padding:14px 30px;font-size:14px;font-weight:700;letter-spacing:.02em;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease}.btn-gold{position:relative;overflow:hidden;background:var(--gradient-gold);color:#2a1230;box-shadow:0 10px 30px -8px rgba(255,120,174,.5)}.btn-gold::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-120%);animation:btn-shimmer 3.4s ease-in-out infinite}@keyframes btn-shimmer{0%,40%{transform:translateX(-120%)}100%,70%{transform:translateX(120%)}}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 34px -6px rgba(255,209,102,.65)}.btn-ghost{background:rgba(248,243,234,.06);color:var(--ivory);border:1px solid var(--line)}.btn-ghost:hover{background:rgba(248,243,234,.1);transform:translateY(-2px)}main{position:relative;z-index:1}.section{max-width:var(--container);margin:0 auto;padding:110px 24px}.hide-mobile{display:inline}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2, .8, .2, 1),transform .8s cubic-bezier(.2, .8, .2, 1)}[data-reveal].in-view{opacity:1;transform:translateY(0)}.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lt);font-weight:700;margin-bottom:14px}.eyebrow.center{text-align:center}.section-title{font-family:var(--font-display);font-size:clamp(28px, 4.4vw, 42px);font-weight:600;line-height:1.2;margin-bottom:14px}.section-title.center{text-align:center}.section-sub{color:var(--ivory-dim);font-size:16px;max-width:520px;margin-bottom:44px}.section-sub.center{text-align:center;margin-left:auto;margin-right:auto}.hero{text-align:center;padding-top:140px;padding-bottom:90px}.hero-title{font-family:var(--font-display);font-size:clamp(40px, 8.5vw, 78px);font-weight:700;line-height:1.08;margin:20px 0 22px}.grad-text{background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-sub{color:var(--ivory-dim);font-size:17px;max-width:560px;margin:0 auto 44px}.hero-state-card{display:inline-flex;flex-direction:column;align-items:center;gap:18px;padding:26px 34px;border-radius:22px;background:var(--card-bg);border:1px solid var(--card-border);backdrop-filter:blur(6px);margin-bottom:40px;box-shadow:0 0 0 0 rgba(255,209,102,0);animation:card-glow-pulse 4.5s ease-in-out infinite}@keyframes card-glow-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,209,102,0)}50%{box-shadow:0 0 28px 2px rgba(255,209,102,.14)}}.hero-state-badge{font-family:var(--font-num);font-weight:700;font-size:19px;font-weight:600;color:var(--gold-lt)}.countdown-grid{display:flex;gap:20px}.countdown-grid.is-hidden{display:none}.countdown-cell{display:flex;flex-direction:column;align-items:center;min-width:58px}.countdown-num{font-family:var(--font-num);font-size:32px;font-weight:700;color:var(--ivory);font-variant-numeric:tabular-nums}.countdown-lbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory-faint);margin-top:4px}.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.stat-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 8px;border-radius:18px;background:var(--card-bg);border:1px solid var(--card-border);transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.stat-card:hover{transform:translateY(-5px);border-color:rgba(255,209,102,.55);box-shadow:0 14px 30px -14px rgba(255,209,102,.4)}.stat-num{font-family:var(--font-num);font-size:clamp(20px, 3.4vw, 30px);font-weight:700;color:var(--gold-lt);font-variant-numeric:tabular-nums}.stat-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory-faint)}.stat-icon{font-size:20px;margin-bottom:2px;filter:drop-shadow(0 3px 6px rgba(0, 0, 0, .35));display:inline-block;animation:icon-bob 3.2s ease-in-out infinite;animation-delay:calc(var(--i, 0) * .18s)}@keyframes icon-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}.calendar-section{text-align:center;background:radial-gradient(ellipse 620px 420px at 50% 30%,rgba(155,109,255,.08),transparent 70%)}.calendar-card{max-width:360px;margin:0 auto;padding:30px 26px 26px;border-radius:22px;background:var(--card-bg);border:1px solid var(--card-border);backdrop-filter:blur(6px);transition:transform .35s ease,box-shadow .35s ease}.calendar-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px -16px rgba(155,109,255,.4)}.calendar-month{font-family:var(--font-script);font-size:24px;color:var(--gold-lt);margin-bottom:16px}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays span{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ivory-faint)}.calendar-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;font-family:var(--font-num);font-size:13px;color:var(--ivory-dim)}.calendar-day.is-empty{visibility:hidden}.calendar-day.is-target{color:#2a1230;font-weight:700;background:var(--gradient-gold);box-shadow:0 0 0 3px rgba(255,209,102,.22);animation:cal-pulse 2.2s ease-in-out infinite}@keyframes cal-pulse{0%,100%{box-shadow:0 0 0 3px rgba(255,209,102,.22)}50%{box-shadow:0 0 0 6px rgba(255,209,102,.34)}}.calendar-caption{margin-top:20px;font-family:var(--font-script);font-size:20px;color:var(--ivory)}.calendar-name{color:var(--rose)}.letter-section{position:relative;overflow:hidden}.letter-balloons{position:absolute;inset:0;z-index:0;pointer-events:none}.balloon{position:absolute;bottom:-14%;left:var(--x,50%);width:34px;height:42px;border-radius:50% 50% 50% 50%/58% 58% 42% 42%;opacity:0;animation:balloon-rise var(--dur,14s) ease-in infinite;animation-delay:var(--delay, 0s)}.balloon::before{content:"";position:absolute;left:50%;top:100%;width:1px;height:26px;background:rgba(216,205,234,.4);transform:translateX(-50%)}.balloon::after{content:"";position:absolute;top:16%;left:28%;width:8px;height:12px;border-radius:50%;background:rgba(255,255,255,.4);filter:blur(1px)}.balloon-gold{background:radial-gradient(circle at 35% 28%,var(--gold-lt),var(--gold-dark) 85%)}.balloon-rose{background:radial-gradient(circle at 35% 28%,#ffb3d1,var(--rose) 85%)}.balloon-violet{background:radial-gradient(circle at 35% 28%,var(--lavender),var(--violet) 85%)}@keyframes balloon-rise{0%{transform:translate(0,0) rotate(-3deg);opacity:0}8%{opacity:.55}50%{transform:translate(16px,-420px) rotate(4deg)}92%{opacity:.4}100%{transform:translate(-10px,-860px) rotate(-3deg);opacity:0}}.letter-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.letter-heading{position:relative;z-index:1;text-align:center;margin-bottom:30px}.envelope{position:relative;width:100%;max-width:320px;padding:10px;border:none;background:0 0;color:inherit;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;transition:opacity .55s ease,transform .55s ease}.envelope:hover{transform:translateY(-4px) scale(1.015)}.envelope-glow{position:absolute;inset:-20%;background:radial-gradient(circle,rgba(255,209,102,.28),transparent 65%);animation:pulse-glow 3s ease-in-out infinite;pointer-events:none}.envelope-badge{position:absolute;top:6px;right:46px;width:22px;height:22px;border-radius:50%;background:var(--rose);color:var(--ink);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px rgba(255,120,174,.25);animation:badge-pulse 1.8s ease-in-out infinite;transition:opacity .35s ease,transform .35s ease}@keyframes badge-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}.envelope-art{position:relative;width:176px;height:auto;color:var(--paper-gold);filter:drop-shadow(0 14px 26px rgba(0, 0, 0, .45))}.envelope-flap-group,.envelope-seal{transition:transform .5s ease,opacity .5s ease}.envelope-seal{transform-box:fill-box;transform-origin:center}.envelope-face-label{position:relative;font-family:var(--font-script);font-size:19px;color:var(--paper-gold);margin-top:-8px;transition:opacity .4s ease}.envelope.opening .envelope-face-label{opacity:0}.envelope-label{position:relative;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lt);font-weight:700}.envelope-hint{position:relative;font-size:14px;color:var(--ivory-faint);animation:hint-pulse 2.6s ease-in-out infinite}@keyframes hint-pulse{0%,100%{opacity:.6}50%{opacity:1}}.envelope.opening{animation:envelope-open .6s ease forwards;pointer-events:none}.envelope.opening .envelope-flap-group{transform:translateY(-10px);opacity:.75}.envelope.opening .envelope-seal{transform:scale(.35);opacity:0}.envelope.opening .envelope-badge{opacity:0;transform:scale(.6)}@keyframes envelope-open{0%{transform:scale(1) translateY(0);opacity:1}45%{transform:scale(1.03) translateY(0);opacity:1}100%{transform:scale(.92) translateY(-14px);opacity:0}}.envelope.gone{display:none}.letter-card{background:radial-gradient(circle at 18% -8%,rgba(255,236,195,.65),transparent 55%),radial-gradient(circle at 88% 108%,rgba(194,72,107,.14),transparent 60%),repeating-linear-gradient(0deg,rgba(67,48,28,.05) 0 1px,transparent 1px 34px),linear-gradient(155deg,var(--paper-bg-1),var(--paper-bg-2) 60%,var(--paper-bg-3) 100%);border:1px solid rgba(67,48,28,.25);border-radius:18px;padding:52px 46px;position:relative;width:100%;box-shadow:0 24px 60px -18px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.25);opacity:0;transform:translateY(18px) scale(.98) rotate(-.4deg);transition:opacity .7s cubic-bezier(.2, .8, .2, 1),transform .7s cubic-bezier(.2, .8, .2, 1)}.letter-card.letter-hidden{display:none}.letter-card.show{opacity:1;transform:translateY(0) scale(1) rotate(0)}.letter-card .eyebrow,.letter-card .section-title{display:none}.letter-body p{font-family:var(--font-body);font-weight:400;font-size:16.5px;line-height:1.9;color:var(--paper-ink-dim);margin-bottom:20px}.letter-body em{font-family:var(--font-script);font-style:normal;color:var(--paper-accent);font-size:1.14em}.letter-sign{color:var(--paper-ink)!important;font-style:normal}.sign-name{display:inline-block;margin-top:6px;font-family:var(--font-display);font-size:30px;font-style:normal;color:var(--paper-gold)}.map-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:26px;padding:48px 32px;transition:transform .35s ease,box-shadow .35s ease}.map-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px -16px rgba(155,109,255,.35)}.map-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:28px}.map-point{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:130px}.map-pin{display:inline-flex;color:var(--gold-lt);filter:drop-shadow(0 4px 10px rgba(240, 185, 58, .35))}.map-pin svg{width:38px;height:38px}.map-city{font-family:var(--font-num);font-weight:700;font-size:20px;font-weight:600}.map-tag{font-size:12px;color:var(--ivory-faint);letter-spacing:.06em}.map-line{position:relative;flex:1;max-width:220px;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 8px,transparent 8px 16px);margin:0 6px}.map-plane{position:absolute;top:50%;left:0;transform:translateY(-50%);font-size:20px;animation:fly 4.5s ease-in-out infinite}@keyframes fly{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:92%;opacity:0}}.map-caption{text-align:center;color:var(--ivory-dim);font-size:15px;max-width:460px;margin:0 auto}.wheel-section{text-align:center;background:radial-gradient(ellipse 700px 500px at 50% 40%,rgba(255,209,102,.06),transparent 70%)}.wheel-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:34px;margin-bottom:40px}.wheel-pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);font-size:26px;color:var(--gold-lt);z-index:3;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.wheel{position:relative;width:min(340px,78vw);height:min(340px,78vw);border-radius:50%;border:8px solid var(--ink-3);box-shadow:0 0 0 2px var(--gold),0 20px 60px -12px rgba(0,0,0,.6),inset 0 0 30px rgba(0,0,0,.3);transition:transform 4.2s cubic-bezier(.12, .72, .15, 1);background:conic-gradient(#211344 0deg 30deg,#33215f 30deg 60deg,#211344 60deg 90deg,#33215f 90deg 120deg,#211344 120deg 150deg,#33215f 150deg 180deg,#211344 180deg 210deg,#33215f 210deg 240deg,#211344 240deg 270deg,#33215f 270deg 300deg,#211344 300deg 330deg,#33215f 330deg 360deg)}.wheel::after{content:"";position:absolute;inset:42%;border-radius:50%;background:radial-gradient(circle,var(--gold-lt),var(--gold));box-shadow:0 0 0 4px var(--ink),0 8px 18px rgba(0,0,0,.4)}.wedge-label{position:absolute;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:13px;font-weight:700;color:var(--gold-lt);transform-origin:15px 15px}.wheel-btn{min-width:200px;justify-content:center}.wish-result{max-width:480px;margin:0 auto;padding:26px 30px;border-radius:20px;background:var(--card-bg);border:1px solid var(--card-border);transition:transform .35s ease,box-shadow .35s ease}.wish-result:hover{transform:translateY(-4px);box-shadow:0 16px 34px -16px rgba(255,209,102,.35)}.wish-result-eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-faint);margin-bottom:10px}.wish-result-text{font-family:var(--font-script);font-size:22px;line-height:1.5;color:var(--ivory);min-height:60px;transition:opacity .3s ease}.ach-section{text-align:center}.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ach-badge{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;border-radius:18px;background:var(--card-bg);border:1px solid var(--card-border);text-align:center;opacity:0;transform:translateY(16px) scale(.97);transition:opacity .6s cubic-bezier(.2, .8, .2, 1) calc(var(--i, 0) * 70ms),transform .6s cubic-bezier(.2, .8, .2, 1) calc(var(--i, 0) * 70ms),border-color .3s ease,box-shadow .3s ease}.ach-grid.in-view .ach-badge{opacity:1;transform:translateY(0) scale(1)}.ach-badge:hover{border-color:rgba(155,109,255,.55);box-shadow:0 14px 30px -16px rgba(155,109,255,.45)}.ach-badge:hover .ach-icon{animation:icon-bob 1.1s ease-in-out infinite}.ach-icon{font-size:30px;filter:drop-shadow(0 6px 10px rgba(0, 0, 0, .35))}.ach-title{font-size:13.5px;font-weight:600;line-height:1.4;color:var(--ivory-dim)}.quotes-section{text-align:center}.quote-icon{font-size:26px;margin-bottom:4px;filter:drop-shadow(0 4px 8px rgba(255, 120, 174, .35));display:inline-block;animation:icon-bob 3.2s ease-in-out infinite}.quote-carousel{display:flex;align-items:center;gap:18px;max-width:640px;margin:0 auto}.quote-track{flex:1;min-height:160px;display:flex;align-items:center;justify-content:center;padding:20px}.quote-item{font-family:var(--font-script);font-size:clamp(20px, 3vw, 26px);line-height:1.6;color:var(--ivory);animation:quote-fade-in .55s cubic-bezier(.2,.8,.2,1)}@keyframes quote-fade-in{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.quote-author{display:block;margin-top:16px;font-family:var(--font-body);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-lt)}.quote-nav{flex-shrink:0;width:42px;height:42px;border-radius:50%;border:1px solid var(--card-border);background:var(--card-bg);color:var(--ivory);font-size:22px;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease}.quote-nav:hover{background:rgba(248,243,234,.1);transform:scale(1.06)}.quote-dots{display:flex;justify-content:center;gap:8px;margin-top:28px}.quote-dot{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .25s ease,transform .25s ease;cursor:pointer}.quote-dot.active{background:var(--gold);transform:scale(1.3)}.oracle-section{text-align:center;background:radial-gradient(ellipse 600px 460px at 50% 40%,rgba(155,109,255,.09),transparent 70%)}.oracle-wrap{display:flex;flex-direction:column;align-items:center;gap:26px}.orb{position:relative;width:130px;height:130px;border-radius:50%;border:none;background:radial-gradient(circle at 35% 30%,#6a4fe0,#1a1440 70%);box-shadow:0 0 0 1px rgba(255,209,102,.35),0 20px 50px -12px rgba(155,109,255,.6);display:flex;align-items:center;justify-content:center;overflow:hidden}@keyframes orb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}.orb-glow{position:absolute;inset:-20%;background:radial-gradient(circle,rgba(255,209,102,.35),transparent 65%);animation:pulse-glow 2.4s ease-in-out infinite}@keyframes pulse-glow{0%,100%{opacity:.4;transform:scale(.9)}50%{opacity:.9;transform:scale(1.08)}}.orb-icon{position:relative;font-size:52px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5));transition:transform .25s ease;display:inline-block;animation:orb-float 3.6s ease-in-out infinite}.orb.shaking .orb-icon{animation:orb-shake .55s ease-in-out}@keyframes orb-shake{0%,100%{transform:rotate(0) scale(1)}20%{transform:rotate(-8deg) scale(1.05)}40%{transform:rotate(7deg) scale(1.05)}60%{transform:rotate(-5deg) scale(1.02)}80%{transform:rotate(4deg) scale(1.02)}}.oracle-card{max-width:480px;padding:30px 34px;border-radius:20px;background:var(--card-bg);border:1px solid var(--card-border);transition:transform .35s ease,box-shadow .35s ease}.oracle-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -16px rgba(155,109,255,.4)}.oracle-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-faint);margin-bottom:10px}.oracle-text{font-size:18px;line-height:1.6;color:var(--ivory);min-height:54px;transition:opacity .25s ease}.cake-section{text-align:center;background:radial-gradient(ellipse 640px 460px at 50% 45%,rgba(184,92,255,.09),transparent 70%)}.cake-wrap{display:flex;flex-direction:column;align-items:center;gap:26px}.cake{position:relative;width:240px;height:260px}.cake-plate{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:250px;height:16px;border-radius:50%;background:rgba(248,243,234,.08);box-shadow:0 12px 26px rgba(0,0,0,.4),0 0 0 0 rgba(155,109,255,0);animation:plate-glow 3.6s ease-in-out infinite}@keyframes plate-glow{0%,100%{box-shadow:0 12px 26px rgba(0,0,0,.4),0 0 0 0 rgba(155,109,255,0)}50%{box-shadow:0 12px 26px rgba(0,0,0,.4),0 0 28px 4px rgba(155,109,255,.3)}}.cake-layer-bottom{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);width:210px;height:64px;border-radius:16px;background:var(--gradient-primary);box-shadow:0 0 40px -10px rgba(184,92,255,.5)}.cake-layer-mid{position:absolute;bottom:74px;left:50%;transform:translateX(-50%);width:158px;height:52px;border-radius:14px;background:var(--gradient-gold);box-shadow:0 0 32px -8px rgba(255,209,102,.45)}.cake-layer-top{position:absolute;bottom:130px;left:50%;transform:translateX(-50%);width:112px;height:50px;border-radius:12px;background:linear-gradient(160deg,var(--lavender),var(--rose));box-shadow:0 0 26px -6px rgba(201,167,255,.4)}.cake-drip{position:absolute;bottom:122px;left:50%;transform:translateX(-50%);width:158px;height:16px;background-image:radial-gradient(circle at 9px 2px,var(--ivory) 7px,transparent 7.5px);background-size:18px 16px;background-repeat:repeat-x;background-position:center top}.cake-topper{position:absolute;bottom:145px;left:50%;transform:translateX(-50%);font-family:var(--font-num);font-size:18px;font-weight:700;color:#3a2412;background:var(--gradient-gold);padding:4px 12px;border-radius:999px;z-index:2;box-shadow:0 6px 14px rgba(0,0,0,.3)}.cake-candles{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:flex-end;gap:20px;z-index:3}.candle{position:relative;width:9px;height:42px;border-radius:3px;background:var(--gold-lt);border:none;padding:0 7px 9px;margin:0 -7px -9px;cursor:pointer;box-sizing:content-box;background-clip:content-box}.candle:first-child{background:var(--rose);height:46px}.candle:nth-child(3){background:var(--lavender);height:38px}.flame{position:absolute;top:-15px;left:50%;transform:translateX(-50%);width:10px;height:15px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff2c4,#ffb347 55%,#ff6a1f 90%);box-shadow:0 0 10px 2px rgba(255,170,60,.6);animation:flicker .9s ease-in-out infinite alternate;transition:opacity .2s ease,transform .3s ease}@keyframes flicker{0%{transform:translateX(-50%) scaleY(1) rotate(-2deg)}100%{transform:translateX(-50%) scaleY(1.08) rotate(2deg)}}.candle.out .flame{opacity:0;transform:translateX(-50%) scaleY(.2)}.smoke{position:absolute;top:-20px;left:50%;width:4px;height:4px;border-radius:50%;background:rgba(248,243,234,.5);pointer-events:none;animation:smoke-rise 1s ease-out forwards}@keyframes smoke-rise{0%{transform:translate(-50%,0) scale(1);opacity:.7}100%{transform:translate(-50%,-34px) scale(3);opacity:0}}.cake-message{max-width:440px;min-height:30px;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.cake-message.show{opacity:1;transform:translateY(0)}.cake-message-title{font-family:var(--font-script);font-size:24px;color:var(--gold-lt);margin-bottom:8px}.cake-message-sub{font-size:14px;line-height:1.7;color:var(--ivory-dim)}.sendwish-section{text-align:center}.sendwish-form{display:flex;gap:10px;justify-content:center;max-width:460px;margin:0 auto}.sendwish-form input{flex:1;min-width:0;padding:14px 18px;border-radius:999px;border:1px solid var(--card-border);background:var(--card-bg);color:var(--ivory);font-family:inherit;font-size:14px;transition:border-color .25s ease}.sendwish-form input::placeholder{color:var(--ivory-faint)}.sendwish-form input:focus{outline:0;border-color:rgba(255,209,102,.55)}.footer{text-align:center;padding-bottom:90px}.footer-line{color:var(--ivory-faint);font-size:14px}.footer-name{font-family:var(--font-display);font-size:20px;color:var(--gold-lt);margin:8px 0 14px}.footer-tiny{color:var(--ivory-faint);font-size:13px}.curtain-warning{margin-top:18px;font-size:12px;color:var(--ivory-faint);font-style:italic}.hero-footnote{margin-top:18px;font-size:13px;color:var(--ivory-faint)}.stats-caption{margin-top:30px;color:var(--ivory-faint);font-size:14px}.generator-card{max-width:420px;margin:0 auto;text-align:center}.generator-result{margin-top:22px;min-height:26px;font-family:var(--font-script);font-size:20px;color:var(--gold-lt);opacity:0;transition:opacity .25s ease}.generator-result.show{animation:quote-fade-in .5s cubic-bezier(.2,.8,.2,1)}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.profile-card{padding:28px 26px;border-radius:20px;background:var(--card-bg);border:1px solid var(--card-border);transition:transform .3s ease,box-shadow .3s ease}.profile-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px -16px rgba(255,209,102,.35)}.profile-icon{display:inline-block;font-size:26px;margin-bottom:10px;animation:icon-bob 3.2s ease-in-out infinite}.profile-title{font-family:var(--font-script);font-size:22px;color:var(--gold-lt);margin-bottom:8px}.profile-text{color:var(--ivory-dim);font-size:14.5px;line-height:1.65;margin-bottom:10px}.profile-note{font-size:13px;color:var(--ivory-faint);font-style:italic}.os-panel{max-width:560px;margin:0 auto;padding:30px 28px;border-radius:20px;background:var(--card-bg);border:1px solid var(--card-border)}.os-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.os-row:last-of-type{border-bottom:none}.os-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;box-shadow:0 0 6px 1px currentColor}.os-dot-on{background:#6fe08a;color:#6fe08a}.os-dot-warn{background:var(--gold-lt);color:var(--gold-lt)}.os-dot-off{background:var(--rose);color:var(--rose)}.os-label{color:var(--ivory-faint);font-family:var(--font-num);min-width:110px}.os-value{color:var(--ivory);font-family:var(--font-num);font-weight:600;text-align:right;margin-left:auto}.os-message{margin-top:20px;padding-top:18px;border-top:1px dashed var(--card-border);font-size:13px;font-style:italic;color:var(--gold-lt);text-align:center}.archive-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.archive-card{padding:24px 22px;border-radius:18px;background:var(--card-bg);border:1px solid var(--card-border);transition:transform .3s ease,box-shadow .3s ease}.archive-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px -16px rgba(155,109,255,.4)}.archive-title{font-family:var(--font-script);font-size:19px;color:var(--lavender);margin-bottom:8px}.archive-text{color:var(--ivory-dim);font-size:14px;line-height:1.6;margin-bottom:8px}.archive-verdict{font-size:12.5px;font-weight:700;color:var(--gold-lt)}.geo-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:22px}.map-line-2 .map-plane-2{animation-delay:-2.2s}.geo-route{text-align:center;font-family:var(--font-num);font-weight:700;font-size:13px;letter-spacing:.03em;color:var(--gold-lt);margin-bottom:16px}.wish-result-text .wish-result-icon{display:block;font-size:34px;margin-bottom:8px}.wish-result-text .wish-result-title{display:block;font-family:var(--font-script);font-size:24px;color:var(--gold-lt);margin-bottom:6px}.wish-result-text .wish-result-desc{display:block;font-family:var(--font-body);font-size:14px;color:var(--ivory-dim)}.lessons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.lesson-card{padding:20px 18px;border-radius:16px;background:var(--card-bg);border:1px solid var(--card-border);font-family:var(--font-script);font-size:18px;color:var(--ivory);text-align:center;opacity:0;transform:translateY(14px) scale(.97);transition:opacity .55s cubic-bezier(.2, .8, .2, 1) calc(var(--i, 0) * 60ms),transform .55s cubic-bezier(.2, .8, .2, 1) calc(var(--i, 0) * 60ms),box-shadow .3s ease}.lessons-grid.in-view .lesson-card{opacity:1;transform:translateY(0) scale(1)}.lesson-card:hover{box-shadow:0 12px 26px -14px rgba(155,109,255,.4)}.lessons-footer{margin-top:30px;color:var(--ivory-faint);font-size:14px}.loading-card{max-width:460px;margin:0 auto;text-align:center}.loading-bar-track{margin-top:24px;height:10px;border-radius:999px;background:var(--card-bg);border:1px solid var(--card-border);overflow:hidden;opacity:0;transition:opacity .3s ease}.loading-bar-track.show{opacity:1}.loading-bar-fill{height:100%;width:0%;border-radius:999px;background:var(--gradient-gold);transition:width .4s ease}.loading-stage-text{margin-top:12px;font-family:var(--font-num);font-size:13px;color:var(--ivory-faint);min-height:18px}.loading-final{margin-top:22px;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.loading-final.show{opacity:1;transform:translateY(0)}.loading-final-title{font-family:var(--font-script);font-size:24px;color:var(--gold-lt);margin-bottom:8px}.loading-final-bugs{font-size:13px;color:var(--ivory-faint)}.zombie-timeline{max-width:520px;margin:0 auto 32px;padding:8px 26px;border-radius:18px;background:var(--card-bg);border:1px solid var(--card-border)}.zombie-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.zombie-row:last-child{border-bottom:none}.zombie-row-final{padding-top:16px}.zombie-row-final .zombie-time{color:var(--gold-lt)}.zombie-time{flex-shrink:0;font-family:var(--font-num);font-weight:700;color:var(--lavender);min-width:90px}.zombie-status{color:var(--ivory-dim);text-align:right}.waiting-footer{margin-top:16px;font-size:12.5px;color:var(--ivory-faint);font-style:italic}.grammar-card{max-width:480px;margin:0 auto;padding:30px 30px 34px;border-radius:20px;background:var(--card-bg);border:1px solid var(--card-border);text-align:center}.grammar-line{font-size:14px;color:var(--ivory-dim);margin-bottom:6px}.grammar-line strong{color:var(--rose)}.grammar-exchange{margin:16px 0;padding:14px 16px;border-radius:12px;background:rgba(0,0,0,.18);font-size:13.5px;color:var(--ivory);line-height:1.7}.grammar-result-line{font-size:12.5px;color:var(--ivory-faint);margin-bottom:18px}.weather-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.weather-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 10px;border-radius:16px;background:var(--card-bg);border:1px solid var(--card-border);text-align:center}.weather-icon{font-size:24px}.weather-city{font-family:var(--font-num);font-weight:700;font-size:14px}.weather-status{font-size:12px;color:var(--ivory-faint);line-height:1.4}.meter-card{max-width:420px;margin:0 auto;text-align:center}.meter-track{height:12px;border-radius:999px;background:var(--card-bg);border:1px solid var(--card-border);overflow:hidden}.meter-fill{height:100%;width:0%;border-radius:999px;background:var(--gradient-primary);transition:width .5s cubic-bezier(.2, .8, .2, 1)}.meter-percent{margin-top:12px;font-family:var(--font-num);font-weight:700;font-size:22px;color:var(--lavender)}.meter-caption{margin-top:6px;min-height:22px;color:var(--ivory-dim);font-size:14px;margin-bottom:20px}.meter-reset{margin-left:10px}.final-body{max-width:560px;margin:0 auto;text-align:center}.final-body p{color:var(--ivory-dim);font-size:16px;line-height:1.85;margin-bottom:18px}.final-body em{font-family:var(--font-script);font-style:normal;color:var(--rose);font-size:1.15em}.final-blessing{margin-top:26px;font-family:var(--font-script);font-size:22px;color:var(--gold-lt)!important;line-height:1.6}.sendwish-confirm{margin-top:20px;font-size:13.5px;color:var(--gold-lt);opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease}.sendwish-confirm.show{opacity:1;transform:translateY(0)}@media (max-width:720px){.section{padding:80px 20px}.hero{padding-top:100px}.stats-grid{grid-template-columns:repeat(3,1fr)}.letter-card{padding:38px 26px}.envelope{max-width:280px;padding:10px}.envelope-art{width:148px}.map-row{flex-direction:column;gap:20px}.map-line{display:none}.hide-mobile{display:none}.countdown-grid{gap:12px}.countdown-cell{min-width:46px}.countdown-num{font-size:24px}.cake{width:205px}.cake-layer-bottom{width:178px}.cake-layer-mid{width:134px}.cake-layer-top{width:95px}.cake-drip{width:134px}.cake-plate{width:215px}.ach-grid{grid-template-columns:repeat(2,1fr)}.sendwish-form{flex-direction:column}.sound-toggle{top:14px;right:14px;width:42px;height:42px}.profile-grid{grid-template-columns:1fr}.archive-grid{grid-template-columns:1fr}.lessons-grid{grid-template-columns:1fr}.weather-grid{grid-template-columns:repeat(2,1fr)}.geo-row{gap:14px}.map-line,.map-line-2{display:none}.os-row{flex-wrap:wrap}.os-value{text-align:left;margin-left:0}.zombie-row{flex-direction:column;align-items:flex-start;gap:4px}.zombie-status{text-align:left}}@media (max-width:460px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}