@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.17jn9btb_52pq.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
:root{--bg-primary:#050505;--bg-secondary:#0f0f12;--bg-tertiary:#1a1a20;--text-primary:#fff;--text-secondary:#a1a1aa;--accent-primary:#818cf8;--accent-secondary:#c084fc;--accent-gradient:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));--border-color:#ffffff14;--glass-bg:#0f0f1299;--glass-border:#ffffff14;--font-heading:var(--font-geist-sans), sans-serif;--font-body:var(--font-geist-sans), sans-serif;--font-mono:var(--font-geist-mono), monospace;--container-width:1100px;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:2rem;--spacing-xl:4rem;--spacing-xxl:8rem;--shadow-glow:0 0 30px #818cf833;--transition-fast:.2s ease;--transition-normal:.4s cubic-bezier(.16, 1, .3, 1);--transition-slow:.8s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:100px}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;position:relative;overflow-x:hidden}.ambient-glow{z-index:-1;pointer-events:none;filter:blur(100px);background:radial-gradient(circle,#818cf814 0%,#05050500 70%);border-radius:50%;width:50vw;height:50vw;animation:20s ease-in-out infinite alternate floatOrb;position:fixed;top:-10vh;left:10vw}@keyframes floatOrb{0%{transform:translate(0)scale(1)}to{transform:translate(-5vw,10vh)scale(1.2)}}.ambient-glow:after{content:"";filter:blur(80px);background:radial-gradient(circle,#c084fc1a 0%,#05050500 70%);border-radius:50%;width:50vw;height:60vh;position:absolute;top:50vh;right:-50vw}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:600}a{color:inherit;transition:var(--transition-fast);text-decoration:none}.gradient-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.container{max-width:var(--container-width);padding:0 var(--spacing-lg);width:100%;margin:0 auto}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 8px 32px #0003}.p-lg{padding:2rem}.mt-md{margin-top:1rem}.mt-lg{margin-top:2.5rem}.text-center{text-align:center}.mx-auto{margin-left:auto;margin-right:auto}.inline-block{display:inline-block}.btn{font-weight:500;font-family:var(--font-heading);transition:var(--transition-normal);cursor:pointer;border:none;border-radius:50px;justify-content:center;align-items:center;padding:.8rem 1.8rem;font-size:1rem;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 40px #818cf866}.btn-outline{border:1px solid var(--accent-primary);color:var(--accent-primary);background:0 0}.btn-outline:hover{background:#818cf81a;transform:translateY(-2px)}.navbar{width:calc(100% - 2rem);max-width:var(--container-width);z-index:100;transition:all var(--transition-normal);border-radius:100px;padding:.8rem 1.5rem;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.navbar.scrolled{border-top:none;border-left:none;border-right:none;border-radius:0;width:100%;max-width:100%;top:0}.nav-content{justify-content:space-between;align-items:center;display:flex}.logo{font-family:var(--font-heading);color:#fff;letter-spacing:-.05em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.nav-links{align-items:center;gap:2rem;display:flex}.nav-link{color:var(--text-secondary);font-size:.9rem;font-weight:500}.nav-link:hover{color:var(--accent-primary)}.nav-btn{border:1px solid var(--border-color);color:#fff;transition:var(--transition-normal);border-radius:50px;padding:.5rem 1.2rem;font-size:.9rem}.nav-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.bento-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(180px,auto);gap:1.5rem;display:grid}.bento-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);transition:var(--transition-normal);border-radius:24px;flex-direction:column;padding:2rem;display:flex;position:relative;overflow:hidden}.bento-card:hover{border-color:#818cf84d;transform:translateY(-5px);box-shadow:0 10px 30px #00000080}.bento-card:after{content:"";background:radial-gradient(600px circle at var(--mouse-x,-500px) var(--mouse-y,-500px), #ffffff0d, transparent 40%);opacity:0;transition:opacity var(--transition-normal);pointer-events:none;z-index:10;position:absolute;inset:0}.bento-card:hover:after{opacity:1}.logo-grid{flex-grow:1;align-items:center;display:flex}.tech-logo{opacity:.5;filter:grayscale();width:32px;height:32px;transition:all var(--transition-normal)}.bento-card:hover .tech-logo{opacity:1;filter:grayscale(0)}.tech-logo:hover{transform:scale(1.2)}.col-span-1{grid-column:span 1}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.row-span-2{grid-row:span 2}@media (max-width:900px){.bento-grid{grid-template-columns:repeat(2,1fr)}.col-span-3,.col-span-4{grid-column:span 2}}@media (max-width:600px){.bento-grid{grid-template-columns:1fr}.col-span-2,.col-span-3,.col-span-4{grid-column:span 1}.row-span-2{grid-row:span 1}}.section{padding:var(--spacing-xxl) 0}.section-title{margin-bottom:var(--spacing-xl);align-items:center;gap:1rem;font-size:2.5rem;display:flex}.section-title:after{content:"";background:var(--glass-border);flex-grow:1;max-width:300px;height:1px}.hero-section{text-align:center;justify-content:center;align-items:center;min-height:90vh;padding-top:120px;padding-bottom:60px;display:flex}.hero-content{max-width:900px;margin:0 auto}.greeting{color:var(--accent-primary);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;font-size:.9rem;font-weight:500}.title-large{letter-spacing:-.04em;margin-bottom:1.5rem;font-size:clamp(3.5rem,10vw,7.5rem);font-weight:850;line-height:1}.subtitle{color:var(--text-secondary);letter-spacing:-.02em;margin-bottom:2.5rem;font-size:clamp(1.5rem,4vw,3rem);font-weight:400;line-height:1.2}.description{color:var(--text-secondary);max-width:650px;margin:0 auto 3.5rem;font-size:1.15rem;line-height:1.6}.cta-group{justify-content:center;gap:1.5rem;display:flex}.about-grid{grid-template-columns:3fr 2fr;align-items:center;gap:4rem;display:grid}.about-text p{color:var(--text-secondary);margin-bottom:1rem}.tech-list{grid-template-columns:repeat(2,1fr);gap:.5rem;list-style:none;display:grid}.tech-list li{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.95rem;display:flex}.tech-list li:before{content:"▹";color:var(--accent-primary)}.project-overline{color:var(--accent-primary);font-size:.85rem;font-family:var(--font-heading);margin-bottom:.5rem}.project-title{color:#fff;margin-bottom:1rem;font-size:1.5rem}.project-description{color:var(--text-secondary);flex-grow:1;margin-bottom:2rem;font-size:.95rem}.project-tech{font-family:var(--font-heading);color:var(--text-secondary);flex-wrap:wrap;gap:1rem;font-size:.85rem;list-style:none;display:flex}.project-cover-image{border-bottom:1px solid var(--glass-border);background-position:50%;background-size:cover;border-radius:24px 24px 0 0;height:220px;margin-bottom:2rem}.floating-mockup-wrapper{background:radial-gradient(circle at 0 0,#818cf81a,#0000 70%);height:250px;margin:2rem -2.5rem -2.5rem;position:relative;overflow:hidden}.floating-mockup-img{border:1px solid var(--glass-border);width:90%;transition:var(--transition-normal);border-radius:8px;position:absolute;top:10%;right:-5%;box-shadow:0 20px 40px #00000080}.bento-card:hover .floating-mockup-img{transform:translateY(-10px)translate(-10px)rotate(-2deg)}.hover-reveal-card{min-height:400px;padding:0;display:block;position:relative}.hover-reveal-bg{background-position:50%;background-size:cover;border-radius:24px;position:absolute;inset:0}.hover-reveal-overlay{transition:var(--transition-normal);background:linear-gradient(#0000 0%,#05050566 50%,#050505f2 100%);border-radius:24px;position:absolute;inset:0}.hover-reveal-card:hover .hover-reveal-overlay{background:linear-gradient(#05050566 0%,#050505cc 50%,#050505fa 100%)}.hover-reveal-content{transition:var(--transition-normal);z-index:2;padding:2.5rem;position:absolute;bottom:0;left:0;right:0;transform:translateY(60px)}.hover-reveal-description{opacity:0;visibility:hidden;transition:var(--transition-normal);height:0}.hover-reveal-card:hover .hover-reveal-content{transform:translateY(0)}.hover-reveal-card:hover .hover-reveal-description{opacity:1;visibility:visible;height:auto;margin-top:1rem}.footer{text-align:center;color:var(--text-secondary);border-top:1px solid var(--glass-border);padding:2rem 0;font-size:.9rem}.fade-up{opacity:0;animation:fadeUp var(--transition-slow) forwards;transform:translateY(30px)}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.fade-in-section{opacity:0;will-change:opacity, visibility;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(40px)}.is-visible{opacity:1!important;transform:none!important}@media (max-width:768px){.nav-links{display:none}.about-grid{grid-template-columns:1fr}.section-title{font-size:2rem}.section-title:after{max-width:100px}.cta-group{flex-direction:column}}
