:root{--bg:#0b0614;--ink:#f3e8ff;--mut:#b9a6d9;--neon:#c084fc;--cy:#22d3ee;--pk:#f472b6}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Rounded","Segoe UI",Roboto,sans-serif;overflow:hidden;overscroll-behavior:none}
#app{position:fixed;inset:0;background:radial-gradient(120% 80% at 50% 35%,#2a1050 0%,#14082a 45%,#07030f 100%)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.top{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:0;right:0;text-align:center;pointer-events:none}
.top h1{margin:0;font-size:22px;letter-spacing:.18em;font-weight:800;color:#fff;text-shadow:0 0 12px var(--neon),0 0 28px #7c3aed}
.top p{margin:4px 0 0;font-size:12px;letter-spacing:.12em;color:var(--mut);text-transform:uppercase}
.bottom{position:absolute;left:0;right:0;bottom:0;padding:0 12px calc(env(safe-area-inset-bottom) + 12px);display:flex;flex-direction:column;gap:10px;background:linear-gradient(to top,rgba(7,3,15,.92) 55%,rgba(7,3,15,0))}
.modes{display:flex;gap:6px;background:rgba(30,12,60,.75);border:1px solid rgba(192,132,252,.35);border-radius:16px;padding:5px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modes button{flex:1;min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--mut);font:600 15px/1 inherit;font-family:inherit;cursor:pointer}
.modes button.on{background:linear-gradient(135deg,#7c3aed,#c026d3);color:#fff;box-shadow:0 0 14px rgba(192,38,211,.6)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;border-radius:19px;border:1px solid rgba(192,132,252,.3);background:rgba(25,10,48,.8);color:var(--ink);font:500 13px/1 inherit;font-family:inherit;white-space:nowrap;cursor:pointer}
.chip.on{border-color:#fff;box-shadow:0 0 10px rgba(255,255,255,.35)}
.dot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}
.card{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 128px);max-width:460px;margin:0 auto;padding:14px 44px 14px 16px;border-radius:18px;background:rgba(22,8,44,.92);border:1px solid rgba(192,132,252,.45);box-shadow:0 10px 40px rgba(0,0,0,.5),0 0 24px rgba(124,58,237,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.card[hidden]{display:none}
.card-head{display:flex;align-items:center;gap:9px}
.card h2{margin:0;font-size:17px}
.card p{margin:8px 0 0;font-size:14px;line-height:1.45;color:#e9dcff}
.card .size{font-size:12px;color:var(--mut)}
.x{position:absolute;top:6px;right:6px;width:40px;height:40px;border:0;background:transparent;color:var(--mut);font-size:26px;cursor:pointer}
.hint{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 122px);margin:0;text-align:center;font-size:12px;color:var(--mut);pointer-events:none;transition:opacity .6s}
#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;padding:4px 9px;border-radius:10px;font:600 11.5px/1.15 -apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:#fff;background:rgba(14,6,30,.82);border:1.5px solid currentColor;white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 0 10px rgba(0,0,0,.4)}
.lbl b{color:#fff;font-weight:700}
.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--mut);background:var(--bg);transition:opacity .4s}
.loading.done{opacity:0;pointer-events:none}
.spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(192,132,252,.25);border-top-color:var(--neon);animation:sp 0.9s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
body.shot .top,body.shot .bottom,body.shot .hint,body.shot .card{display:none!important}
body.shot .lbl{font-size:16px;padding:5px 11px}
@media (min-width:700px){.top h1{font-size:28px}.bottom{align-items:center}.modes,.chips{width:100%;max-width:560px}}
.caselink{position:absolute;top:calc(env(safe-area-inset-top) + 74px);right:12px;padding:9px 13px;min-height:40px;border-radius:14px;background:rgba(30,12,60,.75);border:1px solid rgba(192,132,252,.4);color:#f3e8ff;text-decoration:none;font-size:13px;font-weight:600}
body.shot .caselink{display:none}
