@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg-base: #0A0A0A;--bg-app: #131313;--primary: #ffffff;--primary-accent: #a2ffb3;--secondary-accent: #ccbeff;--on-background: #e5e2e1;--on-surface: #e5e2e1;--on-surface-variant: #becabc;--border-glass: rgba(255, 255, 255, .08);--bg-card: rgba(26, 26, 26, .6);--bg-card-hover: rgba(35, 35, 35, .8);--error: #ffb4ab;--error-bg: #93000a;--font-heading: "Plus Jakarta Sans", sans-serif;--font-body: "Inter", sans-serif;--unit: 8px;--container-max: 1440px;--margin-desktop: 64px;--margin-mobile: 20px;--gutter: 24px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--on-background);font-family:var(--font-body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3a3939}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--primary);font-weight:700;letter-spacing:-.02em}.text-display-xl{font-family:var(--font-heading);font-size:80px;font-weight:800;line-height:88px;letter-spacing:-.04em}.text-headline-lg{font-family:var(--font-heading);font-size:48px;font-weight:700;line-height:56px;letter-spacing:-.02em}.text-headline-md{font-family:var(--font-heading);font-size:28px;font-weight:600;line-height:36px}.text-body-lg{font-family:var(--font-body);font-size:22px;font-weight:400;line-height:32px}.text-body-md{font-family:var(--font-body);font-size:18px;font-weight:400;line-height:26px}.text-label-sm{font-family:var(--font-body);font-size:14px;font-weight:600;line-height:18px;letter-spacing:.05em;text-transform:uppercase}.glass-panel{background:var(--bg-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:16px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-panel.hoverable:hover{background:var(--bg-card-hover);border-color:#ffffff26;transform:translateY(-2px)}.ambient-glow{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0;opacity:.12}.glow-mint{background:radial-gradient(circle,var(--primary-accent) 0%,transparent 70%)}.glow-lavender{background:radial-gradient(circle,var(--secondary-accent) 0%,transparent 70%)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:16px;font-weight:600;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary{background-color:var(--primary-accent);color:#000}.btn-primary:hover:not(:disabled){opacity:.9;transform:scale(1.02);box-shadow:0 0 16px #a2ffb359}.btn-secondary{background-color:transparent;color:var(--secondary-accent);border:1px solid rgba(204,190,255,.5)}.btn-secondary:hover:not(:disabled){background-color:#ccbeff14;border-color:var(--secondary-accent)}.btn-danger{background-color:transparent;color:var(--error);border:1px solid rgba(255,180,171,.2)}.btn-danger:hover:not(:disabled){background-color:#ffb4ab14;border-color:var(--error)}.btn:disabled{opacity:.5;cursor:not-allowed}.app-container{display:flex;flex-direction:column;min-height:100vh;position:relative}.main-content{flex-grow:1;width:100%;max-width:var(--container-max);margin:0 auto;padding:24px var(--margin-mobile);position:relative;z-index:10}@media (min-width: 768px){.main-content{padding:32px var(--margin-desktop)}}.nav-btn{background:none;border:none;font-family:var(--font-body);font-size:18px;font-weight:600;display:flex;align-items:center;gap:6px;padding:8px 16px;cursor:pointer;border-radius:8px;transition:all .2s ease}.nav-btn:hover{background-color:#ffffff0f;color:var(--primary)!important}.navbar{background:#13131399;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-b:1px solid var(--border-glass);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border-glass)}.navbar-inner{display:flex;justify-content:space-between;align-items:center;max-width:var(--container-max);margin:0 auto;padding:16px var(--margin-mobile)}@media (min-width: 768px){.navbar-inner{padding:16px var(--margin-desktop)}}.nav-links{display:none;gap:32px}@media (min-width: 768px){.nav-links{display:flex;list-style:none}}.nav-link{color:var(--on-surface-variant);text-decoration:none;font-weight:500;transition:color .2s ease}.nav-link:hover{color:var(--primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{width:48px;height:48px;border:3px solid rgba(162,255,179,.1);border-top-color:var(--primary-accent);border-radius:50%;animation:spin 1s infinite linear}.upload-dropzone{border:2px dashed var(--border-glass);border-radius:12px;padding:64px 32px;text-align:center;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#13131333}.upload-dropzone.dragover{border-color:var(--primary-accent);background:#a2ffb30a}.upload-dropzone:hover{border-color:#ffffff40;background:#ffffff05}.grid-3{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 768px){.grid-3{grid-template-columns:repeat(3,1fr)}}.grid-layout{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 1024px){.grid-layout{grid-template-columns:280px 1fr}}.landing-main{width:100%;position:relative;z-index:10;flex-grow:1}.loader-ring{display:inline-block;position:relative;width:80px;height:80px}.loader-ring div{box-sizing:border-box;display:block;position:absolute;width:64px;height:64px;margin:8px;border:4px solid var(--primary-accent);border-radius:50%;animation:loader-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--primary-accent) transparent transparent transparent}.loader-ring div:nth-child(1){animation-delay:-.45s}.loader-ring div:nth-child(2){animation-delay:-.3s}.loader-ring div:nth-child(3){animation-delay:-.15s}@keyframes loader-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInOut{0%,to{opacity:0;transform:translateY(8px)}12%,88%{opacity:1;transform:translateY(0)}}.fade-text{animation:fadeInOut 2.5s infinite}
