@font-face{font-family:Excalifont;src:url(/fonts/excalifont-latin.woff2)format("woff2");font-display:swap;unicode-range:U+20-7E,U+A0-A3,U+A5-A6,U+A8-AB,U+AD-B1,U+B4,U+B6-B8,U+BA-FF,U+131,U+152-153,U+2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+2013-2014,U+2018-201A,U+201C-201E,U+2020,U+2022,U+2024-2026,U+2030,U+2039-203A,U+20AC,U+2122,U+2212}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-latin-ext.woff2)format("woff2");font-display:swap;unicode-range:U+100-130,U+132-137,U+139-149,U+14C-151,U+154-17E,U+192,U+1FC-1FF,U+218-21B,U+237,U+1E80-1E85,U+1EF2-1EF3,U+2113}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-cyrillic.woff2)format("woff2");font-display:swap;unicode-range:U+400-45F,U+490-491,U+2116}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-cyrillic-ext.woff2)format("woff2");font-display:swap;unicode-range:U+462-463,U+472-475,U+4D8-4D9,U+4E2-4E3,U+4E6-4E9,U+4EE-4EF}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-greek.woff2)format("woff2");font-display:swap;unicode-range:U+37E,U+384-38A,U+38C,U+38E-393,U+395-3A1,U+3A3-3A8,U+3AA-3CF,U+3D7}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-marks.woff2)format("woff2");font-display:swap;unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+2DD,U+302,U+306-307,U+30A-30C,U+326-328,U+212E,U+2211,U+FB01-FB02}@font-face{font-family:Excalifont;src:url(/fonts/excalifont-accents.woff2)format("woff2");font-display:swap;unicode-range:U+300-301,U+303}:root{--bg:#07060c;--ink:#fff8f0;--pink:#ff5fa2;--yellow:#ffd23f;--mint:#3ee6b0;--sky:#4cc9ff;--lilac:#b98cff;--orange:#ff9f45;--card-w:min(66vw, 300px, 40dvh);--card-h:calc(var(--card-w) * 1.3);--gap:calc(var(--card-w) * .06);--spring:cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{grid-template-rows:auto 1fr calc(132px + env(safe-area-inset-bottom));background:radial-gradient(120% 70% at 50% 45%, #1a1426 0%, var(--bg) 70%);height:100dvh;color:var(--ink);font-synthesis:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:Excalifont,Comic Sans MS,ui-rounded,cursive;display:grid}.ambient{z-index:0;pointer-events:none;position:fixed;inset:-20%;-webkit-mask:radial-gradient(closest-side,#000 35%,#0000 100%);mask:radial-gradient(closest-side,#000 35%,#0000 100%)}.ambient img{object-fit:cover;filter:blur(56px)saturate(1.8)brightness(.5);opacity:0;width:100%;height:100%;transition:opacity 1.1s;position:absolute;inset:0}.ambient img.is-on{opacity:.85}.spotlight{z-index:1;pointer-events:none;background:conic-gradient(from 158deg at 50% -8%,#0000,#fff3d61c 14deg,#fff3d630 22deg,#fff3d61c 30deg,#0000 44deg);animation:5s step-end infinite flicker;position:fixed;inset:0;-webkit-mask:linear-gradient(#000 30%,#0000 92%);mask:linear-gradient(#000 30%,#0000 92%)}@keyframes flicker{0%,to{opacity:1}41%{opacity:.82}43%{opacity:1}77%{opacity:.9}}.valance{height:calc(26px + env(safe-area-inset-top));z-index:1;filter:drop-shadow(0 6px 10px #000);background:repeating-linear-gradient(90deg,#0005 0 2px,#0000 2px 13px,#ffffff14 13px 15px,#0000 15px 26px),linear-gradient(#5a0a24,#a3123f);position:fixed;inset:0 0 auto;-webkit-mask:radial-gradient(14px 12px at 50% 100%,#0000 98%,#000) 0 0/28px 100% repeat-x;mask:radial-gradient(14px 12px at 50% 100%,#0000 98%,#000) 0 0/28px 100% repeat-x}.masthead{z-index:3;margin:calc(34px + env(safe-area-inset-top)) 16px 0;justify-items:center;gap:14px;min-width:0;display:grid;position:relative}.marquee{letter-spacing:.02em;color:#fff3c4;text-shadow:0 0 12px #ffd23f99;outline-offset:4px;background:#1c1424cc;border-radius:999px;outline:4px dotted #ffe9a6;margin:0;padding:8px 18px;font-size:17px;animation:1.2s steps(2,end) infinite twinkle;box-shadow:0 0 0 2px #ffd23f55,0 0 24px #ffb3474d}@keyframes twinkle{50%{outline-color:#ffb347}}.wall{z-index:2;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;align-items:center;display:flex;position:relative;overflow:auto hidden}.wall::-webkit-scrollbar{display:none}.track{gap:var(--gap);padding:0 calc(50vw - var(--card-w) / 2);margin:0;padding-block-end:calc(var(--card-h) * .2);list-style:none;display:flex}.track:empty:before{content:"🎨";width:var(--card-w);height:var(--card-h);background:#ffffff08;border:3px dashed #ffffff38;border-radius:30px;place-items:center;font-size:64px;animation:4s ease-in-out infinite bob;display:grid}.track>li{width:var(--card-w);scroll-snap-align:center;scroll-snap-stop:always;flex:none}.card{width:100%;color:inherit;font:inherit;cursor:pointer;animation:float-in .9s var(--spring) both;animation-delay:calc(var(--i,0) * 80ms);background:0 0;border:0;padding:0;display:block}.card:focus-visible{outline:none}.card:focus-visible .frame{box-shadow:0 0 0 4px var(--yellow)}@keyframes float-in{0%{opacity:0;transform:translateY(60px)scale(.7)rotate(-6deg)}}.frame{height:var(--card-h);-webkit-backdrop-filter:blur(18px)saturate(1.6);backdrop-filter:blur(18px)saturate(1.6);-webkit-box-reflect:below 12px linear-gradient(transparent 78%, #ffffff26);animation:5s ease-in-out infinite bob;animation-delay:calc(var(--i,0) * -1.3s);background:linear-gradient(160deg,#ffffff2e,#ffffff0a 45%,#ffffff14);border:1px solid #ffffff3d;border-radius:30px;padding:10px;position:relative;box-shadow:inset 0 1px #ffffff59,0 24px 50px -12px #000c}@keyframes bob{50%{translate:0 -7px}}.frame img{object-fit:cover;opacity:0;width:100%;height:100%;filter:brightness(calc(1 - var(--away,0) * .3)) blur(calc(var(--away,0) * 1px));background:linear-gradient(135deg,#2a2140,#3b2a52);border-radius:21px;transition:opacity .5s;display:block}.frame img.is-loaded{opacity:1}.bubble{--tone:var(--yellow);background:var(--tone);color:#241a33;text-align:center;overflow-wrap:anywhere;border-radius:20px;margin:0;padding:8px 14px;font-size:16px;line-height:1.25;position:relative;box-shadow:0 8px 18px -6px #000a}.bubble:after{content:"";background:inherit;z-index:-1;border-radius:4px;width:18px;height:18px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(45deg)}.frame .bubble{width:max-content;max-width:88%;animation:wobble-in .9s var(--spring) both;animation-delay:calc(var(--i,0) * 80ms + .5s);position:absolute;bottom:-16px;left:50%;translate:-50%;rotate:-3deg}.frame .bubble span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.track>li:nth-child(5n+2) .bubble{--tone:var(--pink)}.track>li:nth-child(5n+3) .bubble{--tone:var(--mint)}.track>li:nth-child(5n+4) .bubble{--tone:var(--sky)}.track>li:nth-child(5n+5) .bubble{--tone:var(--lilac)}.plaque{color:#3a2508;text-align:center;background:linear-gradient(170deg,#fff1c4,#f0c968 55%,#d9a63e);border-radius:6px;justify-items:center;min-width:0;margin:0;padding:5px 14px 6px;font-size:15px;line-height:1.15;display:grid;box-shadow:inset 0 1px #fffbe9,inset 0 -1.5px #a8792466,0 6px 14px -6px #000c}.plaque b,.plaque span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:inherit;overflow:hidden}.plaque span{opacity:.75;font-size:.78em}.frame .plaque{width:max-content;max-width:82%;position:absolute;top:-12px;left:50%;translate:-50%;rotate:2deg}[data-show=topic] .frame .plaque{display:none}.placard{align-items:baseline;gap:0 .4em;max-width:100%;padding-inline:16px;font-size:17px;display:flex;rotate:-1.5deg}.placard[hidden]{display:none}.placard b{flex:0 auto}.placard span{flex:none;max-width:50%}.placard span:before{content:"· "}@keyframes wobble-in{0%{rotate:12deg;scale:0}50%{rotate:-8deg;scale:1.12}70%{rotate:4deg}85%{rotate:-4deg}}.hint{left:50%;bottom:calc(118px + env(safe-area-inset-bottom));z-index:4;text-align:center;text-shadow:0 0 18px #ff5fa2aa;width:max-content;max-width:calc(100vw - 32px);margin:0;font-size:26px;animation:1.6s ease-in-out infinite hop;position:fixed;translate:-50%}.hint[hidden]{display:none}[data-show=all] .hint{bottom:calc(44px + env(safe-area-inset-bottom))}[data-show=lost] .wall{visibility:hidden}[data-show=lost] .hint{font-size:30px;bottom:50%}@keyframes hop{50%{translate:-50% -10px}}.seats{height:calc(70px + env(safe-area-inset-bottom));z-index:3;pointer-events:none;filter:drop-shadow(0 -1.5px #ffffff1c);background:radial-gradient(22px 30px at 50% 30px,#0e0b14 96%,#0000) 0 0/52px 100% repeat-x,linear-gradient(#0000 30px,#08060c 30px);position:fixed;inset:auto 0 0}.orb{left:50%;bottom:calc(28px + env(safe-area-inset-bottom));z-index:5;cursor:pointer;color:#fff;width:78px;height:78px;transition:scale .2s var(--spring);border-radius:50%;place-items:center;font-size:46px;line-height:1;animation:2.8s ease-in-out infinite breathe;display:grid;position:fixed;translate:-50%}.orb[hidden]{display:none}.orb:after{content:"";z-index:-1;background:radial-gradient(closest-side,#ff5fa2aa,#9b5cff55 45%,#0000);border-radius:50%;animation:2.8s ease-in-out infinite glow;position:absolute;inset:-64px}@keyframes glow{50%{opacity:.6;scale:1.15}}.orb:before{content:"";background:conic-gradient(from 0deg, var(--pink), var(--yellow), var(--mint), var(--sky), var(--lilac), var(--pink));opacity:.9;border-radius:50%;animation:4s linear infinite spin;position:absolute;inset:-7px;-webkit-mask:radial-gradient(closest-side,#0000 86%,#000 88%);mask:radial-gradient(closest-side,#0000 86%,#000 88%)}.orb:active{scale:.9}.orb:has(:focus-visible){outline:4px solid var(--yellow);outline-offset:8px}.orb span{text-shadow:0 2px 6px #5b1fa8;background:radial-gradient(circle at 32% 26%,#fffc 0 8%,#0000 30%),radial-gradient(circle at 50% 60%,#ff7ab8,#9b5cff 72%);border:1.5px solid #ffffff80;border-radius:50%;place-items:center;width:100%;height:100%;padding-bottom:4px;display:grid;box-shadow:inset 0 -8px 18px #5b1fa866}.picker{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}@keyframes breathe{50%{scale:1.07}}@keyframes spin{to{rotate:1turn}}.immersive{z-index:20;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);touch-action:none;background:#05040acc;align-content:center;place-items:center;gap:22px;animation:.35s both fade-in;display:grid;position:fixed;inset:0}.immersive[hidden]{display:none}.immersive-img{view-transition-name:hero;max-width:100%;max-height:58dvh;transition:translate .3s var(--spring), scale .3s var(--spring);border-radius:26px;display:block;box-shadow:0 30px 80px -10px #000,0 0 0 1px #ffffff30}.is-dragging .immersive-img{transition:none}.immersive-plaque{max-width:min(90vw,420px);animation:pop .75s var(--spring) .15s both;font-size:19px}.immersive-note{--tone:var(--yellow);max-width:min(90vw,420px);animation:pop .75s var(--spring) .25s both;padding:12px 20px;font-size:22px}.immersive-note:empty{display:none}@keyframes pop{0%{opacity:0;rotate:-10deg;scale:.2}60%{opacity:1;rotate:4deg;scale:1.15}80%{scale:.94}}@keyframes fade-in{0%{opacity:0}}::view-transition-group(hero){animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.9,.25,1.08)}::view-transition-old(hero){object-fit:cover;border-radius:24px;height:100%}::view-transition-new(hero){object-fit:cover;border-radius:24px;height:100%}.grain{z-index:30;pointer-events:none;opacity:.045;animation:.9s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{translate:0}20%{translate:-6% 4%}40%{translate:5% -7%}60%{translate:-3% 8%}80%{translate:7% 2%}to{translate:0}}.vignette{z-index:29;pointer-events:none;background:radial-gradient(130% 95% at 50% 45%,#0000 55%,#000000d9 100%);position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.grain{animation:none}::view-transition-group(*){animation:none!important}}.composer{width:100%;max-width:none;height:100%;max-height:none;padding:calc(20px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));color:inherit;font:inherit;opacity:0;transition:opacity .25s ease, display .25s allow-discrete, overlay .25s allow-discrete;background:0 0;border:0;place-content:center;justify-items:center;gap:18px;margin:0;position:fixed;inset:0;overflow:visible}.composer[open]{opacity:1;display:grid}@starting-style{.composer[open]{opacity:0}}.composer::backdrop{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05040ad9;transition:opacity .4s}.composer[data-state=celebrating]::backdrop,.composer[data-state=idle]::backdrop{opacity:0}.polaroid{touch-action:none;width:min(74vw,330px);transition:translate .35s var(--spring);background:#fffdf6;border-radius:10px;padding:12px 12px 6px;transform:rotate(-4deg);box-shadow:0 30px 60px -12px #000,0 0 50px #ff5fa244}.composer[open] .polaroid{animation:drop-in .75s var(--spring) both}.polaroid.is-dragging{transition:none}@keyframes drop-in{0%{opacity:0;transform:translateY(45vh)scale(.2)rotate(25deg)}}.polaroid-img{aspect-ratio:1;object-fit:cover;background:#2a2140;border-radius:4px;width:100%;animation:1.6s ease-out both develop;display:block}@keyframes develop{0%{filter:brightness(2.2)sepia(.8)blur(3px)}}.note{color:#2a2140;width:100%;height:56px;font:inherit;text-align:center;caret-color:var(--pink);-webkit-user-select:text;user-select:text;background:0 0;border:0;border-bottom:2px dashed #e3d9ef;outline:none;margin-top:4px;padding:0 6px;font-size:22px;display:block}.note::placeholder{color:#ad9fc4}.note:focus{border-bottom-color:var(--pink)}.oops{--tone:var(--pink);animation:pop .6s var(--spring) both;font-size:20px}.oops[hidden]{display:none}.send{cursor:pointer;width:76px;height:76px;transition:scale .2s var(--spring), opacity .3s ease;background:radial-gradient(circle at 32% 26%,#fffc 0 8%,#0000 30%),radial-gradient(circle at 50% 60%,#5ff0c4,#2fa8ff 75%);border:1.5px solid #fff9;border-radius:50%;place-items:center;padding:0;font-size:34px;animation:2.4s ease-in-out infinite breathe-send;display:grid;box-shadow:inset 0 -8px 18px #0b5a9966,0 0 26px #3ee6b0aa,0 0 60px #4cc9ff66}.send:active{scale:.9}.send:focus-visible{outline:4px solid var(--yellow);outline-offset:6px}@keyframes breathe-send{50%{scale:1.07}}.composer[data-state=sending] .send span{animation:.6s ease-in-out infinite alternate liftoff}@keyframes liftoff{0%{translate:0 4px;rotate:-8deg}to{translate:0 -8px;rotate:8deg}}.composer[data-state=celebrating] .send,.composer[data-state=celebrating] .oops{opacity:0}.is-arriving .card{visibility:hidden;animation:none}.is-arriving .bubble{animation:none}.just-landed .card{animation:landed .7s var(--spring) both}@keyframes landed{0%{scale:.85}40%{scale:1.08}}.spark{z-index:25;pointer-events:none;font-size:30px;position:fixed}
