*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0e;--surface: #16161e;--surface-2: #1e1e28;--text: #f5f5f7;--text-muted: #8e8e9a;--happy: #ffd166;--happy-dim: #e6b84d;--happy-glow: rgba(255, 209, 102, .4);--sad: #7eb8da;--sad-dim: #5a9fc9;--sad-glow: rgba(126, 184, 218, .4);--sappy: #ff8fab;--sappy-dim: #e66d8a;--sappy-glow: rgba(255, 143, 171, .4);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--moment-duration: .45s}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}#app{height:100%;position:relative}.home-deco{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.home-deco__sticker{position:absolute;font-size:clamp(1.6rem,7vw,2.6rem);filter:drop-shadow(0 5px 0 #2a1f38);opacity:.55;animation:home-float 4.5s ease-in-out infinite;animation-delay:calc(var(--i) * .7s)}.home-deco__sticker:nth-child(1){top:12%;left:8%}.home-deco__sticker:nth-child(2){top:18%;right:10%;animation-duration:5.2s}.home-deco__sticker:nth-child(3){bottom:22%;left:12%;animation-duration:3.8s}.home-deco__sticker:nth-child(4){bottom:28%;right:14%}.home-deco__sticker:nth-child(5){top:42%;left:50%;margin-left:-1.3rem;animation-duration:6s;opacity:.35}@keyframes home-float{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(8deg)}}.home .header,.home .button-grid{position:relative;z-index:1}.mood-btn{background:linear-gradient(145deg,var(--surface),var(--surface-2));box-shadow:0 6px #2a1f38,0 12px 32px #00000059}.mood-btn.is-pressed,.mood-btn:active{transform:scale(.94) translateY(3px);box-shadow:0 3px #2a1f38,0 8px 24px #0000004d}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:calc(1.25rem + var(--safe-top)) 1.25rem calc(1.25rem + var(--safe-bottom));gap:2rem;transition:opacity .2s ease,transform .25s cubic-bezier(.34,1.2,.64,1)}.home.is-hidden{opacity:0;pointer-events:none;transform:scale(.96)}.header{text-align:center}.title{font-size:clamp(2.2rem,9vw,3rem);font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--happy),var(--sappy),var(--sad));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{margin-top:.4rem;font-size:.95rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.button-grid{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:22rem}.mood-btn{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;width:100%;min-height:6.75rem;padding:1.1rem 1rem;border:2px solid transparent;border-radius:1.35rem;background:var(--surface);color:var(--text);cursor:pointer;transition:transform .15s cubic-bezier(.34,1.4,.64,1),border-color .15s,box-shadow .15s}.mood-btn.is-pressed,.mood-btn:active{transform:scale(.94)}.mood-btn--happy{border-color:#ffd16633}.mood-btn--sad{border-color:#7eb8da33}.mood-btn--sappy{border-color:#ff8fab33}.mood-btn--happy.is-pressed,.mood-btn--happy:active{box-shadow:0 3px #2a1f38,0 0 0 4px var(--happy-glow),0 12px 40px var(--happy-glow);border-color:var(--happy)}.mood-btn--sad.is-pressed,.mood-btn--sad:active{box-shadow:0 3px #2a1f38,0 0 0 4px var(--sad-glow),0 12px 40px var(--sad-glow);border-color:var(--sad)}.mood-btn--sappy.is-pressed,.mood-btn--sappy:active{box-shadow:0 3px #2a1f38,0 0 0 4px var(--sappy-glow),0 12px 40px var(--sappy-glow);border-color:var(--sappy)}.ripple{position:absolute;border-radius:50%;background:#ffffff26;transform:scale(0);animation:ripple .5s ease-out forwards;pointer-events:none}.mood-btn__emoji{font-size:2.1rem;line-height:1}.mood-btn__label{font-size:1.55rem;font-weight:800;letter-spacing:-.02em}.mood-btn__hint{font-size:.72rem;color:var(--text-muted);text-align:center;line-height:1.3}.mood-btn--happy .mood-btn__label{color:var(--happy)}.mood-btn--sad .mood-btn__label{color:var(--sad)}.mood-btn--sappy .mood-btn__label{color:var(--sappy)}.moment-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;opacity:0;pointer-events:none;transition:opacity .15s ease}.moment-overlay.is-active{opacity:1;pointer-events:auto}.moment-stage{width:100%;height:100%;position:relative;overflow:hidden}.moment-bg-fx{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.bg-blob{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35;animation:blob-drift 3s ease-in-out infinite;animation-delay:calc(var(--i) * .4s)}.moment-bg-fx--happy .bg-blob{background:var(--happy)}.moment-bg-fx--sad .bg-blob{background:var(--sad)}.moment-bg-fx--sappy .bg-blob{background:var(--sappy)}.bg-blob:nth-child(1){width:180px;height:180px;top:10%;left:-10%}.bg-blob:nth-child(2){width:140px;height:140px;top:50%;right:-5%}.bg-blob:nth-child(3){width:120px;height:120px;bottom:15%;left:20%}.bg-blob:nth-child(4){width:100px;height:100px;top:30%;right:25%}@keyframes blob-drift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(12px,-18px) scale(1.08)}}.theme-happy{background:radial-gradient(ellipse 120% 80% at 50% 30%,#2a2218,var(--bg))}.theme-happy-blast{background:radial-gradient(ellipse 100% 90% at 50% 40%,#3a2018,#1a1020,var(--bg))}.theme-happy-glow{background:radial-gradient(ellipse 100% 70% at 50% 40%,#3a2a18,var(--bg))}.theme-happy-magic{background:radial-gradient(ellipse 100% 80% at 50% 20%,#2a1840,var(--bg))}.theme-happy-fiesta{background:linear-gradient(160deg,#2a1830,#1a2830,var(--bg))}.theme-happy-gold{background:radial-gradient(ellipse 90% 60% at 50% 35%,#3a3018,var(--bg))}.theme-sad{background:radial-gradient(ellipse 110% 75% at 50% 35%,#1a2535,var(--bg))}.theme-sad-soft{background:radial-gradient(ellipse 100% 70% at 50% 40%,#1a2030,var(--bg))}.theme-sad-chaos{background:radial-gradient(ellipse 100% 80% at 50% 30%,#1a3020,var(--bg))}.theme-sappy{background:radial-gradient(ellipse 110% 75% at 50% 35%,#2a1828,var(--bg))}.theme-sappy-soft{background:radial-gradient(ellipse 100% 70% at 50% 40%,#281820,var(--bg))}.fx-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.fx-canvas--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}.orbit-particle{position:absolute;font-size:clamp(1.5rem,6vw,2.5rem);animation:orbit 1.6s ease-in-out both;animation-delay:calc(var(--i) * .08s)}.float-particle{position:absolute;bottom:10%;left:var(--x);font-size:clamp(1.2rem,5vw,2rem);animation:float-up 1.8s ease both;animation-delay:calc(var(--i) * .1s)}.slapstick-face{font-size:clamp(4rem,22vw,9rem);z-index:1}.slapstick-pie{position:absolute;font-size:clamp(3.5rem,18vw,7rem);top:-20%}@keyframes ripple{to{transform:scale(2.5);opacity:0}}@keyframes pop-squash{0%{transform:scale(.2,.4);opacity:0}50%{transform:scale(1.12,.92);opacity:1}70%{transform:scale(.95,1.05)}to{transform:scale(1);opacity:1}}@keyframes slam{0%{transform:scale(2.5) rotate(-8deg);opacity:0}55%{transform:scale(.92) rotate(2deg);opacity:1}75%{transform:scale(1.04) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes slide-slam{0%{transform:translateY(60px) scale(.8);opacity:0}60%{transform:translateY(-6px) scale(1.05);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}@keyframes fade-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes wobble{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(-4deg) scale(1.05)}75%{transform:rotate(4deg) scale(1.05)}}@keyframes shake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-14px) rotate(-6deg)}30%{transform:translate(14px) rotate(6deg)}45%{transform:translate(-10px) rotate(-4deg)}60%{transform:translate(10px) rotate(4deg)}75%{transform:translate(-6px) rotate(-2deg)}}@keyframes bounce{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-18px) scale(1.08)}60%{transform:translateY(-6px) scale(1.02)}}@keyframes boing-face{0%{transform:scaleY(.3) scaleX(1.4)}35%{transform:scaleY(1.35) scaleX(.75)}55%{transform:scaleY(.85) scaleX(1.12)}75%{transform:scaleY(1.08) scaleX(.96)}to{transform:scaleY(1) scaleX(1)}}@keyframes pie-splat{0%{transform:translateY(-100vh) rotate(0)}65%{transform:translateY(10vh) rotate(200deg) scale(1.1)}to{transform:translateY(10vh) rotate(210deg) scale(1.15)}}@keyframes wag{0%,to{transform:rotate(-30deg)}50%{transform:rotate(30deg)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes orbit{0%{transform:rotate(0) translate(28vw) rotate(0) scale(.3);opacity:0}15%{opacity:1}to{transform:rotate(360deg) translate(28vw) rotate(-360deg) scale(1);opacity:0}}@keyframes float-up{0%{transform:translateY(0) scale(.4);opacity:0}15%{opacity:1}to{transform:translateY(-45vh) scale(1.1);opacity:0}}.anim-pop-squash{animation:pop-squash var(--moment-duration) cubic-bezier(.34,1.5,.64,1) both}.anim-slam{animation:slam var(--moment-duration) cubic-bezier(.22,1.2,.36,1) both}.anim-slide-slam{animation:slide-slam var(--moment-duration) cubic-bezier(.22,1.1,.36,1) both}.anim-fade-up{animation:fade-up .5s ease .15s both}.anim-wobble{animation:wobble .6s ease both}.anim-shake{animation:shake .45s ease infinite}.anim-bounce{animation:bounce .55s ease infinite}.anim-boing-face{animation:boing-face .65s cubic-bezier(.34,1.4,.64,1) both}.anim-pie{animation:pie-splat .75s cubic-bezier(.34,1.2,.64,1) both}.anim-wag{animation:wag .28s ease infinite}.anim-breathe{animation:breathe 1.8s ease infinite}.anim-float{animation:bounce 1.2s ease infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--mc-ink: #2a1f38;--mc-cream: #fff8f0;--mc-sticker-shadow: 0 10px 0 var(--mc-ink), 0 18px 40px rgba(0, 0, 0, .45)}.moment-layout{display:grid;width:100%;height:100%;position:relative;padding:calc(.75rem + var(--safe-top)) 1rem calc(.75rem + var(--safe-bottom));animation:layout-enter .35s cubic-bezier(.34,1.3,.64,1) both}@keyframes layout-enter{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.moment-layout--diagonal{animation-name:layout-diagonal-in}@keyframes layout-diagonal-in{0%{opacity:0;transform:rotate(4deg) scale(.92)}to{opacity:1;transform:rotate(0) scale(1)}}.moment-layout--giant-text .moment-giant-text{animation:giant-text-slam .5s cubic-bezier(.22,1.2,.36,1) both}@keyframes giant-text-slam{0%{transform:scale(2.2);opacity:0}60%{transform:scale(.95);opacity:.28}to{transform:scale(1);opacity:.22}}.moment-stamp{animation:stamp-slam .45s cubic-bezier(.34,1.5,.64,1) both}@keyframes stamp-slam{0%{transform:scale(2.5) rotate(-20deg);opacity:0}70%{transform:scale(.9) rotate(6deg);opacity:1}to{transform:scale(1) rotate(-6deg);opacity:1}}.moment-stamp--tr{animation-name:stamp-slam-tr}@keyframes stamp-slam-tr{0%{transform:scale(2.5) rotate(20deg);opacity:0}70%{transform:scale(.9) rotate(10deg);opacity:1}to{transform:scale(1) rotate(8deg);opacity:1}}.moment-stamp--tl{animation-name:stamp-slam-tl}@keyframes stamp-slam-tl{0%{transform:scale(2.5) rotate(-20deg);opacity:0}70%{transform:scale(.9) rotate(-10deg);opacity:1}to{transform:scale(1) rotate(-8deg);opacity:1}}.moment-layout--side-slogan .moment-headline{animation:slogan-slide .55s cubic-bezier(.22,1.1,.36,1) both}@keyframes slogan-slide{0%{transform:translate(-120%);opacity:0}to{transform:translate(0);opacity:1}}.moment-layout--top-banner .moment-headline{animation:banner-drop .5s cubic-bezier(.34,1.4,.64,1) both}@keyframes banner-drop{0%{transform:translateY(-80px) rotate(-3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}.moment-layout--bottom-caption .moment-text{animation:caption-rise .45s ease .1s both}@keyframes caption-rise{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.moment-canvas{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;z-index:2}.moment-layout--fullscreen{grid-template-rows:1fr auto;grid-template-areas:"canvas" "text"}.moment-layout--fullscreen .moment-canvas{grid-area:canvas}.moment-layout--fullscreen .moment-text{grid-area:text}.moment-layout--fullscreen .mc-sticker{width:min(92vw,380px);max-height:62vh;object-fit:contain;filter:drop-shadow(0 12px 0 var(--mc-ink)) drop-shadow(0 20px 50px rgba(0,0,0,.5))}.moment-layout--giant-text{grid-template-rows:1fr auto}.moment-giant-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(3rem,18vw,7rem);font-weight:900;text-transform:uppercase;line-height:.9;letter-spacing:-.04em;opacity:.22;z-index:1;pointer-events:none;text-align:center;padding:0 .5rem}.moment-overlay[data-category=happy] .moment-giant-text{color:var(--happy)}.moment-overlay[data-category=sad] .moment-giant-text{color:var(--sad)}.moment-overlay[data-category=sappy] .moment-giant-text{color:var(--sappy)}.moment-layout--giant-text .mc-sticker{width:min(80vw,340px);z-index:3}.moment-stamp{position:absolute;z-index:8;padding:.65rem 1.1rem;background:var(--mc-cream);border:3px solid var(--mc-ink);border-radius:.75rem;box-shadow:var(--mc-sticker-shadow);transform:rotate(-6deg);max-width:55vw}.moment-stamp--tr{top:calc(1rem + var(--safe-top));right:1rem;transform:rotate(8deg)}.moment-stamp--tl{top:calc(1rem + var(--safe-top));left:1rem;transform:rotate(-8deg)}.moment-stamp__text{font-size:clamp(1rem,4.5vw,1.35rem);font-weight:900;text-transform:uppercase;color:var(--mc-ink);line-height:1.1}.moment-layout--stamp-tr .moment-text,.moment-layout--stamp-tl .moment-text{position:absolute;bottom:calc(1rem + var(--safe-bottom));left:0;right:0;z-index:7}.moment-layout--bottom-caption{grid-template-rows:1fr}.moment-layout--bottom-caption .moment-canvas{align-items:flex-end;padding-bottom:0}.moment-layout--bottom-caption .mc-sticker{width:min(95vw,400px);max-height:68vh}.moment-layout--bottom-caption .moment-text{position:absolute;bottom:calc(.75rem + var(--safe-bottom));left:0;right:0;z-index:7;background:linear-gradient(transparent,#0a0a0ed9);padding:2.5rem 1rem .5rem}.moment-layout--top-banner{grid-template-rows:auto 1fr}.moment-layout--top-banner .moment-text{z-index:7;padding-bottom:.5rem}.moment-layout--top-banner .moment-headline{font-size:clamp(2rem,10vw,3.5rem)}.moment-layout--top-banner .mc-sticker{width:min(88vw,360px)}.moment-layout--side-slogan .moment-text{position:absolute;left:.75rem;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center;z-index:7;width:auto;text-align:left}.moment-layout--side-slogan .moment-headline{font-size:clamp(1.4rem,7vw,2.2rem);white-space:nowrap}.moment-layout--side-slogan .moment-subline{display:none}.moment-layout--side-slogan .mc-sticker{width:min(78vw,340px)}.moment-layout--diagonal .moment-canvas{transform:rotate(-3deg) scale(1.02)}.moment-layout--diagonal .moment-text{position:absolute;top:calc(1rem + var(--safe-top));right:1rem;text-align:right;z-index:7;transform:rotate(3deg);max-width:70vw}.moment-layout--stack .mc-sticker{width:min(85vw,340px);animation:stack-float 2s ease-in-out infinite}.stack-sticker{position:absolute;font-size:clamp(2rem,10vw,3.5rem);z-index:6;filter:drop-shadow(0 6px 0 var(--mc-ink));animation:stack-pop .5s cubic-bezier(.34,1.5,.64,1) both;animation-delay:calc(var(--i) * .12s)}.stack-sticker:nth-child(odd){top:12%;left:8%}.stack-sticker:nth-child(2n){bottom:18%;right:10%}.moment-layout--stack .moment-text{position:absolute;bottom:calc(.5rem + var(--safe-bottom));left:0;right:0;z-index:7}.moment-layout--slapstick-full{grid-template-rows:1fr auto}.moment-layout--slapstick-full .moment-canvas{flex-direction:column}.moment-layout--slapstick-full .slapstick-face{font-size:clamp(6rem,35vw,14rem);z-index:4}.moment-layout--slapstick-full .moment-text{z-index:7}.mc-sticker{position:relative;z-index:3;border-radius:1.25rem;outline:4px solid var(--mc-cream);outline-offset:-2px;filter:drop-shadow(0 8px 0 var(--mc-ink)) drop-shadow(0 14px 36px rgba(0,0,0,.4))}.mc-sticker--failed{display:none}.moment-hero-emoji{position:absolute;font-size:clamp(4rem,22vw,9rem);z-index:5;filter:drop-shadow(0 8px 0 var(--mc-ink));pointer-events:none}.moment-layout--fullscreen .moment-hero-emoji{top:8%;right:8%}.moment-layout--bottom-caption .moment-hero-emoji{top:10%;left:10%}.moment-layout--stack .moment-hero-emoji{top:5%;right:12%}.mc-critter-canvas{z-index:3;filter:drop-shadow(0 10px 0 var(--mc-ink)) drop-shadow(0 16px 40px rgba(0,0,0,.45))}.moment-text{text-align:center;z-index:6;position:relative}.moment-headline{font-size:clamp(1.7rem,8.5vw,3rem);font-weight:900;letter-spacing:-.03em;line-height:1.05;text-transform:uppercase}.moment-subline{margin-top:.45rem;font-size:clamp(.9rem,3.8vw,1.15rem);color:var(--text-muted);font-weight:500;line-height:1.35}.moment-overlay[data-category=happy] .moment-headline{color:var(--happy);text-shadow:0 0 40px var(--happy-glow),0 2px 0 var(--mc-ink)}.moment-overlay[data-category=sad] .moment-headline{color:var(--sad);text-shadow:0 0 30px var(--sad-glow),0 2px 0 var(--mc-ink)}.moment-overlay[data-category=sappy] .moment-headline{color:var(--sappy);text-shadow:0 0 30px var(--sappy-glow),0 2px 0 var(--mc-ink)}@keyframes stack-float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes stack-pop{0%{transform:scale(0) rotate(-20deg);opacity:0}70%{transform:scale(1.15) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes jelly{0%,to{transform:scale(1)}30%{transform:scale(1.08,.92)}60%{transform:scale(.94,1.06)}}.anim-jelly{animation:jelly .7s ease infinite}.bg-blob:nth-child(5){width:90px;height:90px;bottom:25%;right:15%}@media(prefers-reduced-motion:reduce){.moment-layout--stack .mc-sticker,.stack-sticker{animation:none}}
