*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a0a;--bg-secondary:#111;--bg-card:#161616;--bg-card-hover:#1a1a1a;--border:#222;--border-hover:#333;--text-primary:#e8e8e8;--text-secondary:#888;--text-muted:#555;--accent:#a855f7;--accent-hover:#c084fc;--accent-glow:#a855f726;--green:#22c55e;--yellow:#eab308;--orange:#f97316;--purple:#a855f7;--radius:8px;--radius-lg:12px;--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--glass-bg:#16161699;--glass-border:#ffffff0f;--glass-blur:12px;--glass-highlight:#ffffff0a;--glow-sm:0 0 8px #a855f726;--glow-md:0 0 16px #a855f733;--glow-lg:0 0 32px #a855f740;--glow-green:0 0 10px #22c55e33;--glow-yellow:0 0 10px #eab30833;--glow-purple:0 0 10px #a855f733;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.6}body{background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:24px 24px;flex-direction:column;min-height:100vh;display:flex}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}#root{flex-direction:column;min-height:100vh;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{box-shadow:var(--glow-sm)}50%{box-shadow:var(--glow-md)}}@keyframes borderGlow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.page{animation:.4s ease-out fadeIn}.site-header{border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);z-index:10;background:#0a0a0acc;padding:1.25rem 0;position:sticky;top:0;box-shadow:0 1px 12px #a855f70f}.container{max-width:960px;margin:0 auto;padding:0 1.5rem}.header-inner{justify-content:space-between;align-items:center;display:flex}.logo{color:var(--text-primary);align-items:center;gap:.625rem;text-decoration:none;display:flex}.logo:hover{color:var(--text-primary)}.logo-mark{background:var(--accent);width:32px;height:32px;font-family:var(--font-mono);color:#fff;letter-spacing:-.02em;box-shadow:var(--glow-sm);border-radius:6px;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:flex}.logo-text{letter-spacing:-.02em;font-size:1.125rem;font-weight:600}.header-nav{align-items:center;gap:1.5rem;display:flex}.header-nav a{color:var(--text-secondary);padding-bottom:2px;font-size:.875rem;font-weight:500;transition:color .2s;position:relative}.header-nav a:hover,.header-nav a.active{color:var(--text-primary)}.header-nav a.active:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:-4px;left:0;right:0;box-shadow:0 0 8px #a855f766}.section{padding:3rem 0}.section-header{align-items:baseline;gap:.75rem;margin-bottom:1.5rem;display:flex}.section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.75rem;font-weight:600}.section-line{background:linear-gradient(90deg, var(--accent), transparent);flex:1;height:1px}.project-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:9999px;flex-shrink:0;padding:.2rem .55rem;font-size:.6875rem;font-weight:600}.badge-active{color:var(--green);box-shadow:var(--glow-green);background:#22c55e1a;border:1px solid #22c55e33}.badge-planning{color:var(--yellow);box-shadow:var(--glow-yellow);background:#eab3081a;border:1px solid #eab30833}.badge-private{color:var(--purple);box-shadow:var(--glow-purple);background:#a855f71a;border:1px solid #a855f733}.tag{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(4px);background:#1119;border-radius:4px;padding:.15rem .5rem;font-size:.6875rem}.site-footer{border-top:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);background:#0a0a0a99;margin-top:auto;padding:2rem 0}.footer-inner{justify-content:space-between;align-items:center;display:flex}.footer-text{color:var(--text-muted);font-size:.8125rem}.footer-links{gap:1.25rem;display:flex}.footer-links a{color:var(--text-muted);font-size:.8125rem;transition:color .2s}.footer-links a:hover{color:var(--text-secondary)}@media (width<=640px){.footer-inner{text-align:center;flex-direction:column;gap:.75rem}}.hero{padding:6rem 0 4rem}.hero-chip{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-glow);box-shadow:var(--glow-sm);border:1px solid #a855f733;border-radius:9999px;margin-bottom:1.25rem;padding:.25rem .75rem;font-size:.6875rem;font-weight:600;animation:.4s ease-out both fadeIn;display:inline-block}.hero h1{letter-spacing:-.04em;margin-bottom:1rem;font-size:3rem;font-weight:800;line-height:1.15;animation:.4s ease-out .1s both fadeIn}.hero h1 .accent{background:linear-gradient(135deg, #c084fc, var(--accent), #7c3aed);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;position:relative}.hero h1 .accent:after{content:"_";-webkit-text-fill-color:var(--accent);font-weight:400;animation:1s step-end infinite blink}.hero p{color:var(--text-secondary);max-width:540px;font-size:1.125rem;line-height:1.7;animation:.4s ease-out .2s both fadeIn}.carousel{padding:1rem 0;position:relative}.carousel-track{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-left:calc(50vw - 210px);padding-right:calc(50vw - 210px);display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{scroll-snap-align:center;opacity:.35;filter:blur(1px);flex:0 0 420px;min-width:0;padding:.5rem .625rem;transition:opacity .4s,transform .4s,filter .4s;transform:scale(.92)}.carousel-slide--active{opacity:1;filter:blur();transform:scale(1)}.carousel-btn{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);width:3rem;height:3rem;color:var(--text-secondary);cursor:pointer;z-index:2;background:#161616d9;border-radius:50%;justify-content:center;align-items:center;font-size:1.75rem;line-height:1;transition:border-color .25s,box-shadow .25s,color .25s,background .25s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn:hover:not(:disabled){color:var(--text-primary);background:#1e1e1ef2;border-color:#a855f780;box-shadow:0 0 20px #a855f740}.carousel-btn:disabled{opacity:.25;cursor:default}.carousel-btn--prev{left:max(1rem,50% - 260px)}.carousel-btn--next{right:max(1rem,50% - 260px)}.carousel-dots{justify-content:center;gap:.625rem;padding-top:1.25rem;display:flex}.carousel-dot{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:50%;width:.5rem;height:.5rem;padding:0;transition:background .3s,border-color .3s,box-shadow .3s,transform .3s}.carousel-dot:hover{background:#a855f733;border-color:#a855f780}.carousel-dot--active{background:var(--accent);border-color:var(--accent);transform:scale(1.35);box-shadow:0 0 10px #a855f780}.project-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));height:100%;min-height:320px;padding:2rem 1.75rem;transition:border-color .2s,box-shadow .3s,transform .2s;position:relative;overflow:hidden}.project-card-inner{flex-direction:column;justify-content:space-between;height:100%;display:flex}.project-card-link{color:inherit;height:100%;text-decoration:none;display:flex}.project-card:before{content:"";background:linear-gradient(90deg, transparent, var(--glass-highlight), transparent);height:1px;position:absolute;top:0;left:0;right:0}.project-card:after{content:"";border-radius:var(--radius-lg);background:linear-gradient(135deg, #c084fc, var(--accent), #7c3aed, var(--accent), #c084fc);-webkit-mask-composite:xor;opacity:0;pointer-events:none;background-size:300% 300%;padding:1px;transition:opacity .3s;animation:4s infinite borderGlow;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.carousel-slide--active .project-card:hover:after{opacity:1}.carousel-slide--active .project-card:hover{border-color:#a855f74d;transform:translateY(-3px);box-shadow:0 0 20px #a855f71f,0 8px 32px #0000004d}.project-card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.project-name{color:var(--text-primary);font-size:1.125rem;font-weight:600}.project-desc{color:var(--text-secondary);margin-bottom:0;font-size:.9rem;line-height:1.7}.project-card-bottom{justify-content:space-between;align-items:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.project-tags{flex-wrap:wrap;gap:.375rem;display:flex}.project-card--linked{cursor:pointer}.project-link-hint{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:.75rem;font-weight:500;transition:color .2s,text-shadow .2s}.project-card--linked:hover .project-link-hint{color:var(--accent);text-shadow:0 0 8px #a855f766}@media (width<=640px){.hero{padding:3rem 0 2.5rem}.hero h1{font-size:2rem}.hero p{font-size:1rem}.carousel-track{padding-left:7.5vw;padding-right:7.5vw}.carousel-slide{flex:0 0 85vw}.carousel-btn{display:none}.project-card{-webkit-backdrop-filter:blur(6px);min-height:280px;padding:1.5rem 1.25rem}}.about-hero{padding:5rem 0 3rem}.about-hero h1{letter-spacing:-.03em;margin-bottom:.75rem;font-size:2.5rem;font-weight:700;line-height:1.15}.about-hero h1 .accent{background:linear-gradient(135deg, var(--accent), var(--accent-hover));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.about-subtitle{color:var(--text-secondary);max-width:540px;font-size:1.125rem;line-height:1.7}.about-content{flex-direction:column;gap:1rem;display:flex}.about-content p{color:var(--text-secondary);max-width:640px;font-size:.9375rem;line-height:1.75}.about-content strong{color:var(--text-primary);font-weight:600}@media (width<=640px){.about-hero{padding:3rem 0 2rem}.about-hero h1{font-size:1.75rem}}.contact-hero{padding:5rem 0 3rem}.contact-hero h1{letter-spacing:-.03em;margin-bottom:.75rem;font-size:2.5rem;font-weight:700;line-height:1.15}.contact-hero h1 .accent{background:linear-gradient(135deg, var(--accent), var(--accent-hover));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.contact-subtitle{color:var(--text-secondary);max-width:480px;font-size:1.125rem;line-height:1.7}.contact-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color .2s,box-shadow .2s}.contact-card:hover{border-color:var(--border-hover);box-shadow:0 0 20px var(--accent-glow)}.contact-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.contact-value{color:var(--text-primary);margin-bottom:.75rem;font-size:.9375rem;font-weight:500}.contact-value a{color:var(--text-primary)}.contact-value a:hover{color:var(--accent)}.contact-purpose{color:var(--text-muted);font-size:.8125rem;line-height:1.5}@media (width<=640px){.contact-hero{padding:3rem 0 2rem}.contact-hero h1{font-size:1.75rem}.contact-grid{grid-template-columns:1fr}}
