:root{--bg:#0b0b14;--card:hsla(0,0%,100%,.045);--border:hsla(0,0%,100%,.09);--text:#eef0ff;--muted:#9aa0b8;--accent:#7c5cff;--accent2:#22d3ee;--danger:#ff5470;--radius:18px;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:radial-gradient(120% 120% at 0 0,#171733 0,var(--bg) 45%,#05050b 100%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;min-height:100dvh;overflow-x:hidden}.bg-orbs{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:float 14s ease-in-out infinite}.o1{width:320px;height:320px;background:#7c5cff;top:-100px;left:-80px}.o2{width:280px;height:280px;background:#22d3ee;bottom:-120px;right:-60px;animation-delay:-4s}.o3{width:220px;height:220px;background:#ff5cae;top:45%;left:60%;animation-delay:-8s}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-30px) scale(1.08)}}.app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:28px 18px calc(40px + env(safe-area-inset-bottom))}.hero{text-align:center;margin-bottom:22px;animation:fadeUp .7s var(--ease) both}.title{font-size:clamp(22px,6vw,30px);font-weight:800;margin:0 0 8px;line-height:1.25}.grad{background:linear-gradient(90deg,#7c5cff,#22d3ee,#ff5cae);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:shine 6s linear infinite}@keyframes shine{to{background-position:200% 0}}.subtitle{margin:0;color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(0,0,0,.35);animation:fadeUp .7s var(--ease) both}.card+.card{margin-top:16px}.label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:8px;letter-spacing:.3px}.input-wrap{display:flex;gap:10px}input[type=url]{flex:1 1;min-width:0;background:hsla(0,0%,100%,.05);border:1px solid var(--border);color:var(--text);border-radius:14px;padding:14px 16px;font-size:15px;outline:none;transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s}input[type=url]:focus{border-color:rgba(124,92,255,.7);box-shadow:0 0 0 4px rgba(124,92,255,.15);background:hsla(0,0%,100%,.07)}.btn{border:0;cursor:pointer;border-radius:14px;font-weight:600;font-size:15px;padding:14px 18px;color:#fff;transition:transform .18s var(--ease),box-shadow .25s var(--ease),opacity .2s;will-change:transform}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(135deg,#7c5cff,#22d3ee);box-shadow:0 8px 24px rgba(124,92,255,.35);white-space:nowrap}.btn.download{width:100%;margin-top:16px;background:linear-gradient(135deg,#22d3ee,#7c5cff);box-shadow:0 10px 30px rgba(34,211,238,.3);font-size:16px;padding:16px}.btn.download:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.status{margin:10px 2px 0;font-size:13px;min-height:18px;color:var(--muted);transition:color .25s}.status.err{color:var(--danger)}.status.ok{color:#34e3a1}.panel.hidden{display:none}.panel:not(.hidden){animation:reveal .55s var(--ease) both}@keyframes reveal{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.card-title{font-size:15px;margin:0 0 14px;color:var(--text);font-weight:700}.preview{display:flex;gap:14px;align-items:flex-start;animation:reveal .55s var(--ease) both}.preview .thumb{width:128px;aspect-ratio:16/9;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#000}.preview .thumb img{width:100%;height:100%;object-fit:cover;display:block}.preview .meta{flex:1 1;min-width:0}.preview .meta h3{margin:0 0 6px;font-size:14px;line-height:1.35;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.preview .meta .dur{font-size:12.5px;color:var(--muted)}.tabs{display:flex;gap:8px;background:hsla(0,0%,100%,.04);padding:5px;border-radius:14px;margin-bottom:14px}.tab{flex:1 1;border:0;background:transparent;color:var(--muted);padding:11px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s var(--ease)}.tab.active{background:linear-gradient(135deg,rgba(124,92,255,.35),rgba(34,211,238,.25));color:#fff;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.08)}.quality-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:10px;gap:10px}.q-item{background:hsla(0,0%,100%,.04);border:1px solid var(--border);border-radius:12px;padding:12px 10px;text-align:center;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--text);transition:transform .2s var(--ease),border-color .2s,background .25s,box-shadow .25s;animation:pop .4s var(--ease) both}@keyframes pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.q-item:hover{border-color:rgba(124,92,255,.5);transform:translateY(-2px)}.q-item.active{background:linear-gradient(135deg,rgba(124,92,255,.45),rgba(34,211,238,.35));border-color:rgba(124,92,255,.8);box-shadow:0 6px 20px rgba(124,92,255,.35)}.footer{text-align:center;margin-top:26px;color:var(--muted);font-size:12px}.footer p{margin:0}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,120%);background:rgba(20,20,35,.95);border:1px solid var(--border);color:#fff;padding:12px 18px;border-radius:12px;font-size:13.5px;z-index:99;transition:transform .45s var(--ease),opacity .3s;opacity:0;pointer-events:none;max-width:88vw;text-align:center}.toast.show{transform:translate(-50%);opacity:1}.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading:after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;border-radius:50%;border:2.5px solid hsla(0,0%,100%,.35);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}