@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@800;900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@800&display=swap");:root{color-scheme:dark;--bg:#170202;--card:#200b0b;--border:#371f1f;--text:#ebe5e5;--muted:#b89494;--primary:#b50505;--primary-600:#e32222;--danger:#ef4444;--ring:#c5222233}*{box-sizing:border-box}body,html{height:100%;margin:0}body{color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;min-height:100svh;position:relative;isolation:isolate;overflow-x:hidden;background:#060000}body:before{z-index:-2;filter:blur(18px) saturate(1.12) brightness(.9);transform:scale(1.08);opacity:.85}body:after,body:before{content:"";position:fixed;inset:0;background-image:url(/bg.webp);background-repeat:no-repeat;background-position:top;background-size:cover}body:after{z-index:-1}@media (min-width:900px) and (min-aspect-ratio:4/3){body:after{background-size:contain}}a{color:inherit;text-decoration:none}.container{min-height:100%;display:grid;place-items:center;padding:26px 14px 34px}.app{width:min(980px,100%);place-items:center;grid-gap:14px;gap:14px}.app,.hero{display:grid}.hero{width:100%;place-items:center;grid-gap:10px;gap:10px;margin-top:2px}.brandLogoDock{display:grid;place-items:center;padding:0;border-radius:0;background:transparent;border:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;margin-bottom:2px}.brandLogoImg{height:44px;width:auto;max-width:min(320px,84vw);object-fit:contain;display:block;filter:drop-shadow(0 12px 20px rgba(0,0,0,.65)) drop-shadow(0 0 14px rgba(255,200,90,.18))}@media (max-width:520px){.brandLogoImg{height:38px}}.wheel-banner{position:relative;padding:12px 28px;border-radius:999px;background:#000;box-shadow:0 12px 26px rgba(0,0,0,.6),0 0 0 2px hsla(0,0%,100%,.08),inset 0 0 40px rgba(255,200,60,.08)}.wheel-title{margin:0;display:grid;grid-gap:2px;gap:2px;place-items:center;text-align:center;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-weight:900;letter-spacing:1.4px;font-size:clamp(24px,4.2vw,42px);color:#f2cc5a;-webkit-text-stroke:1.8px rgba(0,0,0,.85);text-shadow:0 2px 0 rgba(0,0,0,.95),0 6px 14px rgba(0,0,0,.85),0 -1px 0 hsla(0,0%,100%,.18)}.wheel-title .line2{font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-weight:800;font-size:clamp(13px,2vw,18px);letter-spacing:3px;color:#f6d77a;-webkit-text-stroke:0;text-shadow:0 2px 12px rgba(0,0,0,.65)}.stage{max-width:840px;height:min(78svh,720px);border-radius:18px;border:none;background:transparent;box-shadow:none;overflow:visible;place-items:center;padding:0}.stage,.treeFrame{width:100%;position:relative;display:grid}.treeFrame{max-width:640px;height:min(640px,70svh);place-items:center;filter:drop-shadow(0 26px 44px rgba(0,0,0,.52))}.treePhotoWrap{position:relative;width:100%;height:100%;cursor:pointer;outline:none}.treePhotoWrap:focus-visible{box-shadow:0 0 0 4px var(--ring);border-radius:14px}.treePhotoWrap.disabled{cursor:default;opacity:.95}.treeImg,.treeVideo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.treeImg{opacity:1}.treeImg,.treeVideo{transition:opacity .14s ease}.treePhotoWrap.animOn .treeImg,.treeVideo{opacity:0}.treePhotoWrap.animOn .treeVideo{opacity:1}.panel{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:min(330px,86vw);background:rgba(32,11,11,.92);border:1px solid hsla(0,0%,100%,.1);border-radius:14px;padding:12px;box-shadow:0 18px 46px rgba(0,0,0,.55);display:grid;grid-gap:10px;gap:10px;z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.input{width:100%;height:44px;border-radius:12px;border:1px solid hsla(0,0%,100%,.14);background:rgba(0,0,0,.35);color:var(--text);padding:0 12px;outline:none;font-size:14px}.input:focus{border-color:rgba(255,220,120,.28);box-shadow:0 0 0 4px var(--ring)}.btn{height:44px;border-radius:12px;border:1px solid hsla(0,0%,100%,.16);background:hsla(0,0%,100%,.06);color:hsla(0,0%,100%,.92);font-weight:800;letter-spacing:.2px;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{border-color:hsla(0,0%,100%,.14);background:linear-gradient(180deg,rgba(229,34,34,.95),rgba(181,5,5,.95));box-shadow:0 10px 22px rgba(0,0,0,.35)}.alert{border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.25;border:1px solid hsla(0,0%,100%,.14);background:rgba(0,0,0,.22)}.alert-error{border-color:rgba(239,68,68,.28);color:hsla(0,100%,93%,.95)}.miniToast{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:8;width:min(520px,92vw);text-align:center;padding:10px 12px;border-radius:14px;border:1px solid hsla(0,0%,100%,.12);background:rgba(0,0,0,.26);color:rgba(248,250,252,.92);font-size:13px}.miniToast.success{border-color:rgba(245,158,11,.28)}.angpao{position:absolute;left:50%;top:120px;transform:translateX(-50%);width:120px;height:160px;cursor:pointer;z-index:60;border-radius:18px;filter:drop-shadow(0 18px 36px rgba(0,0,0,.45)) drop-shadow(0 0 18px rgba(245,158,11,.14));transition:transform .18s ease,filter .18s ease;isolation:isolate;will-change:transform,filter}.angpao:before{content:"";position:absolute;inset:-18px -16px -14px -16px;border-radius:30px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 60%,rgba(255,220,120,.7),rgba(255,150,0,.22) 45%,rgba(255,0,0,0) 72%);filter:blur(6px);opacity:0}.angpaoReady{filter:drop-shadow(0 24px 52px rgba(0,0,0,.62)) drop-shadow(0 0 32px rgba(255,214,102,.4)) drop-shadow(0 0 14px rgba(255,255,255,.16))}.angpaoReady:before{opacity:.7;animation:angpaoGlow 1.25s ease-in-out infinite}.angpaoReady .angpaoImg{transform-origin:50% 88%;animation:angpaoPulse 1.25s ease-in-out infinite}@keyframes angpaoPulse{0%,to{transform:scale(1) rotate(0deg)}50%{transform:scale(1.06) rotate(-1deg)}}@keyframes angpaoGlow{0%,to{transform:scale(.98);opacity:.58}50%{transform:scale(1.08);opacity:.92}}.angpao:hover{transform:translateX(-50%) scale(1.03);filter:drop-shadow(0 22px 44px rgba(0,0,0,.55)) drop-shadow(0 0 24px rgba(245,158,11,.22))}.angpaoImg{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.angpaoDrop{opacity:1;animation:dropTop 1.05s cubic-bezier(.2,.85,.2,1) forwards}.angpaoOpen{animation:openPop .32s ease-out both}@keyframes dropTop{0%{top:110px;transform:translateX(-50%) rotate(-5deg)}78%{top:calc(100% - 235px);transform:translateX(-50%) rotate(2deg)}88%{top:calc(100% - 249px);transform:translateX(-50%) rotate(1deg)}to{top:calc(100% - 241px);transform:translateX(-50%) rotate(0deg)}}@keyframes openPop{0%{transform:translateX(-50%) scale(1);filter:drop-shadow(0 18px 36px rgba(0,0,0,.45)) drop-shadow(0 0 18px rgba(245,158,11,.14))}55%{transform:translateX(-50%) scale(1.08);filter:drop-shadow(0 24px 54px rgba(0,0,0,.6)) drop-shadow(0 0 34px rgba(245,158,11,.3))}to{transform:translateX(-50%) scale(1);filter:drop-shadow(0 18px 36px rgba(0,0,0,.45)) drop-shadow(0 0 24px rgba(245,158,11,.22))}}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:18px;z-index:60}.modal-card{position:relative;width:min(420px,88vw);background:rgba(32,11,11,.98);color:#f7bbbb;border:1px solid hsla(0,0%,100%,.12);border-radius:18px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.6);display:grid;grid-gap:10px;gap:10px;overflow:hidden}.modal-card.openfx:before{content:"";position:absolute;inset:-40px;background:radial-gradient(circle at 50% 40%,rgba(255,220,120,.22),rgba(255,0,0,.08) 40%,transparent 70%);animation:burst .55s ease-out both;pointer-events:none}@keyframes burst{0%{transform:scale(.82);opacity:0}35%{opacity:1}to{transform:scale(1.08);opacity:0}}.modal-title{font-weight:900;letter-spacing:.2px;color:#ffd58a;font-size:20px}.modal-sub{color:hsla(0,0%,100%,.82);font-size:13px}.prize{font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-weight:900;font-size:30px;color:#ffe6b7;text-shadow:0 8px 18px rgba(0,0,0,.55)}.modal-actions{display:flex;gap:10px;margin-top:6px}.modal-actions .btn{flex:1 1;text-align:center;display:inline-flex;align-items:center;justify-content:center}@media (max-width:520px){.container{padding:18px 12px 22px}}