.brand-lockup{position:absolute;top:12px;left:max(18px,calc((100vw - 1052px)/2));display:flex;align-items:center;gap:8px;text-decoration:none;font:bold 26px Georgia,serif;line-height:1;color:#253e2f}.brand-lockup img{object-fit:contain;mix-blend-mode:multiply}.brand-lockup small{display:block;font:12px system-ui;letter-spacing:.42em;text-align:center;margin-top:9px}.auth-brand{text-align:center;margin:-10px 0 28px}.auth-brand img{max-width:100%;object-fit:contain;mix-blend-mode:multiply}.auth-brand p{font-size:10px;letter-spacing:.22em;color:#527354;margin:0}.card#auth{border-top:3px solid #d4af37;background:linear-gradient(150deg,#fffef8,#f5f7ec)}#app-menu>summary:after{content:'Lucky Lotto Ledger';font-family:Georgia,serif;font-weight:bold}#app-menu>summary{display:flex;align-items:center;gap:5px}#app-menu>summary:before{content:'☰';font-size:23px}#app-menu>summary:after{background:url('./brand-ball.svg') no-repeat left center;background-size:56px 43px;padding-left:60px;min-height:43px;display:flex;align-items:center;margin-left:0}
.lucky-welcome{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 44%,#527354,#253e2f 60%,#12251b);color:#fffbed;text-align:center}.welcome-stage{width:min(90vw,500px);position:relative}.welcome-kicker{font:11px system-ui;letter-spacing:.35em;color:#dee5c9}.draw-chamber{position:relative;width:210px;height:210px;border:1px solid #d4af3770;border-radius:50%;margin:28px auto 40px;background:radial-gradient(circle at 30% 20%,#ffffff20,transparent 60%);box-shadow:0 0 80px #d4af371c,inset 0 0 35px #ffffff0a}.small-ball{position:absolute;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffffed,#9eb47f 75%,#527354);box-shadow:0 3px 10px #0004;color:#253e2f;font:bold 18px Georgia;display:grid;place-items:center;left:83px;top:83px;animation:tumble 1s ease-in-out infinite alternate;animation-delay:var(--delay)}.hero-ball{position:absolute;inset:0;background:#fff;border-radius:50%;box-shadow:0 8px 45px #0004,0 0 45px #d4af3740;display:grid;place-items:center;opacity:0;animation:ball-reveal 3s cubic-bezier(.2,.7,.2,1) both}.hero-ball img{width:125%;max-width:none}.hero-ball{overflow:hidden}.welcome-stage h2{font:36px Georgia;margin:0 0 12px}.welcome-stage>p:last-child{color:#dee5c9;font-size:14px}.welcome-skip{position:absolute;right:20px;top:max(20px,env(safe-area-inset-top));background:#ffffff12;border:1px solid #ffffff50;color:white;font-size:13px}.glitter{position:absolute;left:50%;top:44%;width:7px;height:13px;background:var(--color);border-radius:1px;opacity:0;pointer-events:none;animation:glitter-burst 1.5s ease-out .85s both}.lucky-welcome.leaving{opacity:0;transition:opacity .25s}
@keyframes tumble{from{transform:translate(var(--x),var(--y)) rotate(-30deg)}to{transform:translate(var(--y),var(--x)) rotate(60deg)}}
@keyframes ball-reveal{0%,12%{opacity:0;transform:translateY(75px) scale(.1) rotate(-95deg)}35%{opacity:1;transform:translateY(-15px) scale(.65) rotate(12deg)}58%,90%{opacity:1;transform:translateY(0) scale(1.2) rotate(0)}100%{opacity:1;transform:scale(1.25)}}
@keyframes glitter-burst{0%{opacity:0;transform:translate(0,0) scale(.1)}12%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin))}}
@media(max-width:420px){.brand-lockup{font-size:23px}#app-menu{padding-left:8px;padding-right:8px}#app-menu>summary:after{font-size:16px}.welcome-stage h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.lucky-welcome{display:none}.small-ball,.hero-ball,.glitter{animation:none}}
