*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{overscroll-behavior-x:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#1a1a2e,#16213e 25%,#0f3460 50%,#533483 75%,#e94560);min-height:100vh;color:white}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border:none;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;text-decoration:none;gap:8px}.btn-primary{background:rgba(255,255,255,.1);color:white;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.btn-primary:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}.btn-secondary{background:rgba(255,255,255,.05);color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover{background:rgba(255,255,255,.1)}.card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:24px}.card,.input{background:rgba(255,255,255,.05)}.input{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;color:white;font-size:16px;width:100%;transition:all .2s ease}.input:focus{outline:none;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08)}.input::placeholder{color:rgba(255,255,255,.5)}.file-upload{position:relative;display:inline-block;cursor:pointer;background:rgba(255,255,255,.05);border:2px dashed rgba(255,255,255,.2);border-radius:16px;padding:40px;text-align:center;transition:all .2s ease;width:100%}.file-upload:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08)}.file-upload.dragover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.1)}.loading{display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:white;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(1turn)}}.heart{display:inline-block;background:linear-gradient(45deg,#8b5cf6,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}