:root{--bg: #17161b;--fg: #f2efe9;--muted: rgba(242, 239, 233, .4);--crack: rgba(242, 239, 233, .32)}[data-theme=light]{--bg: #f5f2ec;--fg: #1c1b20;--muted: rgba(28, 27, 32, .45);--crack: rgba(28, 27, 32, .28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:Segoe UI,system-ui,sans-serif;transition:background-color .45s ease,color .45s ease;-webkit-font-smoothing:antialiased}.stage{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem}.logo-button{border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}.logo-button>*{grid-area:1/1}.logo-button:focus-visible{outline:2px solid var(--muted);outline-offset:12px;border-radius:4px}.intro-text{font-size:58px;font-weight:700;line-height:1;white-space:nowrap;transition:opacity .4s ease}.intro-text.is-hidden{opacity:0;pointer-events:none}.logo{height:60px;width:auto;opacity:0;transform:scale(.88);transition:opacity .45s ease,transform .55s cubic-bezier(.34,1.56,.64,1)}.logo.is-visible{opacity:1;transform:scale(1)}.logo-button:hover .logo.is-visible{transform:scale(1.05)}.tagline{margin:0;font-size:11px;letter-spacing:.35em;text-indent:.35em;text-transform:uppercase;color:var(--muted);opacity:0;transform:translateY(6px);transition:opacity .6s ease .35s,transform .6s ease .35s}.tagline.is-visible{opacity:1;transform:none}.cracks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:10}.cracks path{fill:none;stroke:var(--crack);stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:1;stroke-dashoffset:1;animation:crack-draw .3s cubic-bezier(.6,0,.9,1) forwards}@keyframes crack-draw{to{stroke-dashoffset:0}}.logo-button.shake-small{animation:shake-small .35s ease-out}.logo-button.shake-hard{animation:shake-hard .5s ease-out}@keyframes shake-small{20%{transform:translate(2px,-1px)}45%{transform:translate(-2px,1px)}70%{transform:translate(1px,1px)}}@keyframes shake-hard{15%{transform:translate(-5px,3px) rotate(-1.2deg)}35%{transform:translate(5px,-3px) rotate(1.2deg)}55%{transform:translate(-3px,-2px) rotate(-.7deg)}75%{transform:translate(2px,2px) rotate(.4deg)}}@media(prefers-reduced-motion:reduce){.logo,.intro-text,.tagline,body{transition:none}.cracks path{animation:none;stroke-dashoffset:0}.logo-button.shake-small,.logo-button.shake-hard{animation:none}}
