@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;800&family=Inter:wght@300;400;500;600&display=swap";:root{--bg-dark:#09090b;--bg-panel:#18181b99;--glass-border:#ffffff14;--text-primary:#fafafa;--text-secondary:#a1a1aa;--color-cyan:#00f0ff;--color-purple:#7b00ff;--color-magenta:#ff00e5;--hover-glow:#ffffff0a;--btn-bg:#ffffff08;--btn-bg-hover:#ffffff1a;--card-shadow:0 20px 40px -20px #000000b3;--card-border-hover:#fff3;--tag-bg:#ffffff0d;--tag-text:#e4e4e7;--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif}[data-theme=light]{--bg-dark:#f8fafc;--bg-panel:#fffc;--glass-border:#0000000f;--text-primary:#0f172a;--text-secondary:#64748b;--color-cyan:#0284c7;--color-purple:#7c3aed;--color-magenta:#e11d48;--hover-glow:#00000008;--btn-bg:#f1f5f9cc;--btn-bg-hover:#e2e8f0;--card-shadow:0 20px 40px -20px #0000001a;--card-border-hover:#00000026;--tag-bg:#f1f5f9;--tag-text:#475569}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s,color .3s,border-color .3s}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}#root{z-index:1;min-height:100vh;position:relative}.animated-bg{z-index:-1;filter:blur(80px);background:radial-gradient(circle at 15%,#7b00ff1a,#0000 30%),radial-gradient(circle at 85% 30%,#00f0ff1a,#0000 30%),radial-gradient(circle at 50% 80%,#ff00e514,#0000 30%);width:100vw;height:100vh;transition:all .5s;animation:25s ease-in-out infinite alternate bg-shift;position:fixed;top:0;left:0}[data-theme=light] .animated-bg{background:radial-gradient(circle at 15%,#7c3aed0d,#0000 35%),radial-gradient(circle at 85% 30%,#0284c70d,#0000 35%),radial-gradient(circle at 50% 80%,#e11d480a,#0000 35%)}@keyframes bg-shift{0%{transform:scale(1)translate(0)}50%{transform:scale(1.1)translate(2%,2%)}to{transform:scale(1)translate(-2%,-2%)}}.container{flex-direction:column;align-items:center;max-width:1280px;margin:0 auto;padding:5rem 2rem;display:flex}.header{text-align:center;width:100%;margin-bottom:5rem;animation:1s ease-out forwards fade-in-up}.title{font-family:var(--font-heading);letter-spacing:-.03em;background:linear-gradient(135deg, var(--color-cyan), var(--color-purple), var(--color-magenta));-webkit-text-fill-color:transparent;text-align:center;background-size:200%;-webkit-background-clip:text;margin-bottom:1.5rem;font-size:clamp(3rem,6vw,5rem);font-weight:800;line-height:1.1;animation:6s linear infinite gradient-flow}@keyframes gradient-flow{to{background-position:200%}}.subtitle{color:var(--text-secondary);text-align:center;max-width:650px;margin:0 auto;font-size:1.25rem;font-weight:400;line-height:1.6}.theme-toggle-container{z-index:9999;position:fixed;top:2rem;right:2rem}.theme-toggle-btn{background:var(--bg-panel);border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(16px);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex}.theme-toggle-btn:hover{box-shadow:var(--card-shadow);border-color:var(--card-border-hover);transform:translateY(-3px)scale(1.05)}.project-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:2.5rem;width:100%;display:grid}.project-card{background:var(--bg-panel);border:1.5px solid color-mix(in srgb, var(--project-color) 25%, transparent);-webkit-backdrop-filter:blur(20px);transform-style:preserve-3d;opacity:0;border-radius:24px;flex-direction:column;height:100%;padding:2.5rem;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),border-color .3s,box-shadow .3s;animation:.8s ease-out forwards fade-in-up;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:radial-gradient(1000px circle at var(--mouse-x,50%) var(--mouse-y,50%), color-mix(in srgb, var(--project-color) 15%, transparent), transparent 40%);z-index:1;pointer-events:none;opacity:0;border-radius:24px;transition:opacity .4s;position:absolute;inset:0}.project-card:hover:before{opacity:1}.project-card:hover{border-color:color-mix(in srgb, var(--project-color) 80%, transparent);box-shadow:0 15px 40px -10px color-mix(in srgb, var(--project-color) 35%, transparent), var(--card-shadow)}.card-content{z-index:2;flex-direction:column;height:100%;display:flex;position:relative;transform:translateZ(20px)}.card-header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.card-icon-wrapper{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.card-icon{width:16px;height:16px;box-shadow:0 0 15px var(--project-color);border-radius:6px}.card-title{font-family:var(--font-heading);color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.2}.card-description{color:var(--text-secondary);margin-bottom:2rem;font-size:1rem;font-weight:400;line-height:1.6}.tags{flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem;display:flex}.tag{background:var(--tag-bg);border:1px solid var(--glass-border);color:var(--tag-text);text-transform:uppercase;letter-spacing:.05em;border-radius:8px;padding:.4rem .8rem;font-size:.75rem;font-weight:600}.card-action{align-self:flex-start;margin-top:auto}.visit-btn{background:var(--btn-bg);border:1px solid var(--glass-border);color:var(--text-primary);font-weight:600;font-family:var(--font-body);border-radius:14px;align-items:center;gap:.75rem;padding:.8rem 1.5rem;font-size:.95rem;text-decoration:none;transition:all .3s;display:inline-flex}.visit-btn:hover{background:var(--btn-bg-hover);border-color:var(--text-secondary);transform:translateY(-2px)}.visit-icon{width:18px;height:18px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.visit-btn:hover .visit-icon{transform:translate(4px)translateY(-4px)}@media (width<=768px){.container{padding:6rem 1.5rem 3rem}.header{margin-bottom:4rem}.project-grid{grid-template-columns:1fr;gap:2rem}.project-card{padding:2rem}.theme-toggle-container{top:1.5rem;right:1.5rem}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
