*{box-sizing:border-box;margin:0;padding:0}:root{--cream: #ece9e2;--ink: #0b0805}html,body,#root{height:100%}body{background:var(--ink);color:var(--cream);font-family:Work Sans,system-ui,sans-serif;font-weight:400;overflow:hidden;-webkit-font-smoothing:antialiased}.scene{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5vmin;background:var(--ink)}.wordmark,.status{position:absolute;top:4vmin;font-size:13px;font-weight:300;letter-spacing:.18em;color:#ece9e273}.wordmark{left:5vmin}.status{right:5vmin}.cake-wrap{position:relative;width:min(46vw,620px)}.cake{position:relative;width:100%;animation:sceneIn 1.6s cubic-bezier(.22,1,.36,1) both}.cake-svg{display:block;width:100%;height:auto}.light-layer{transition:opacity 2.4s ease}.blown .light-layer{opacity:0}@keyframes sceneIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.flame-pos{position:absolute;left:50.65%;top:32.3%;--blow: 0;pointer-events:none}.flame-flicker{transform-origin:50% 100%;animation:flicker .16s ease-in-out infinite alternate}.flame-flicker.dipping{animation:dip .7s ease}.flame{position:absolute;left:50%;bottom:0;width:24px;height:58px;transform:translate(-50%) scale(calc(1 - var(--blow) * .38),calc(1 + var(--blow) * .16)) skew(calc(var(--blow) * -9deg));transform-origin:50% 100%;background:radial-gradient(ellipse 55% 62% at 50% 72%,#fffdf4,#ffe9a8 28%,#ffb347 52%,#ff7a1a 78%,#ff6e1400);border-radius:50%/68% 68% 32% 32%;will-change:transform}.flame-core{position:absolute;left:50%;bottom:6px;width:13px;height:30px;transform:translate(-50%);background:radial-gradient(ellipse 50% 60% at 50% 80%,#fff,#fff6d8 55%,#fff6d800);border-radius:50%/68% 68% 32% 32%}@keyframes flicker{0%{transform:rotate(-2.2deg) scale(1)}to{transform:rotate(2.4deg) scale(.965,1.05)}}@keyframes dip{0%{transform:scale(1)}35%{transform:scale(.5,1.4) skew(-11deg)}62%{transform:scale(.86,1.08) skew(-4deg)}to{transform:scale(1)}}.blown .flame-flicker{animation:none}.blown .flame{animation:flameOut .5s cubic-bezier(.4,0,.6,1) forwards}@keyframes flameOut{0%{opacity:1;transform:translate(-50%) scale(1)}35%{opacity:1;transform:translate(-50%) scale(.66,1.3)}to{opacity:0;transform:translate(-50%) scale(.08,1.7)}}.ember{position:absolute;left:50%;bottom:-1px;width:5px;height:5px;border-radius:50%;background:#ff8c42;opacity:0;transform:translate(-50%);pointer-events:none}.blown .ember{animation:ember 7s ease-out forwards}@keyframes ember{0%{opacity:0;box-shadow:0 0 #ff782800}12%{opacity:1;box-shadow:0 0 10px 3px #ff7828bf}to{opacity:0;box-shadow:0 0 #ff782800}}.smoke-live{position:absolute;left:50%;bottom:10px;width:16px;height:30px;transform:translate(-50%);background:radial-gradient(ellipse at 50% 82%,rgba(205,195,185,.55),transparent 72%);filter:blur(4px);opacity:calc(var(--blow) * .75);pointer-events:none}.smoke-bursts{position:absolute;left:0;bottom:0}.smoke-burst{position:absolute;left:0;bottom:0;border-radius:50%;background:radial-gradient(circle,rgba(214,204,194,.6),transparent 70%);filter:blur(5px);opacity:0;animation:rise var(--dur, 2s) ease-out forwards;pointer-events:none}@keyframes rise{0%{transform:translate(-50%) scale(.55);opacity:0}14%{opacity:var(--peak, .7)}to{transform:translate(calc(-50% + var(--sway, 16px)),-78px) scale(2.7);opacity:0}}.caption{display:flex;flex-direction:column;align-items:center;gap:.7em;text-align:center}.headline{font-size:18px;font-weight:300;letter-spacing:.02em;color:var(--cream);animation:hintIn 1.8s ease-out}.hint{font-size:14px;font-weight:300;letter-spacing:.16em;color:#ece9e280;animation:hintIn 2.2s ease-out}@keyframes hintIn{0%{opacity:0}to{opacity:1}}.fallback{position:absolute;left:50%;bottom:-9vmin;transform:translate(-50%);padding:12px 26px;background:transparent;border:1px solid rgba(236,233,226,.35);border-radius:999px;color:var(--cream);font-family:inherit;font-size:13px;font-weight:300;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:background .4s,border-color .4s}.fallback:hover{background:#ece9e214;border-color:#ece9e2b3}@media(prefers-reduced-motion:reduce){.cake,.headline,.hint{animation:none}}
