:root{--bg:#f5f2ff;--ink:#1a1533;--muted:#565170;--card:#fff;--line:#e3ddf5;--primary:#5b2bff;--primary-ink:#fff;--primary-soft:#ece5ff;--go:#08794c;--go-soft:#dcf7ea;--hot:#c2410c;--gold:#ffd23f;--danger:#b42318;--holo:linear-gradient(120deg, #ff7ad9, #7ae7ff 35%, #fff07a 65%, #b18cff);--radius:18px;--shadow:0 1px 2px #1a15330f, 0 8px 24px #1a153314;--font:ui-rounded, "SF Pro Rounded", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:17px;line-height:1.45}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4em;line-height:1.15}a{color:var(--primary)}:focus-visible{outline-offset:2px;border-radius:8px;outline:3px solid #ff7ad9}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center}.row{align-items:center;display:flex}.gap{gap:12px}.gap-s{gap:8px}.wrap-row{flex-wrap:wrap}.page{min-height:100dvh;padding-bottom:96px}.wrap{max-width:980px;margin:0 auto;padding:16px}.narrow{max-width:520px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:24px 0 10px;font-size:.82rem}.empty{color:var(--muted)}.error{color:var(--danger);min-height:1.3em;margin:4px 0;font-weight:700}.btn{border:2px solid var(--line);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;text-decoration:none;transition:transform 80ms,background .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-sm{border-radius:12px;min-height:40px;padding:0 14px;font-size:.92rem}.btn-lg{min-height:56px;padding:0 22px;font-size:1.05rem}.btn-xl{border-radius:18px;min-height:68px;padding:0 26px;font-size:1.3rem}.btn-block{width:100%}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);box-shadow:0 6px 18px #5b2bff4d}.btn-primary:hover{background:#4b1fe6}.btn-go{background:var(--go);border-color:var(--go);color:#fff}.btn-gold{background:var(--gold);border-color:var(--gold);color:#1a1533}.btn-dark{color:#fff;background:#ffffff1a;border-color:#ffffff40}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-danger{color:var(--danger);border-color:#f3c7c3}.linklike{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px;text-decoration:underline}.chip{color:var(--muted);white-space:nowrap;background:#efecf7;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:800;display:inline-flex}.chip-live{background:var(--go-soft);color:#05603c}.chip-hot{color:#9a3412;background:#ffedd5}.chip-done{background:var(--primary-soft);color:#3d18c2}.dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.4s infinite pulse}@keyframes pulse{50%{opacity:.3}}.topbar{z-index:10;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f5f2ffe6;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1.1rem;overflow:hidden}.topbar-back{border:2px solid var(--line);width:44px;height:44px;color:var(--ink);background:#fff;border-radius:12px;place-items:center;font-size:1.8rem;line-height:1;text-decoration:none;display:grid}.topbar-right{margin-left:auto}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:8px;font-size:1.2rem;font-weight:900;text-decoration:none;display:inline-flex}.brand-sm{font-size:.95rem}.brand-light{color:#fff}.hero{padding:18px 4px 6px}.hero h1{background:linear-gradient(90deg,#1a1533,#5b2bff);color:#0000;-webkit-background-clip:text;background-clip:text;max-width:18ch;font-size:clamp(1.7rem,6vw,2.6rem)}.hero p{max-width:52ch;margin:0 0 16px}.show-list,.raffle-list,.my-raffles ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.show-card{flex-direction:column;gap:12px;display:flex}.show-card-main{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.show-card-name{font-size:1.1rem}.show-card-art{display:flex}.show-card-art .art+.art{margin-left:-18px}.show-card-actions{justify-content:flex-end;gap:8px;display:flex}@media (min-width:720px){.show-list{grid-template-columns:1fr 1fr}.show-card{flex-direction:row;justify-content:space-between;align-items:center}}.art{object-fit:cover;background:#2a1f5c;border-radius:12px;flex:none;display:block;overflow:hidden;box-shadow:0 0 0 2px #fff}.art svg{width:100%;height:100%;display:block}.art-xs{border-radius:10px;width:40px;height:40px}.art-sm{width:56px;height:56px}.art-md{width:84px;height:84px}.art-lg{border-radius:18px;width:clamp(72px,14vw,140px);height:clamp(72px,14vw,140px)}.form{gap:14px;display:grid}.field{gap:6px;font-weight:700;display:grid}.field em{font-style:normal;font-weight:500}input[type=text],input:not([type]),input[type=date],input[type=time]{font:inherit;border:2px solid var(--line);min-height:52px;color:var(--ink);background:#fff;border-radius:14px;width:100%;padding:0 14px;font-weight:600}input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);outline:none}.input-lg{min-height:64px!important;font-size:1.35rem!important}.show-head{gap:14px;display:grid}.stat-line{margin:4px 0 0;font-size:1.05rem}.action-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.action-grid .btn-primary{grid-column:1/-1}@media (min-width:720px){.show-head{grid-template-columns:1fr auto;align-items:end}.action-grid{grid-template-columns:auto auto auto}.action-grid .btn-primary{grid-column:auto}}.raffle-card{border-left:6px solid var(--line);align-items:flex-start;gap:14px;display:flex}.raffle-card.status-checkin{border-left-color:var(--go)}.raffle-card.status-drawing{border-left-color:var(--hot)}.raffle-card.status-closed{border-left-color:var(--primary);opacity:.85}.raffle-body{flex:1;gap:8px;min-width:0;display:grid}.raffle-title{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:1.08rem;display:flex}.meter{background:#efecf7;border-radius:99px;height:8px;overflow:hidden}.meter-bar{background:linear-gradient(90deg,#08794c,#34d399);height:100%;transition:width .4s}.raffle-form{margin-top:16px}.raffle-form h3{margin:0}@media (min-width:720px){.raffle-list{grid-template-columns:1fr 1fr}}.attendee{background:radial-gradient(1200px 500px at 50% -200px, #e3d9ff, transparent), var(--bg)}.att-head{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:10px;display:flex}.att-show{color:var(--muted);text-align:right;font-size:.9rem;font-weight:700}.entry-title{margin:4px 0 14px;font-size:1.9rem}.pick{border:0;gap:10px;margin:0 0 14px;padding:0;display:grid}.pick legend,.legend{margin-bottom:8px;font-size:1.05rem;font-weight:800}.pick-card{border:3px solid var(--line);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:12px;min-height:76px;padding:12px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.pick-card input{opacity:0;pointer-events:none;position:absolute}.pick-card.is-on{border-color:var(--primary);box-shadow:0 6px 18px #5b2bff2e}.pick-card:has(input:focus-visible){outline-offset:2px;outline:3px solid #ff7ad9}.pick-text{flex:1;display:grid}.pick-check{border:3px solid var(--line);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.is-on .pick-check{background:var(--primary);border-color:var(--primary)}.ticket-view{gap:16px;display:grid}.ticket{color:#fff;text-align:center;background:radial-gradient(circle at 20% 0,#ffffff40,#0000 40%),linear-gradient(160deg,#5b2bff,#2a1170);border-radius:26px;padding:20px 20px 26px;animation:.45s cubic-bezier(.2,1.4,.4,1) pop;position:relative;overflow:hidden;box-shadow:0 18px 40px #3b19aa59}.ticket:before{content:"";border-radius:inherit;background:var(--holo);-webkit-mask-composite:xor;pointer-events:none;padding:4px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.ticket-top>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ticket-top{text-transform:uppercase;letter-spacing:.08em;opacity:.85;justify-content:space-between;gap:8px;font-size:.75rem;font-weight:800;display:flex}.ticket-label{opacity:.9;margin-top:14px;font-weight:700}.ticket-number{letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:var(--holo);color:#0000;filter:drop-shadow(0 4px #00000040);-webkit-background-clip:text;background-clip:text;font-size:clamp(6.5rem,38vw,12rem);font-weight:900;line-height:.95}.ticket-number .hash{vertical-align:.6em;margin-right:2px;font-size:.45em}.ticket-name{font-size:1.8rem;font-weight:900}.ticket.is-winner{background:linear-gradient(160deg,#ffb703,#fb5607)}.ticket.is-winner .ticket-number{color:#1a1533;filter:drop-shadow(0 4px #ffffff73);background:0 0}.ticket.is-winner .ticket-name,.ticket.is-winner .ticket-top,.ticket.is-winner .ticket-label{color:#1a1533}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.checkin-cta{gap:8px;display:grid}.im-here{border-radius:24px;min-height:96px;font-size:2rem;animation:1.6s ease-in-out infinite breathe;box-shadow:0 10px 30px #08794c66}@keyframes breathe{50%{transform:scale(1.025);box-shadow:0 14px 36px #08794c8c}}.my-raffle{box-shadow:var(--shadow);border-left:6px solid var(--line);background:#fff;border-radius:16px;align-items:center;gap:12px;padding:12px;display:flex}.my-raffle-status{margin-top:2px;font-weight:800}.kind-open{border-left-color:var(--go)}.kind-open .my-raffle-status{color:var(--go)}.kind-in{border-left-color:var(--go);background:var(--go-soft)}.kind-in .my-raffle-status{color:#05603c}.kind-won{background:#fff3e0;border-left-color:#fb5607}.kind-won .my-raffle-status{color:#9a3412}.kind-done .my-raffle-status,.kind-wait .my-raffle-status{color:var(--muted)}.hint{background:var(--primary-soft);color:#3d18c2;border-radius:14px;margin:12px 0 0;padding:12px 14px;font-weight:600}.more{gap:8px;display:grid}.more .section-title{margin-bottom:2px}.more-btn{justify-content:flex-start}.win-banner{color:#1a1533;text-align:center;background:linear-gradient(120deg,#ffb703,#fb5607);border-radius:22px;padding:16px;font-weight:800;animation:.4s pop}.win-big{letter-spacing:-.02em;font-size:2.6rem;font-weight:900}.stage{color:#fff;background:radial-gradient(1000px 600px at 50% 0,#3b1fa8,#120c2e 70%);flex-direction:column;gap:16px;min-height:100dvh;padding:16px 16px 96px;display:flex}.stage-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-prize{text-align:left;justify-content:center;align-items:center;gap:16px;display:flex}.stage-kicker{text-transform:uppercase;letter-spacing:.14em;color:#c9b8ff;font-size:.8rem;font-weight:800}.stage-prize-name{margin:0;font-size:clamp(1.6rem,5vw,3.2rem)}.stage-center{text-align:center;flex:1;place-items:center;display:grid}.stage-label{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-size:clamp(1rem,3vw,1.6rem);font-weight:900}.stage-number{letter-spacing:-.05em;font-variant-numeric:tabular-nums;background:var(--holo);color:#0000;filter:drop-shadow(0 6px #00000059);-webkit-background-clip:text;background-clip:text;font-size:clamp(6rem,min(30vw,34vh),22rem);font-weight:900;line-height:.9}.stage-winner .stage-number{animation:.5s cubic-bezier(.2,1.4,.4,1) pop}.rolling-num{opacity:.9;filter:blur(.5px)}.stage-name{font-size:clamp(2.4rem,min(9vw,10vh),6rem);font-weight:900}.stage-sub{color:#ddd3ff;margin:12px 0 0;font-size:clamp(1.05rem,2.6vw,1.5rem)}.stage-counts{align-items:center;gap:clamp(20px,6vw,60px);display:flex}.stage-counts div{display:grid}.stage-counts b{font-variant-numeric:tabular-nums;font-size:clamp(4rem,min(16vw,22vh),10rem);line-height:1}.stage-counts div:first-child b{color:#5ef0a8}.stage-counts span{text-transform:uppercase;letter-spacing:.1em;color:#c9b8ff;font-weight:800}.stage-counts .divider{background:#fff3;align-self:stretch;width:2px}.stage-passed{text-align:center;color:#ffb4a8;margin:0;font-weight:700}.stage-err{text-align:center;color:#ffd0c9;min-height:1.2em;margin:0;font-weight:800}.stage-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.stage-actions .btn-xl{min-width:min(320px,100%)}.stage-closed .stage-number{background:linear-gradient(120deg,#ffd23f,#ffb703);-webkit-background-clip:text;background-clip:text}.qr-page{background:var(--holo);min-height:100dvh;padding:12px}.qr-toolbar{justify-content:space-between;gap:8px;max-width:560px;margin:0 auto 12px;display:flex}.qr-sheet{text-align:center;max-width:560px;box-shadow:var(--shadow);background:#fff;border-radius:28px;margin:0 auto;padding:24px 20px}.qr-brand{align-items:center;gap:8px;font-size:1.1rem;font-weight:900;display:inline-flex}.qr-headline{letter-spacing:-.03em;margin:8px 0 0;font-size:clamp(2.6rem,12vw,4rem)}.qr-sub{color:var(--muted);margin:4px 0 16px;font-size:1.1rem;font-weight:700}.qr-frame{background:var(--holo);border-radius:24px;padding:14px;display:inline-block}.qr-code{aspect-ratio:1;background:#fff;border-radius:14px;width:min(76vw,360px);padding:10px}.qr-code svg{width:100%;height:100%;display:block}.qr-raffles{text-align:left;gap:6px;margin:18px 0 10px;padding:0;list-style:none;display:grid}.qr-raffles li{background:var(--bg);border-radius:12px;justify-content:space-between;gap:12px;padding:10px 14px;font-weight:700;display:flex}.qr-rule{color:var(--ink);font-size:.98rem}.qr-show{margin:8px 0 0;font-weight:900}.qr-url{color:var(--muted);word-break:break-all;margin:6px 0 0;font-size:.72rem}.kpis{grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0;display:grid}.kpi{box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:14px;display:grid}.kpi b{font-size:2rem;line-height:1.1}.kpi span{color:var(--muted);font-size:.85rem;font-weight:700}.kpi-accent{background:var(--primary);color:#fff}.kpi-accent span{color:#e1d8ff}@media (min-width:720px){.kpis{grid-template-columns:repeat(4,1fr)}}.table-wrap{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin:16px 0;overflow-x:auto}.recap-table{border-collapse:collapse;width:100%}.recap-table th,.recap-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px;font-weight:500}.recap-table thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.78rem;font-weight:800}.recap-table tbody th{font-weight:700}.demobar{left:50%;bottom:max(14px, env(safe-area-inset-bottom));z-index:50;pointer-events:none;flex-direction:column-reverse;align-items:center;gap:8px;width:min(420px,100% - 24px);display:flex;position:fixed;transform:translate(-50%)}.demobar>*{pointer-events:auto}.demobar-pill{color:#fff;min-height:46px;font:inherit;cursor:pointer;background:#1a1533;border:0;border-radius:999px;align-items:center;gap:10px;padding:0 16px;font-weight:800;display:inline-flex;box-shadow:0 8px 24px #0000004d}.demobar-tag{background:var(--gold);color:#1a1533;letter-spacing:.08em;border-radius:6px;padding:1px 6px;font-size:.72rem}.demobar-ff{color:#7ae7ff;font-size:.85rem}.demobar-panel{width:100%;color:var(--ink);background:#fff;border-radius:20px;gap:8px;padding:14px;display:grid;box-shadow:0 18px 50px #00000059}.demobar-panel .row .btn{flex:1;padding:0 8px}.demobar-note{color:var(--muted);margin:0;font-size:.82rem}.demobar.is-compact{align-items:flex-end;width:min(380px,100% - 24px);left:auto;right:12px;transform:none}.demobar.is-compact .demobar-pill{opacity:.92;min-height:38px;font-size:.85rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{[data-noprint],.demobar{display:none!important}body,.qr-page{background:#fff!important}.qr-sheet{box-shadow:none;max-width:none}.qr-frame{background:0 0;border:3px solid #1a1533}.page{padding:0}}
