:root{--violet-900: #2e1065;--violet-700: #6d28d9;--fuchsia-600: #c026d3;--rose-500: #f43f5e;--gold: #fde68a;--ink: #1e1033;--glass: rgba(30, 16, 51, .82);--glass-border: rgba(255, 255, 255, .18);--text-soft: rgba(255, 255, 255, .78)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--violet-900);color:#fff;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif}#ar-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}#ar-container video{width:100%;height:100%;object-fit:cover}button{font:inherit;border:0;cursor:pointer}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));overflow-y:auto;background:radial-gradient(120% 70% at 85% 105%,rgba(244,63,94,.55) 0,transparent 60%),radial-gradient(90% 60% at 10% -5%,rgba(124,58,237,.8) 0,transparent 60%),linear-gradient(160deg,#3b0764,#701a75 55%,#9d174d);transition:opacity .45s ease,visibility .45s}.intro.hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-card{position:relative;width:min(100%,400px);padding:36px 28px 28px;text-align:center;border-radius:28px;background:#ffffff14;border:1px solid var(--glass-border);box-shadow:0 30px 80px #14002873,inset 0 1px #ffffff26;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.gift{width:76px;height:76px;margin:-74px auto 14px;display:grid;place-items:center;border-radius:24px;color:var(--violet-900);background:linear-gradient(145deg,#fff7d6,var(--gold));box-shadow:0 14px 34px #fde68a59;animation:wiggle 3.2s ease-in-out infinite}.gift svg{width:42px;height:42px}.eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}h1{margin:6px 0 12px;font-family:Dancing Script,cursive;font-weight:700;font-size:clamp(52px,15vw,68px);line-height:1.05;padding-bottom:.12em;background:linear-gradient(180deg,#fff 30%,#fbcfe8);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 8px 30px rgba(244,114,182,.25)}.lead{margin:0 auto 22px;max-width:320px;font-size:15px;line-height:1.6;color:var(--text-soft)}.steps{list-style:none;margin:0 0 24px;padding:14px 16px;display:grid;gap:12px;text-align:left;border-radius:18px;background:#0000002e;font-size:14px;color:#ffffffe6}.steps li{display:flex;align-items:center;gap:12px}.steps span{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-size:13px;font-weight:700;background:#ffffff24;color:var(--gold)}.primary{position:relative;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:17px 24px;border-radius:999px;font-size:17px;font-weight:700;color:var(--violet-900);background:linear-gradient(135deg,#fff,#fde68a);box-shadow:0 12px 30px #fde68a59,0 0 #fde68a99;animation:pulse 2.4s ease-out infinite;transition:transform .15s ease}.primary:active{transform:scale(.97)}.primary:disabled{cursor:wait;animation:none;opacity:.9}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(46,16,101,.25);border-top-color:var(--violet-900);animation:spin .8s linear infinite}.hint{min-height:1em;margin:14px 0 0;font-size:13px;line-height:1.5;color:#fecdd3}.hint:empty{display:none}.sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.sparkles i{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;opacity:0;box-shadow:0 0 10px 2px #ffffffb3;animation:twinkle 4s ease-in-out infinite}.sparkles i:nth-child(3n){background:var(--gold);box-shadow:0 0 12px 2px #fde68acc}.sparkles i:nth-child(1){top:8%;left:12%;animation-delay:0s}.sparkles i:nth-child(2){top:15%;left:82%;animation-delay:.6s}.sparkles i:nth-child(3){top:28%;left:6%;animation-delay:1.2s}.sparkles i:nth-child(4){top:36%;left:92%;animation-delay:2.1s}.sparkles i:nth-child(5){top:52%;left:4%;animation-delay:.3s}.sparkles i:nth-child(6){top:64%;left:88%;animation-delay:1.6s}.sparkles i:nth-child(7){top:78%;left:14%;animation-delay:2.6s}.sparkles i:nth-child(8){top:88%;left:70%;animation-delay:.9s}.sparkles i:nth-child(9){top:6%;left:50%;animation-delay:3s}.sparkles i:nth-child(10){top:94%;left:36%;animation-delay:1.9s}.sparkles i:nth-child(11){top:44%;left:48%;animation-delay:3.4s;width:4px;height:4px}.sparkles i:nth-child(12){top:72%;left:56%;animation-delay:2.3s;width:4px;height:4px}.hud{position:fixed;z-index:4;top:max(14px,env(safe-area-inset-top));left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;animation:drop .4s ease both}.hud[hidden],.scan[hidden],.hud button[hidden]{display:none}.pill{min-width:0;display:inline-flex;align-items:center;gap:9px;padding:10px 16px 10px 13px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:13px;font-weight:500}#status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.error{background:#7f1d1db3}.pill.error .dot{background:#fca5a5;box-shadow:none;animation:none}.dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 #fde68ab3;animation:ping 1.6s ease-out infinite}.pill.found .dot{background:#4ade80;animation:none;box-shadow:0 0 10px #4ade80}.actions{display:flex;gap:8px;flex:none}.icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .15s ease,background .2s}.icon:active{transform:scale(.92)}.icon svg{width:20px;height:20px}.scan{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:radial-gradient(closest-side,transparent 60%,rgba(20,0,40,.45));animation:fade .35s ease both}.frame{position:relative;width:min(68vw,300px);aspect-ratio:1;overflow:hidden;border-radius:22px}.frame b{position:absolute;width:46px;height:46px;border:4px solid #fff;filter:drop-shadow(0 0 8px rgba(244,114,182,.8))}.frame b:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:22px}.frame b:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:22px}.frame b:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:22px}.frame b:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:22px}.beam{position:absolute;left:8%;right:8%;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,#f9a8d4,#fff,#f9a8d4,transparent);box-shadow:0 0 18px 4px #f472b68c;animation:scan 2.2s ease-in-out infinite}.scan p{margin:0;padding:12px 20px;text-align:center;border-radius:18px;background:#1e1033f0;border:1px solid var(--glass-border);box-shadow:0 10px 30px #0000004d;font-size:15px;font-weight:600;line-height:1.45}.scan small{font-size:12.5px;font-weight:400;color:var(--text-soft)}@keyframes rise{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}@keyframes drop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wiggle{0%,70%,to{transform:rotate(0)}75%{transform:rotate(-8deg)}85%{transform:rotate(7deg)}92%{transform:rotate(-3deg)}}@keyframes pulse{0%{box-shadow:0 12px 30px #fde68a59,0 0 #fde68a8c}70%,to{box-shadow:0 12px 30px #fde68a59,0 0 0 16px #fde68a00}}@keyframes ping{0%{box-shadow:0 0 #fde68ab3}80%,to{box-shadow:0 0 0 9px #fde68a00}}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)}50%{opacity:.9;transform:scale(1)}}@keyframes scan{0%{top:6%}50%{top:92%}to{top:6%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
