@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg0:#04040a;--bg1:#07081a;--card:#ffffff12;--border:#ffffff2e;--text:#ffffffeb;--muted:#ffffffad;--muted2:#ffffff85;--shine:#ffffff24;--accent:#aa78ffd9;--mx:50%;--my:50%;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(900px 600px at 30% 20%,#8c5aff2e,#0000 55%),radial-gradient(850px 650px at 70% 80%,#46dcc814,#0000 60%),linear-gradient(180deg,#04040a,#07081a);background:radial-gradient(900px 600px at 30% 20%,#8c5aff2e,#0000 55%),radial-gradient(850px 650px at 70% 80%,#46dcc814,#0000 60%),linear-gradient(180deg,var(--bg0),var(--bg1));font-family:Inter,system-ui,-apple-system,sans-serif;margin:0}.App,body{min-height:100vh}.App{color:#ffffffeb;color:var(--text);display:grid;overflow:hidden;padding:2.25rem;place-items:center;position:relative}.mist,.stars,.vignette{z-index:0}.shell{grid-gap:1.4rem;display:grid;gap:1.4rem;justify-items:center;width:min(960px,100%);z-index:2}.markWrap,.shell{position:relative}.markWrap{perspective:900px;transform-style:preserve-3d}.moonHalo{background:radial-gradient(circle at 60% 42%,#ffffff24,#0000 60%),radial-gradient(circle at 55% 50%,#aa78ff1f,#0000 62%),radial-gradient(circle at 50% 50%,#0000,#000000bf 72%);border-radius:999px;filter:blur(.6px);inset:-28px -18px -14px -18px;pointer-events:none;position:absolute}.card{-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);background:linear-gradient(145deg,#ffffff14,#ffffff05);border:1px solid #ffffff2e;border:1px solid var(--border);border-radius:30px;box-shadow:0 40px 90px #0000008c,inset 0 1px 0 #ffffff14;overflow:hidden;padding:clamp(1.5rem,4vw,2.4rem);perspective:900px;position:relative;transform-style:preserve-3d;width:100%;will-change:transform}.shine{background:radial-gradient(520px 280px at 50% 50%,#ffffff1c,#0000 62%),radial-gradient(760px 460px at 62% 60%,#aa78ff1a,#0000 58%);background:radial-gradient(520px 280px at var(--mx) var(--my),#ffffff1c,#0000 62%),radial-gradient(760px 460px at calc(var(--mx) + 12%) calc(var(--my) + 10%),#aa78ff1a,#0000 58%);filter:blur(.6px);inset:-2px;mix-blend-mode:screen;opacity:.65;pointer-events:none;position:absolute}.celebrate{overflow:hidden;position:relative}.celebrateContent{position:relative;z-index:10}.toastHost{grid-gap:10px;bottom:18px;display:grid;gap:10px;left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);width:min(520px,calc(100vw - 28px));z-index:50}.toast{align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#00000085;border:1px solid #ffffff29;border-radius:14px;box-shadow:0 22px 60px #0009;color:#ffffffeb;color:var(--text);display:flex;gap:12px;justify-content:space-between;padding:.75rem .9rem;pointer-events:auto;width:100%}.toastIcon{flex:0 0 auto;opacity:.92;text-align:center;width:1.2rem}.toastHint{color:#ffffff73;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.toast-ok{border-color:#46dcc840}.toast-warn{border-color:#ffffff38}.photoFrame{background:#ffffff0a;border:1px solid #ffffff24;border-radius:22px;box-shadow:0 26px 70px #0000008c;margin-top:.8rem;overflow:hidden}.photoImg{display:block;height:auto;max-height:320px;object-fit:cover;width:100%}.copyButton{background:#ffffff0f;border:1px solid #ffffff29;border-radius:999px;color:#ffffffd9;font-size:.82rem;letter-spacing:.06em;padding:.4rem .65rem;text-transform:uppercase}.copyButton:hover{background:#ffffff14}.copyButtonCopied{animation:copyPop .26s ease-out;background:#46dcc814;border-color:#46dcc84d}@keyframes copyPop{0%{transform:scale(1)}60%{transform:scale(1.06)}to{transform:scale(1)}}.lettersSection{background:#ffffff0a;border:1px solid #ffffff24;border-radius:22px;margin-top:1.1rem;padding:1rem}.lettersHeader{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.7rem}.lettersTitle{color:#ffffffdb;font-family:Space Grotesk,Inter,sans-serif;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}.lettersKicker{color:#ffffff85;color:var(--muted2);font-size:.85rem}.lettersGrid{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:520px){.lettersGrid{grid-template-columns:1fr}}.letterCard{background:#00000038;border:1px solid #ffffff24;border-radius:18px;color:#ffffffeb;color:var(--text);padding:.85rem;text-align:left}.letterCard[disabled]{opacity:.65}.letterTop{align-items:center;display:flex;justify-content:space-between;margin-bottom:.55rem}.letterIndex{color:#ffffff85;color:var(--muted2);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase}.letterSeal{color:#aa78ffcc}.letterTitle{font-weight:600;letter-spacing:.02em;margin-bottom:.35rem}.letterBody{color:#ffffffc2;line-height:1.45}.letterBodyClosed{color:#ffffff80}.constellation{background:hsla(0,0%,100%,.035);border:1px solid #ffffff24;border-radius:22px;margin-top:1.1rem;padding:1rem}.constellationHeader{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.constellationTitle{color:#ffffffdb;font-family:Space Grotesk,Inter,sans-serif;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}.constellationKicker{color:#ffffff85;color:var(--muted2);font-size:.85rem}.constellationBox{background:radial-gradient(520px 240px at 40% 30%,#aa78ff14,#0000 62%),radial-gradient(520px 260px at 70% 70%,#46dcc80f,#0000 62%),#00000038;border:1px solid #ffffff1f;border-radius:18px;height:120px;overflow:hidden;position:relative}.pawTarget{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000002e;border:1px solid #ffffff2e;border-radius:999px;box-shadow:0 18px 40px #0000008c,0 0 0 0 #aa78ff00;color:#ffffffeb;cursor:pointer;display:grid;height:46px;place-items:center;position:absolute;transform:translate(-50%,-50%);width:46px}.pawTarget:hover{background:#0000003d}.pawTarget:active{transform:translate(-50%,-50%) scale(.98)}.constellationSvg{height:100%;inset:0;position:absolute;width:100%}.starDot{background:#ffffff2e;border:1px solid #ffffff59;border-radius:999px;box-shadow:0 0 0 0 #aa78ff00;height:12px;position:absolute;transform:translate(-50%,-50%);width:12px}.starDotNext{animation:starPulse 1.2s ease-in-out infinite;box-shadow:0 0 0 10px #aa78ff14}@keyframes starPulse{0%,to{box-shadow:0 0 0 10px #aa78ff0f}50%{box-shadow:0 0 0 14px #aa78ff1f}}.starDotActive{background:#ffffff8c;border-color:#ffffff8c}.constellationDone{bottom:10px;color:#ffffffb3;font-size:.9rem;letter-spacing:.06em;position:absolute;right:12px}.cinemaCurtain{background:radial-gradient(900px 500px at 50% 30%,#8c5aff14,#0000 60%),radial-gradient(700px 520px at 50% 70%,#ffffff0d,#0000 65%),linear-gradient(180deg,#000000e0,#0009);border-radius:30px;display:grid;inset:0;place-items:center;pointer-events:none;position:absolute;z-index:6}.cinemaGrain{background-image:radial-gradient(circle at 20% 30%,#ffffff0f 0 1px,#0000 2px),radial-gradient(circle at 70% 60%,#ffffff0d 0 1px,#0000 2px),radial-gradient(circle at 40% 80%,#ffffff0a 0 1px,#0000 2px);filter:blur(.25px);inset:0;opacity:.35;position:absolute}.cinemaSweep{animation:sweep 2.2s ease-in-out infinite;background:radial-gradient(circle at center,#ffffff12,#0000 60%);inset:-40% -40%;opacity:.65;position:absolute;transform:rotate(18deg)}@keyframes sweep{0%{transform:translate3d(-2%,-2%,0) rotate(18deg)}50%{transform:translate3d(2%,3%,0) rotate(18deg)}to{transform:translate3d(-2%,-2%,0) rotate(18deg)}}.cinemaText{background:#00000040;border:1px solid #ffffff24;border-radius:18px;box-shadow:0 20px 70px #0000008c;padding:1.2rem 1.4rem;position:relative;text-align:center}.cinemaKicker{color:#fff9;font-size:.8rem;letter-spacing:.28em;text-transform:uppercase}.cinemaLine{font-family:Space Grotesk,Inter,sans-serif;letter-spacing:.08em;margin-top:.5rem;text-transform:uppercase}.moonrise{background:radial-gradient(circle at 50% 50%,#ffffff1f,#0000 60%),radial-gradient(circle at 45% 40%,#aa78ff29,#0000 62%);border-radius:999px;filter:blur(.2px);height:min(620px,120%);left:50%;top:55%;transform:translate(-50%,-50%);width:min(620px,120%)}.moonrise,.sparkRain{pointer-events:none;position:absolute;z-index:0}.sparkRain{animation:sparkleDrift 8.5s ease-in-out infinite;background:radial-gradient(circle at 20% 20%,#ffffff0f 0 2px,#0000 4px),radial-gradient(circle at 80% 30%,#ffffff0d 0 2px,#0000 4px),radial-gradient(circle at 35% 70%,#ffffff0d 0 2px,#0000 4px),radial-gradient(circle at 70% 75%,#ffffff0a 0 2px,#0000 4px);inset:0;opacity:.32}@keyframes sparkleDrift{0%{transform:translateZ(0)}50%{transform:translate3d(-8px,6px,0)}to{transform:translateZ(0)}}.reveal,.revealInner{display:inline-block}.revealInner{padding:.05em 0}.badge{align-items:center;background:#00000042;border:1px solid #ffffff29;border-radius:999px;color:#ffffffad;color:var(--muted);display:inline-flex;font-size:.8rem;gap:.5rem;letter-spacing:.18em;margin-bottom:.9rem;padding:.45rem .75rem}.badge,.title{text-transform:uppercase}.title{font-family:Space Grotesk,Inter,sans-serif;font-size:clamp(2.2rem,4.5vw,3.2rem);letter-spacing:.05em;margin:0}.subtitle,.title{text-align:center}.subtitle{color:#ffffffad;color:var(--muted);letter-spacing:.06em;line-height:1.6;margin:.75rem auto 0;max-width:58ch}.grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:2rem}@media (max-width:720px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{background:#00000038;border:1px solid #ffffff24;border-radius:24px;box-shadow:inset 0 0 0 1px #ffffff08;overflow:hidden;padding:1.1rem 1rem;position:relative}.tile:before{background:radial-gradient(circle at center,#aa78ff38,#0000 65%);content:"";height:90px;inset:-40% -40% auto -40%;pointer-events:none;position:absolute;transform:rotate(-12deg)}.tileNumber{display:grid;height:3.4rem;place-items:center}.tileNumberInner{display:inline-block;font-size:2.7rem;font-weight:700;letter-spacing:.06em}.tileLabel{color:#ffffff85;color:var(--muted2);font-size:.75rem;letter-spacing:.3em;margin-top:.25rem;text-transform:uppercase}.hint,.tileLabel{text-align:center}.hint{color:#ffffff8c;line-height:1.7;margin:1.7rem auto 0;max-width:62ch}.soundControls{align-items:center;display:flex;flex-wrap:wrap;gap:.9rem 1rem;justify-content:center;margin-top:1.25rem;position:relative;z-index:5}.soundButton{background:#00000047;border:1px solid #ffffff29;border-radius:999px;color:#ffffffd9;cursor:pointer;font-size:.78rem;letter-spacing:.14em;padding:.65rem .95rem;text-transform:uppercase}.soundButton:hover{border-color:#ffffff52}.soundLabel{align-items:center;color:#ffffffad;display:flex;font-size:.78rem;gap:.65rem;letter-spacing:.14em;text-transform:uppercase}.soundSlider{width:min(240px,60vw)}.giftSection{background:#00000038;border:1px solid #ffffff24;border-radius:22px;box-shadow:inset 0 0 0 1px #ffffff08;margin:1.05rem auto 0;max-width:680px;padding:.95rem 1rem;position:relative;z-index:5}.giftHeader{align-items:baseline;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.65rem}.giftTitle{font-family:Space Grotesk,Inter,sans-serif;font-size:.95rem;font-weight:700}.giftKicker,.giftTitle{letter-spacing:.12em;text-transform:uppercase}.giftKicker{color:#fff9;font-size:.72rem}.giftButton{background:#ffffff1a;border:1px solid #ffffff29;border-radius:16px;color:#ffffffeb;cursor:pointer;font-size:.82rem;font-weight:750;letter-spacing:.12em;padding:.75rem .9rem;text-transform:uppercase;transition:transform .14s ease,background .14s ease,border-color .14s ease;width:100%}.giftButton:hover{background:#ffffff24;border-color:#ffffff47;transform:translateY(-1px)}.giftButton:active{transform:translateY(0) scale(.99)}.giftButtonAlt{background:#0003;margin-top:.7rem}.giftReveal{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;padding:.25rem .15rem .1rem}.giftEmoji{filter:drop-shadow(0 14px 26px rgba(0,0,0,.7));font-size:1.35rem}.giftCodes{grid-gap:.55rem;display:grid;gap:.55rem;margin-top:.7rem}.giftCodeRow{align-items:center;background:#00000038;border:1px solid #ffffff1f;border-radius:16px;display:flex;gap:.75rem;justify-content:space-between;padding:.7rem .75rem}.giftCodeLabel{color:#ffffffb8;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.giftCodeValue{color:#ffffffeb;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.82rem;opacity:.95;text-align:right;word-break:break-word}.celebrateReady .subtitle{margin-bottom:.25rem}.startRow{display:flex;justify-content:center;margin-top:1rem}.startButton{background:#ffffff1f;border:1px solid #ffffff2e;border-radius:16px;box-shadow:0 18px 55px #0000008c;color:#fffffff0;cursor:pointer;font-weight:750;letter-spacing:.12em;padding:.85rem 1.1rem;text-transform:uppercase;transition:transform .14s ease,background .14s ease,border-color .14s ease}.startButton:hover{background:#ffffff29;border-color:#ffffff4d;transform:translateY(-1px)}.startButton:active{transform:translateY(0) scale(.99)}.celebrateRow{display:flex;font-size:1.6rem;gap:.75rem;justify-content:center;margin-top:1.25rem}.emoji{filter:drop-shadow(0 10px 22px rgba(0,0,0,.65))}.catMark{animation:floaty 6.5s ease-in-out infinite;filter:drop-shadow(0 32px 70px rgba(0,0,0,.75));height:auto;opacity:.95;width:min(420px,70vw)}.catEyes{transform-origin:center}@keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes twinkle{0%{opacity:.18}35%{opacity:.38}70%{opacity:.22}to{opacity:.34}}@keyframes shootingStar{0%{opacity:0;transform:translate3d(-40%,-20%,0) rotate(-18deg)}6%{opacity:.55}10%{opacity:0;transform:translate3d(140%,120%,0) rotate(-18deg)}to{opacity:0;transform:translate3d(140%,120%,0) rotate(-18deg)}}.stars{animation:drift 18s linear infinite,twinkle 6.5s ease-in-out infinite;background:radial-gradient(circle at 10% 20%,#ffffffbf 0 1px,#0000 2px),radial-gradient(circle at 70% 35%,#ffffffa6 0 1px,#0000 2px),radial-gradient(circle at 30% 80%,#ffffff8c 0 1px,#0000 2px),radial-gradient(circle at 90% 70%,#ffffff80 0 1px,#0000 2px),radial-gradient(circle at 55% 15%,#fff9 0 1px,#0000 2px);inset:-40px;opacity:.35}.stars,.stars:after{filter:blur(.2px);position:absolute}.stars:after{animation:shootingStar 11s linear infinite;background:linear-gradient(90deg,#0000,#ffffff8c,#0000);content:"";height:2px;left:-20%;opacity:0;pointer-events:none;top:12%;transform-origin:left center;width:55%}.stars.stars2{animation-duration:28s;animation-duration:28s,8.25s;animation-iteration-count:infinite,infinite;animation-name:drift,twinkle;animation-timing-function:linear,ease-in-out;background:radial-gradient(circle at 22% 25%,#ffffffa6 0 1px,#0000 2px),radial-gradient(circle at 44% 18%,#ffffff8c 0 1px,#0000 2px),radial-gradient(circle at 66% 30%,#ffffff80 0 1px,#0000 2px),radial-gradient(circle at 18% 72%,#ffffff73 0 1px,#0000 2px),radial-gradient(circle at 82% 76%,#ffffff80 0 1px,#0000 2px);filter:blur(.4px);inset:-60px;opacity:.22}.mist{animation:mist 14s ease-in-out infinite;background:radial-gradient(900px 500px at 20% 70%,#aa78ff14,#0000 60%),radial-gradient(800px 520px at 80% 30%,#46dcc80f,#0000 62%),radial-gradient(600px 380px at 55% 55%,#ffffff08,#0000 65%);filter:blur(18px);inset:-30px;opacity:.6;pointer-events:none;position:absolute}@keyframes mist{0%{transform:translateZ(0)}50%{transform:translate3d(-10px,8px,0)}to{transform:translateZ(0)}}.fireworks{inset:0;opacity:.9;pointer-events:none;position:absolute;z-index:2}.fireworks.fireworksAlt{filter:blur(.1px);opacity:.65}.floatLayer{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:3}.floatThing{bottom:-40px;filter:drop-shadow(0 14px 26px rgba(0,0,0,.65));font-size:1.4rem;opacity:.85;position:absolute}.clickBurstLayer{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:5}.burstParticle{filter:drop-shadow(0 14px 26px rgba(0,0,0,.7));font-size:1.25rem;opacity:.9}.burst,.burstParticle{position:absolute;transform:translate(-50%,-50%)}.burst{filter:drop-shadow(0 22px 45px rgba(0,0,0,.65));height:120px;width:120px}@keyframes drift{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(-18px,12px,0) scale(1.02)}to{transform:translateZ(0) scale(1)}}.vignette{background:radial-gradient(900px 700px at 50% 40%,#0000 55%,#000000bf 100%),radial-gradient(700px 500px at 50% 85%,#0000008c,#0000 65%);inset:0;pointer-events:none;position:absolute}
/*# sourceMappingURL=main.f7af7ac8.css.map*/