:root{--bg: #0b0b16;--bg2: #12122a;--bg3: #1a1a3e;--card: rgba(255,255,255,.04);--card-h: rgba(255,255,255,.07);--border: rgba(255,255,255,.07);--text: #eeeef5;--text2: #8484aa;--muted: #4e4e6e;--accent: #7c5cfc;--accent2: #a78bfa;--accent-h: #6a48e8;--glow: rgba(124,92,252,.35);--green: #34d399;--red: #f87171;--yellow: #fbbf24;--r: 14px;--r-sm: 10px;--r-lg: 22px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,sans-serif;color:var(--text);min-height:100vh;background:var(--bg);background-image:radial-gradient(ellipse 80% 60% at 20% 80%,rgba(124,92,252,.06) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 20%,rgba(52,211,153,.04) 0%,transparent 60%);-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100vh}.bg-alive{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-alive:before,.bg-alive:after{content:"";position:absolute;border-radius:50%;filter:blur(100px);opacity:.4;animation:float 20s ease-in-out infinite alternate}.bg-alive:before{width:500px;height:500px;background:#7c5cfc14;top:-100px;left:-100px}.bg-alive:after{width:400px;height:400px;background:#34d3990d;bottom:-80px;right:-80px;animation-delay:-10s}@keyframes float{0%{transform:translate(0) scale(1)}to{transform:translate(60px,40px) scale(1.15)}}.screen{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:28px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:all .25s ease}.card:hover{background:var(--card-h)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;border:none;border-radius:var(--r);font-family:Inter,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 60%);opacity:0;transition:opacity .25s}.btn:hover:after{opacity:1}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%);color:#fff;box-shadow:0 4px 24px var(--glow)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 32px var(--glow)}.btn-primary:active{transform:translateY(-1px)}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-secondary:hover{background:var(--card-h);transform:translateY(-2px)}.btn-danger{background:#f871711f;color:var(--red);border:1px solid rgba(248,113,113,.2)}.btn-danger:hover{background:#f8717138}.btn-success{background:linear-gradient(135deg,var(--green),#2dd4bf);color:#0b0b16}.btn-success:hover{filter:brightness(1.1);transform:translateY(-3px)}.btn-lg{padding:20px 52px;font-size:1.2rem;border-radius:var(--r-lg)}.btn-sm{padding:8px 16px;font-size:.85rem;border-radius:var(--r-sm)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important;box-shadow:none!important}.input{width:100%;padding:14px 18px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-family:Inter,sans-serif;font-size:1rem;outline:none;transition:all .25s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}.input::placeholder{color:var(--muted)}h1,h2,h3,h4{font-weight:700;line-height:1.25}.text-center{text-align:center}.text-muted{color:var(--text2)}.text-green{color:var(--green)}.text-red{color:var(--red)}.badge{display:inline-block;padding:6px 16px;border-radius:999px;font-size:.85rem;font-weight:600}.badge-accent{background:#7c5cfc1f;color:var(--accent2)}.badge-green{background:#34d3991f;color:var(--green)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes countPop{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flashAnim{0%{opacity:.9}to{opacity:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--glow)}50%{box-shadow:0 0 40px var(--glow),0 0 60px #7c5cfc26}}.animate-in{animation:fadeUp .5s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-glow{animation:glow 3s ease-in-out infinite}.cam-wrap{position:relative;width:100%;max-width:640px;border-radius:var(--r-lg);overflow:hidden;border:2px solid var(--border);box-shadow:0 8px 40px #0006}.cam-wrap video{width:100%;display:block}.cd-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;z-index:10}.cd-num{font-size:9rem;font-weight:800;color:#fff;animation:countPop .5s ease;text-shadow:0 0 60px var(--glow)}.flash{position:fixed;inset:0;background:#fff;z-index:100;pointer-events:none;animation:flashAnim .35s ease-out forwards}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:620px;width:100%}.photo-item{position:relative;aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;cursor:pointer;border:3px solid transparent;transition:all .3s cubic-bezier(.16,1,.3,1)}.photo-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-item:hover img{transform:scale(1.05)}.photo-item.selected{border-color:var(--accent);box-shadow:0 0 24px var(--glow)}.photo-item .num{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;box-shadow:0 2px 8px var(--glow)}.thumbs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.thumbs img{width:84px;height:64px;object-fit:cover;border-radius:var(--r-sm);border:2px solid var(--border);transition:all .3s}.thumbs img:last-child{border-color:var(--accent);animation:fadeUp .3s ease}.editor-layout{display:flex;gap:48px;align-items:flex-start;flex-wrap:wrap;justify-content:center;width:100%;max-width:900px}.frame-preview{max-width:260px;border-radius:var(--r);overflow:hidden;box-shadow:0 12px 48px #00000080;transition:all .4s}.frame-preview img{width:100%;display:block}.frame-preview.loading{opacity:.5}.frame-picker{display:flex;flex-direction:column;gap:12px}.frame-option{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--card);border:2px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .25s;min-width:240px}.frame-option:hover{background:var(--card-h);border-color:var(--text2)}.frame-option.active{border-color:var(--accent);box-shadow:0 0 20px var(--glow);background:#7c5cfc14}.frame-option .thumb{width:48px;height:64px;border-radius:6px;overflow:hidden;background:#f0f0f0;flex-shrink:0}.frame-option .thumb img{width:100%;height:100%;object-fit:cover}.frame-option .info{display:flex;flex-direction:column;gap:2px}.frame-option .info .name{font-weight:600;font-size:.95rem}.frame-option .info .desc{font-size:.8rem;color:var(--text2)}.pay-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:840px;width:100%}.qris-box{background:#fff;border-radius:var(--r-lg);padding:36px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 12px 48px #0003}.qris-placeholder{width:210px;height:210px;background:#f5f5f5;border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:#555;font-weight:600;font-size:.9rem;border:2px dashed #ccc;text-align:center;line-height:1.4}.qris-price{font-size:1.6rem;font-weight:800;color:#1a1a2e}.spinner{width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.pay-status{font-size:.95rem;color:var(--text2);display:flex;align-items:center;gap:10px}.progress{width:100%;height:8px;background:var(--bg2);border-radius:999px;overflow:hidden}.progress .bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px;transition:width .5s ease}.strip-mini{display:flex;flex-direction:column;gap:4px;padding:14px;background:#fff;border-radius:var(--r);max-width:200px;box-shadow:0 8px 32px #0006}.strip-mini img{width:100%;border-radius:4px}.strip-brand{text-align:center;color:#aaa;font-size:.65rem;font-weight:600;padding:4px 0}@media(max-width:768px){.pay-layout{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}.editor-layout{flex-direction:column;align-items:center}}
