:root{--bg: #0d0d10;--ink: #f4f1ec;--ink-dim: rgba(244, 241, 236, .62);--accent: #f4f1ec;--accent-text: #ff5a52;--danger: #ff6b63;--surface: rgba(20, 20, 24, .55);--line: rgba(255, 255, 255, .1);--on-accent: #111111;--safe-top: var(--tg-content-safe-area-inset-top, env(safe-area-inset-top, 0px));--safe-bottom: var(--tg-content-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--radius: 16px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);overscroll-behavior:none}body{font:15px/1.4 -apple-system,system-ui,SF Pro Text,Inter,sans-serif}#app{position:relative;z-index:1;min-height:100%;padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 16px);display:flex;flex-direction:column}.display{font-weight:650;letter-spacing:-.01em;line-height:1.1}.h1{font-size:30px;margin:8px 0 4px}.dim{color:var(--ink-dim)}.link{color:inherit;text-decoration:underline;text-underline-offset:2px}.header{display:flex;justify-content:space-between;align-items:center;gap:12px}.chip{height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--line);color:var(--ink);background:var(--surface);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);display:inline-flex;align-items:center;gap:6px;font:600 12px/1 ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.tickets b{color:var(--accent-text)}.btn{width:100%;min-height:54px;border:0;border-radius:var(--radius);cursor:pointer;font-family:inherit;font-size:17px;font-weight:600;transition:transform .1s ease-out,opacity .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;transform:none;cursor:default}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn--ghost{background:transparent;color:var(--ink);border:1px solid rgba(244,241,236,.35)}.btn .spinner{display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:8px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}.bottom{margin-top:auto;display:flex;flex-direction:column;gap:12px;width:min(100%,360px);align-self:center}.consent{font-size:12px;text-align:center;color:var(--ink-dim)}.card{border-radius:var(--radius);background:var(--surface);padding:16px}.shake{animation:shake .4s}.plus-one{animation:pop .7s ease-out;display:inline-block}.skeleton{display:flex;flex-direction:column;gap:24px;flex:1}.skeleton__title,.skeleton__button,.skeleton__track span{background:var(--surface);border-radius:var(--radius);animation:pulse 1.2s ease-in-out infinite}.skeleton__title{height:34px;width:70%;margin-top:24px}.skeleton__track{display:flex;gap:12px;justify-content:center;margin:auto 0}.skeleton__track span{width:30%;aspect-ratio:3 / 4}.skeleton__track span:nth-child(2){width:40%}.skeleton__button{height:54px}.center{margin:auto 0;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes pop{0%{transform:scale(.6);opacity:0}40%{transform:scale(1.3);opacity:1}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.ambient{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.ambient__layer{position:absolute;inset:-20%;background:center / cover no-repeat;filter:blur(70px) saturate(1.3);opacity:0;will-change:opacity}.ambient:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff1a,#0000,#0a0a0e8c 70%,#0d0d10)}.stage{position:relative;flex:1;min-height:calc(var(--h, 300px) * 1.3);display:grid;place-items:center;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;margin:0 -16px;cursor:grab}.track{position:relative;width:0;height:0}.stage .card{position:absolute;left:0;top:0;width:var(--w);height:var(--h);margin-left:calc(var(--w) / -2);margin-top:calc(var(--h) / -2);padding:0;background:none;border-radius:0;will-change:transform,filter;transform-origin:50% 80%}.stage .card--dim{opacity:.45}.ambient__layer[data-tone]{background-image:radial-gradient(circle at 50% 38%,var(--tone) 0%,transparent 62%);filter:blur(60px) saturate(1.1)}.ambient__layer[data-tone]:after{content:"";position:absolute;inset:0;background:#0d0d1073}[data-tone=pink]{--tone: #f6b3d1;--tone-2: #fbd3e5;--tone-ink: #8a2a5a}[data-tone=yellow]{--tone: #f2d47d;--tone-2: #f8e6ad;--tone-ink: #7a5a06}[data-tone=green]{--tone: #a6dba4;--tone-2: #cdeccb;--tone-ink: #2c6a2a}[data-tone=lilac]{--tone: #bcb2ec;--tone-2: #dcd6f7;--tone-ink: #4b3a9a}[data-tone=blue]{--tone: #a7c4ee;--tone-2: #d0e0f7;--tone-ink: #234f8f}[data-tone=peach]{--tone: #f7c09c;--tone-2: #fbdcc6;--tone-ink: #8a4316}.ticket{container-type:inline-size}.ticket__in{--cut: 98cqw;--notch: 6cqw;position:relative;height:100%;display:flex;flex-direction:column;padding:7cqw 7cqw 6cqw;border-radius:9cqw;color:#15131a;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,var(--tone-2),var(--tone) 70%);-webkit-mask:radial-gradient(circle var(--notch) at 0 var(--cut),#0000 98%,#000) left / 51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% var(--cut),#0000 98%,#000) right / 51% 100% no-repeat;mask:radial-gradient(circle var(--notch) at 0 var(--cut),#0000 98%,#000) left / 51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% var(--cut),#0000 98%,#000) right / 51% 100% no-repeat}.ticket__in:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffb3,inset 0 0 0 1px #ffffff59;background:linear-gradient(115deg,rgba(255,255,255,.35) 0%,transparent 32%)}.ticket__top{height:9cqw;flex:none;display:flex;justify-content:space-between;align-items:center;gap:4cqw}.ticket__num{font:900 8.5cqw/1 Arial Black,-apple-system,system-ui,sans-serif;letter-spacing:-.02em}.ticket__badge,.rarity{display:inline-flex;align-items:center;height:2em;padding:0 .9em;border-radius:999px;font:800 max(9px,4.6cqw)/1 -apple-system,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;background:#1d1b22;color:#fff;white-space:nowrap}.ticket[data-rarity=rare] .ticket__badge,.rarity[data-rarity=rare]{background:#2f6bf2}.ticket[data-rarity=legendary] .ticket__badge,.rarity[data-rarity=legendary]{background:linear-gradient(90deg,#ff8a1f,#fc3);color:#2a1600}.rarity{height:22px;font-size:11px}.ticket__hero{position:relative;flex:none;height:calc(var(--cut) - 18cqw);display:grid;place-content:center;justify-items:center;text-align:center;margin:2cqw -2cqw 0}.ticket__hero:before{content:"";position:absolute;left:50%;top:50%;width:min(74cqw,100%);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 40% 30%,#ffffffbf,#ffffff2e 70%);box-shadow:inset 0 0 0 1px #ffffff80}.ticket__value{position:relative;font:900 31cqw/.9 Arial Black,-apple-system,system-ui,sans-serif;letter-spacing:-.05em;white-space:nowrap}.ticket__value svg{display:block;width:30cqw;height:30cqw;color:var(--tone-ink)}.ticket__kind{position:relative;margin-top:2.5cqw;font:800 5.4cqw/1.1 -apple-system,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.ticket__hero--photo img{position:relative;width:66cqw;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}.ticket__cut{flex:none;height:0;margin:0 -7cqw 4.5cqw;border-top:.8cqw dashed rgba(21,19,26,.28)}.ticket__label{font:900 6.6cqw/1.1 Arial Black,-apple-system,system-ui,sans-serif;letter-spacing:-.01em;text-transform:uppercase;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticket__cond{margin-top:1.5cqw;font:600 4.8cqw/1.2 -apple-system,system-ui,sans-serif;opacity:.7}.ticket__foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:auto;padding-top:4cqw;font:600 4.2cqw/1 -apple-system,system-ui,sans-serif;opacity:.75}.ticket__foot b{font-weight:900;letter-spacing:.14em}.caption{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-top:-8px;min-height:58px}.caption__title{font-size:21px;font-weight:800}.caption__meta{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap;justify-content:center}.caption--in{animation:caption-in .26s cubic-bezier(.2,.9,.3,1)}@keyframes caption-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-transparency:reduce){.chip{background:#1c1c21;-webkit-backdrop-filter:none;backdrop-filter:none}}.win__ticket{width:min(62vw,240px);aspect-ratio:1 / 1.42;animation:win-in .7s cubic-bezier(.2,1.3,.4,1) both;box-shadow:0 30px 60px -24px #000000b3}@keyframes win-in{0%{transform:rotate(-12deg) scale(.5);opacity:0}}.win__title{font-size:26px}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-12px;width:8px;height:14px;background:var(--accent);animation:fall 1.8s ease-in forwards}.confetti i:nth-child(3n){background:var(--ink)}@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(540deg)}}.code{font:700 26px/1.2 ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.06em;padding:14px 20px;border:1px dashed rgba(244,241,236,.5);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer}.code[data-copied]:after{content:" ✓";color:var(--accent-text)}.sub{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--radius);background:var(--surface);text-align:center}.sub__title{font-size:22px}.sub__plus{font-size:64px;color:var(--accent);animation:plus .6s cubic-bezier(.2,1.4,.4,1) both}@keyframes plus{0%{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.sub__plus{animation:none}}.email{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--radius);background:var(--surface);text-align:left}.email .sub__title,.email>.dim{text-align:center}.email__label{font-size:14px;font-weight:600}.field{width:100%;min-height:48px;padding:0 14px;border:1px solid rgba(244,241,236,.35);border-radius:var(--radius);font:inherit;font-size:16px;background:var(--bg);color:var(--ink)}.email__consent{display:flex;gap:10px;align-items:flex-start;font-size:14px}.email__consent input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--accent)}.email__error{color:var(--danger);font-size:14px;min-height:0;margin:0}.email__error:empty{display:none}.email__hint{align-self:flex-start;font-size:14px;background:none;border:0;padding:0;cursor:pointer}.email__hint[hidden]{display:none}.tabs{display:flex;gap:6px}.tab{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.tab[aria-selected=true]{background:var(--ink);color:#111}.prize-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.prize{display:flex;gap:14px;padding:12px;border-radius:var(--radius);background:var(--surface)}.prize--out{opacity:.55}.prize__img{width:90px;aspect-ratio:3 / 4;height:auto;flex:none;border-radius:10px;object-fit:cover;background:var(--line)}.prize__info{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.prize__title{font-size:18px}.prize__rarity{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.prize__badge{font-weight:700;color:var(--danger)}.code--small{font-size:18px;padding:8px 12px;align-self:flex-start}.btn--small{min-height:40px;width:auto;align-self:flex-start;padding:0 18px}.prize-grid{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.prize-grid__item{position:relative}.prize-grid__ticket{aspect-ratio:1 / 1.42;display:block;animation:card-in .42s cubic-bezier(.2,.9,.3,1) both}.prize-grid__badge{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-8deg);padding:6px 10px;border-radius:8px;background:#15131a;color:#fff;font-size:12px;font-weight:700;white-space:nowrap}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.96)}}
