html{min-height:calc(100% + env(safe-area-inset-top));height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;overflow:hidden;overscroll-behavior:none;background-color:#1b2a4a;background-repeat:no-repeat}body{margin:0;height:100%;overflow:visible;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{position:relative;width:100%;height:100%;opacity:0;transition:opacity .6s ease}body.ready #app{opacity:1}#loader{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;letter-spacing:.04em;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}#frame{position:absolute;overflow:hidden}#stage{position:relative;width:2160px;height:1620px;overflow:hidden}.abs{position:absolute;display:block}#stage img{pointer-events:none}#stage .logo-left{pointer-events:auto}.enter{animation:enter .6s ease both}@keyframes enter{0%{opacity:0}to{opacity:1}}.result-pop{animation:slam-in 1.1s both}.result-pop img{width:100%;height:100%}@keyframes slam-in{0%{opacity:0;transform:scale(2.6);animation-timing-function:cubic-bezier(.55,0,.9,.4)}45%{opacity:1;transform:scale(.9);animation-timing-function:ease-out}70%{transform:scale(1.05);animation-timing-function:ease-in-out}to{opacity:1;transform:scale(1)}}.result-pop .shine{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;-webkit-mask-image:var(--mask);mask-image:var(--mask);-webkit-mask-size:100% 100%;mask-size:100% 100%}.result-pop .shine-bar{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,#fff0 38%,#fffadcd9,#fff0 62%);transform:translate(-110%);animation:shine 3.4s ease-in-out 1s infinite}@keyframes shine{0%{transform:translate(-110%)}35%,to{transform:translate(110%)}}.gift-fx{pointer-events:none}.gift-fx .rays-in{position:absolute;top:0;right:0;bottom:0;left:0;animation:rays-in .9s ease-out .3s both}.gift-fx .rays{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffeeaabf,#ffeeaabf 6deg,#fea0 6deg,#fea0 20deg);-webkit-mask-image:radial-gradient(circle,#000 12%,transparent 66%);mask-image:radial-gradient(circle,#000 12%,transparent 66%);animation:spin 18s linear infinite}.gift-fx .glow{position:absolute;top:22%;right:22%;bottom:22%;left:22%;border-radius:50%;background:radial-gradient(circle,#fff6d7d9,#ffd67866 40%,#ffc85a00 70%);animation:glow-in .7s ease-out .3s both,pulse 2.4s ease-in-out 1s infinite}.gift-fx .spark{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:radial-gradient(circle,#fffff5,#ffe8a0bf,#ffd26e40 50%,#ffd26e00 70%);opacity:0;animation:spark 2.6s ease-out infinite}@keyframes rays-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes glow-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes spark{0%{opacity:1;transform:translate(0) scale(.3)}70%{opacity:.9}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.1)}}.gift-pop{transform-origin:50% 65%;animation:gift-pop 1s cubic-bezier(.2,.9,.3,1) .45s both}@keyframes gift-pop{0%{opacity:0;transform:translateY(160px) scale(.15)}55%{opacity:1;transform:translateY(-40px) scale(1.15)}78%{transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.gift-float{animation:gift-float 3s ease-in-out 1.5s infinite}@keyframes gift-float{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 36% 58%,#fff8e1f2,#ffe6aa66 35%,#ffe6aa00 70%);animation:flash .8s ease-out both}@keyframes flash{0%{opacity:0}15%{opacity:1}to{opacity:0}}.lantern{animation:sway var(--dur, 6s) ease-in-out var(--delay, 0s) infinite;transform-origin:50% 35%}.lantern img{display:block}@keyframes sway{0%,to{transform:translateY(0) rotate(calc(var(--amp) * -1))}50%{transform:translateY(-18px) rotate(var(--amp))}}.item{position:absolute;left:0;top:0;width:467px;height:620px;transform-origin:0 0;transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .4s ease}.item .bob{position:absolute;top:0;right:0;bottom:0;left:0;animation:bob 3.2s ease-in-out infinite}.item img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:opacity .5s ease}.item .big{opacity:0}.item.selected .big{opacity:1}.item.selected .small{opacity:0}.item.selected .bob{animation:none}.item.hidden{opacity:0;transition:none}#stage[data-screen=s2] .item{cursor:pointer}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-24px)}}.scratch{touch-action:none;pointer-events:auto}.scratch.reveal{opacity:0;pointer-events:none;transition:opacity .7s ease}.ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0a0e1eb8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);touch-action:manipulation;color:#1d2233}.pin-box{width:320px;padding:24px;border-radius:20px;background:#fff;box-shadow:0 20px 60px #0006;text-align:center}.pin-box.shake{animation:shake .35s}@keyframes shake{20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.pin-title{font-size:18px;font-weight:600}.pin-dots{display:flex;justify-content:center;gap:14px;margin:18px 0 20px}.pin-dots span{width:16px;height:16px;border-radius:50%;border:2px solid #b33a2a}.pin-dots span.on{background:#b33a2a}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pin-key{height:60px;border:0;border-radius:14px;background:#f1eee8;font-size:24px;font-weight:600;color:#1d2233}.pin-key.fn{font-size:16px;background:#e6e2da}.pin-key:active{background:#dcd6cb}.admin{width:min(920px,calc(100% - 40px));max-height:calc(100% - 40px);overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:24px 28px;border-radius:20px;background:#fff;box-shadow:0 20px 60px #0006;position:relative}.admin input{user-select:text;-webkit-user-select:text}.admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-head h2{margin:0;font-size:22px}.admin-table{width:100%;border-collapse:collapse;font-size:17px}.admin-table th{text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7084;padding:8px 10px;border-bottom:2px solid #eee}.admin-table td{padding:8px 10px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.admin-table .thumb{width:54px;height:72px;object-fit:contain;display:block;background:#f6f1e7;border-radius:8px}.admin-table .sub{color:#6b7084;font-size:14px}.admin-table .num{font-variant-numeric:tabular-nums;font-weight:600;font-size:20px}.admin-table .muted{color:#8a8fa0;font-size:14px}.qty,.pin-input{width:130px;height:44px;padding:0 12px;border:1.5px solid #d6d3cc;border-radius:10px;font-size:18px;box-sizing:border-box}.pin-input{width:220px}.qty:focus,.pin-input:focus{outline:none;border-color:#b33a2a}.admin-summary{margin:14px 0 6px;color:#3b4055;font-size:16px}.admin-pin{display:flex;align-items:center;gap:12px;margin:10px 0 18px;font-size:16px}.admin-actions{display:flex;justify-content:flex-end;gap:12px}.btn{height:48px;padding:0 22px;border-radius:12px;border:0;font-size:17px;font-weight:600;color:#fff}.btn.primary{background:#b33a2a}.btn.danger{background:#4b5068}.btn.danger.armed{background:#d1342b}.btn.ghost{background:#eee;color:#1d2233}.btn:active{filter:brightness(.9)}.admin-toast{position:sticky;bottom:0;margin-top:12px;padding:10px 14px;border-radius:10px;background:#2e7d4f;color:#fff;font-size:16px;text-align:center;opacity:0;transition:opacity .25s;pointer-events:none}.admin-toast.bad{background:#c0392b}.admin-toast.show{opacity:1}
