@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--background:#1c1917;--foreground:#fafaf9;--canvas-bg:#f5f0e8;--canvas-bg-subtle:#ebe5da;--chrome:#292524;--chrome-raised:#33302e;--chrome-border:#ffffff12;--chrome-border-strong:#ffffff1f;--chrome-hover:#ffffff0f;--chrome-text:#d6d3d1;--chrome-text-muted:#a8a29e;--chrome-text-dim:#78716c;--primary:#d4874d;--primary-hover:#c77a3f;--primary-glow:#d4874d40;--accent-knot:#dc2649;--accent-line:#44403c;--accent-merge:#16a34a;--accent-danger:#dc2626;--accent-select:#3b82f6;--accent-select-bg:#3b82f614;--accent-select-border:#3b82f680;--surface:#292524eb;--surface-border:#ffffff12;--glass-blur:blur(16px);--radius-lg:14px;--radius-md:8px;--radius-sm:4px;--transition-fast:.12s cubic-bezier(.4,0,.2,1);--transition-normal:.25s cubic-bezier(.4,0,.2,1);--transition-spring:.3s cubic-bezier(.34,1.56,.64,1);--ease-out-cubic:cubic-bezier(.33,1,.68,1);--ease-in-cubic:cubic-bezier(.32,0,.67,0);--ease-in-out-cubic:cubic-bezier(.65,0,.35,1);--ease-out-back:cubic-bezier(.34,1.56,.64,1);--ease-in-back:cubic-bezier(.36,0,.66,-.56);--shadow-sm:0 1px 3px #1c191726;--shadow-md:0 4px 16px #1c191733;--shadow-lg:0 8px 32px #1c19174d;--shadow-chrome:0 4px 24px #00000059,0 0 0 1px #ffffff0a}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--background);max-width:100vw;color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.spinner-border{border:2px solid #ffffff26;border-left-color:var(--primary);border-radius:50%;flex-shrink:0;animation:.8s linear infinite spinner-spin;display:inline-block}.spinner-border--sm{width:14px;height:14px}.spinner-border--md{width:18px;height:18px}.spinner-border--btn{border-color:#00000026 #00000026 #00000026 #1c1917;width:16px;height:16px}@keyframes spinner-spin{to{transform:rotate(360deg)}}.glass-panel{background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-chrome)}h1{letter-spacing:-.03em;background:linear-gradient(135deg,#fafaf9 0%,#d6d3d1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}p.subtitle{color:var(--chrome-text-muted);margin-bottom:2rem;font-size:1.125rem}.main-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.content-wrapper{flex-direction:column;align-items:center;width:100%;max-width:1200px;display:flex}.landing-page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.landing-page:before{content:"";pointer-events:none;background:radial-gradient(#d4874d0f 0%,#d4874d05 40%,#0000 70%);width:800px;height:600px;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%)}.landing-header{width:100%;max-width:520px;animation:landing-fade-up .6s var(--ease-out-cubic)both;justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem;display:flex}.landing-header-left{text-align:left}.landing-header-right{align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.landing-brand{letter-spacing:-.01em;color:var(--foreground);-webkit-background-clip:unset;-webkit-text-fill-color:unset;background:0 0;margin-bottom:.625rem;font-family:Instrument Serif,Georgia,serif;font-size:3.25rem;font-weight:400;line-height:1.1}.landing-tagline{color:var(--chrome-text-muted);letter-spacing:.01em;margin-bottom:0;font-size:1.0625rem;font-weight:400}.landing-signin-btn{border-radius:var(--radius-md);color:var(--chrome-text);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s}.landing-signin-btn:hover{background:#ffffff14;border-color:#ffffff29}.landing-user-menu{align-items:center;gap:.75rem;display:flex}.landing-projects-link{color:var(--chrome-text-muted);font-size:.85rem;font-weight:500;transition:color .15s}.landing-projects-link:hover{color:var(--foreground)}.landing-user-btn{width:32px;height:32px;color:var(--chrome-text);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex;overflow:hidden}.landing-user-btn:hover{border-color:#fff3}.landing-user-avatar{object-fit:cover;border-radius:50%;width:100%;height:100%}.landing-generate{width:100%;max-width:520px;animation:landing-fade-up .6s var(--ease-out-cubic)60ms both}.landing-generate-bar{gap:.5rem;display:flex}.landing-generate-input{border-radius:var(--radius-md);color:var(--foreground);background:#ffffff0a;border:1px solid #ffffff1a;outline:none;flex:1;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.landing-generate-input::placeholder{color:var(--chrome-text-dim)}.landing-generate-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf633}.landing-generate-input:disabled{opacity:.5}.landing-generate-btn{border-radius:var(--radius-md);color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;align-items:center;gap:.4rem;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.landing-generate-btn:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.landing-generate-btn:disabled{opacity:.4;cursor:not-allowed}.landing-generate-progress{border-radius:var(--radius-md);background:#8b5cf60f;border:1px solid #8b5cf640;flex-direction:column;justify-content:center;gap:.5rem;min-height:46px;padding:.75rem 1rem;display:flex;position:relative;overflow:hidden}.landing-generate-status{color:#fffc;align-items:center;gap:.6rem;font-size:.9rem;display:flex}.landing-generate-status span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.landing-generate-shimmer{background:#8b5cf626;border-radius:2px;height:3px;position:relative;overflow:hidden}.landing-generate-shimmer:after{content:"";background:linear-gradient(90deg,#0000,#8b5cf6,#0000);border-radius:2px;width:40%;height:100%;animation:1.5s ease-in-out infinite shimmer;position:absolute;top:0;left:-40%}@keyframes shimmer{0%{left:-40%}to{left:100%}}.landing-generate-error{color:#ef4444;margin:.5rem 0 0;font-size:.8rem}.landing-divider{width:100%;max-width:520px;animation:landing-fade-up .6s var(--ease-out-cubic).1s both;align-items:center;gap:1rem;margin:1.25rem 0;display:flex}.landing-divider:before,.landing-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.landing-divider span{color:var(--chrome-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.landing-uploader{width:100%;max-width:520px;animation:landing-fade-up .6s var(--ease-out-cubic).14s both}.landing-features{animation:landing-fade-up .6s var(--ease-out-cubic).16s both;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:2rem;display:flex}.landing-feature{color:var(--chrome-text-muted);letter-spacing:.01em;white-space:nowrap;background:#ffffff08;border:1px solid #ffffff0f;border-radius:100px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;display:flex}.landing-feature svg{opacity:.55;flex-shrink:0;width:15px;height:15px}.landing-footer{color:var(--chrome-text-dim);letter-spacing:.02em;animation:landing-fade-up .6s var(--ease-out-cubic).24s both;font-size:.75rem;position:absolute;bottom:1.5rem}@keyframes landing-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
