.upload-page{--upload-ease:cubic-bezier(0.22, 1, 0.36, 1);--upload-radius:18px}.upload-page .lp-page-title{font-size:1.5rem;font-weight:700;color:#020617;display:inline-flex;align-items:center;flex-wrap:wrap;gap:.5rem;transition:transform .3s var(--upload-ease)}.upload-page .lp-page-title:hover{transform:scale(1.02)}.upload-page .lp-page-title .fa-image{font-size:1.3rem;color:var(--app-accent);transition:transform .35s var(--upload-ease)}.upload-page .lp-page-title:hover .fa-image{transform:scale(1.08)}.upload-page .lp-page-sub{margin-top:4px;font-size:.9rem;color:var(--app-text-muted);max-width:640px}.upload-page .upload-intro{opacity:0;animation:uploadIntroIn .55s var(--upload-ease) .1s forwards}@keyframes uploadIntroIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.upload-page .upload-drop{opacity:0;animation:uploadDropIn .6s var(--upload-ease) .2s forwards}@keyframes uploadDropIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.upload-page .upload-drop{border-radius:var(--upload-radius);border:2px dashed var(--app-border-soft);background:var(--app-bg-soft);padding:32px 24px;text-align:center;cursor:pointer;position:relative;overflow:hidden;transition:border-color .2s ease,background .2s ease,transform .25s var(--upload-ease),box-shadow .25s var(--upload-ease);box-shadow:0 10px 40px rgba(15,23,42,.06)}.upload-page .upload-drop:hover{border-color:rgba(99,102,241,.5);background:var(--app-accent-soft);transform:translateY(-3px);box-shadow:0 18px 48px rgba(99,102,241,.18)}.upload-page .upload-drop i{font-size:2.25rem;color:var(--app-accent);margin-bottom:10px;display:inline-block;transition:transform .25s var(--upload-ease)}.upload-page .upload-drop:hover i{animation:uploadIconBounce .5s var(--upload-ease)}@keyframes uploadIconBounce{0%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(2px)}80%{transform:translateY(-3px)}100%{transform:translateY(0)}}.upload-page .upload-drop-title{font-weight:600;font-size:1rem;color:var(--app-text-main);margin-bottom:6px;transition:color .2s ease}.upload-page .upload-drop:hover .upload-drop-title{color:var(--app-text-main)}.upload-page .upload-drop-sub{font-size:.875rem;color:var(--app-text-muted);line-height:1.45;transition:color .2s ease}.upload-page .upload-drop:hover .upload-drop-sub{color:var(--app-text-muted)}.upload-page .upload-drop.is-drag-over{border-style:solid;border-color:var(--app-accent);background:var(--app-accent-soft);box-shadow:0 20px 50px rgba(99,102,241,.25);transform:scale(1.02)}.upload-page .upload-drop.is-drag-over i{animation:uploadIconBounce .5s var(--upload-ease)}.upload-page .upload-alert{border-radius:var(--upload-radius);padding:14px 18px;border:1px solid;font-size:.9rem;line-height:1.5}.upload-page .upload-alert--error{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.4);color:#b91c1c}.upload-page .upload-alert--error ul{list-style:disc}.upload-page .upload-errors{border-radius:var(--upload-radius);padding:14px 18px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.4);font-size:.9rem;color:#b91c1c}.upload-page .upload-errors[hidden]{display:none}.upload-page .upload-errors__item{margin:0}.upload-page .upload-errors__item:last-child{margin-bottom:0}.upload-page .app-card{animation:uploadCardIn .5s var(--upload-ease) forwards}@keyframes uploadCardIn{from{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.upload-page .upload-drop,.upload-page .upload-intro{animation:none!important;opacity:1;transform:none}.upload-page .app-card{animation:none!important}}
