@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}

/*! tailwindcss v4.0.14 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-slate-800:oklch(.279 .041 260.031);--color-slate-950:oklch(.129 .042 264.695);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-\[280px\]{height:280px}.h-full{height:100%}.w-\[280px\]{width:280px}.w-full{width:100%}.grow{flex-grow:1}.origin-center{transform-origin:50%}.\[transform\:rotateY\(var\(--r-x\)\)_rotateX\(var\(--r-y\)\)\]{transform:rotateY(var(--r-x))rotateX(var(--r-y))}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.resize{resize:both}.place-items-center{place-items:center}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.rounded-\[var\(--radius\)\]{border-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-slate-800{border-color:var(--color-slate-800)}.bg-slate-950{background-color:var(--color-slate-950)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-\[var\(--delay\)\]{transition-delay:var(--delay)}.duration-\[var\(--duration\)\]{--tw-duration:var(--duration);transition-duration:var(--duration)}.ease-\[var\(--easing\)\]{--tw-ease:var(--easing);transition-timing-function:var(--easing)}.will-change-transform{will-change:transform}.\[contain\:layout_style\]{contain:layout style}.\[grid-area\:1\/1\]{grid-area:1/1}.\[perspective\:600px\]{perspective:600px}@media (width>=40rem){.sm\:h-\[300px\]{height:300px}.sm\:w-\[300px\]{width:300px}}}:root{--navy:#011627;--cream:#fdfffc;--teal:#2ec4b6;--red:#e71d36;--orange:#ff9f1c;--background:#011627;--foreground:#fdfffc;--primary:#2ec4b6;--secondary:#ff9f1c;--accent:#e71d36;--text-primary:#fdfffc;--text-secondary:#e6f3f1;--text-muted:#c4d9d6;--text-subtle:#a0c4c0;--primary-color:#2ec4b6;--secondary-color:#ff9f1c;--color-background:var(--background);--color-foreground:var(--foreground);--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono)}@media (prefers-color-scheme:dark){:root{--background:#011627;--foreground:#fdfffc;--text-primary:#fdfffc;--text-secondary:#e6f3f1;--text-muted:#c4d9d6;--text-subtle:#a0c4c0}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}.page-break{border:none;border-top:1px solid #e6f3f133;margin:2rem 0}@media print{.page-break{break-after:page;page-break-after:always;border-top-color:#0003}}.prose-table.pseudo-table{background:#fdfffc0d;border:1px solid #e6f3f126;border-radius:8px;grid-auto-columns:1fr;grid-auto-flow:column;gap:.5rem;padding:.75rem;display:grid}.pseudo-table .pseudo-cell{text-align:left;border:1px solid #e6f3f11f;border-radius:6px;padding:.5rem .75rem}@media (width<=640px){.prose-table.pseudo-table{grid-auto-flow:row}}.prose-table.real-table{border-spacing:0;border-collapse:separate;background:#fdfffc08;border:1px solid #e6f3f12e;border-radius:10px;width:100%;overflow:hidden}.prose-table.real-table thead th{color:var(--text-primary);text-align:left;background:#2ec4b614;border-bottom:1px solid #e6f3f13d;border-right:1px solid #e6f3f124;padding:.75rem 1rem}.prose-table.real-table thead th:last-child{border-right:none}.prose-table.real-table tbody td{vertical-align:top;border-bottom:1px solid #e6f3f124;border-right:1px solid #e6f3f11f;padding:.75rem 1rem}.prose-table.real-table tbody tr:last-child td{border-bottom:none}.prose-table.real-table tbody td:last-child{border-right:none}.prose-table.real-table tbody tr:nth-child(odd){background:#fdfffc05}.prose .table-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=640px){.prose .table-wrapper{overflow-x:auto}.prose-table.real-table{table-layout:auto;width:auto;display:table}.prose-table.real-table td,.prose-table.real-table td *,.prose-table.real-table th,.prose-table.real-table th *{white-space:nowrap;overflow-wrap:normal;word-break:normal}}.prose,.prose a,.prose p,.prose-li,.prose-link{overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.prose a,.prose-link{color:var(--teal);text-underline-offset:2px;text-decoration:underline}@media (width<=480px){.prose a,.prose-link{word-break:break-all}}.navbar{background:var(--background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;justify-content:space-between;align-items:center;padding:1rem 2rem;transition:all .3s;display:flex;position:fixed;overflow:hidden}.navbar,.navbar:before{width:100%;top:0;left:0}.navbar:before{content:"";opacity:0;pointer-events:none;height:100%;mask-image:radial-gradient(circle 150px at var(--mouse-x,50%)var(--mouse-y,50%),black 0,black 70%,transparent 100%);-webkit-mask-image:radial-gradient(circle 150px at var(--mouse-x,50%)var(--mouse-y,50%),black 0,black 70%,transparent 100%);background-image:radial-gradient(#2ec4b64d 1px,#0000 0);background-size:1.5rem 1.5rem;transition:opacity .3s;position:absolute}.navbar:hover:before{opacity:1}.navbar-logo{width:100px;height:auto}.action-btn,.navbar-actions{align-items:center;display:flex}.action-btn{color:var(--background);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;width:56px;height:56px;padding:.75rem;font-size:.9rem;font-weight:600;transition:all .3s;position:relative;overflow:hidden}.blog-btn:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.blog-btn:hover:before{left:100%}.blog-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #2ec4b64d}.tooltip{background:var(--navy);color:var(--cream);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:1001;border:1px solid var(--teal);border-radius:6px;padding:.5rem .75rem;font-size:.75rem;font-weight:500;transition:all .3s;bottom:-45px;box-shadow:0 4px 12px #0000004d}.tooltip,.tooltip:before{position:absolute;left:50%;transform:translate(-50%)}.tooltip:before{content:"";border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:5px solid var(--teal);width:0;height:0;top:-5px}.blog-btn:hover .tooltip{opacity:1;visibility:visible;bottom:-40px}.background-gradient{z-index:-1;opacity:.3;background-image:radial-gradient(var(--teal).5px,#0000 1px);background-size:1.5rem 1.5rem;-webkit-mask-image:radial-gradient(600px at 454px 457px,#000 20%,#0000 100%);mask-image:radial-gradient(600px at 454px 457px,#000 20%,#0000 100%)}.background-gradient,.flair{pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;-webkit-mask-size:100% 100%;mask-size:100% 100%}.flair{z-index:-2;opacity:.2;background:radial-gradient(100% 100% at 50% 0,#01162700 0,#011627 100%),radial-gradient(90% 80% at 10% 20%,#2ec4b615 0,#0000 100%),radial-gradient(200% 120% at 50% 0,#ff9f1c10 0,#0000 100%),radial-gradient(150% 100% at 80% 80%,#e71d3608 0,#0000 100%);-webkit-mask-image:radial-gradient(600px at 263px 476px,#000 20%,#0000 100%);mask-image:radial-gradient(600px at 263px 476px,#000 20%,#0000 100%)}.text-navy{color:var(--navy)}.text-cream{color:var(--cream)}.text-teal{color:var(--teal)}.text-red{color:var(--red)}.text-orange{color:var(--orange)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-subtle{color:var(--text-subtle)}.bg-navy{background-color:var(--navy)}.bg-cream{background-color:var(--cream)}.bg-teal{background-color:var(--teal)}.bg-red{background-color:var(--red)}.bg-orange{background-color:var(--orange)}.btn-primary{background:var(--teal);color:var(--navy);border:2px solid var(--teal);border-radius:.5rem;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn-primary:hover{color:var(--teal);background:0 0;transform:translateY(-2px);box-shadow:0 4px 8px #2ec4b64d}.btn-secondary{background:var(--orange);color:var(--navy);border:2px solid var(--orange);border-radius:.5rem;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn-secondary:hover{color:var(--orange);background:0 0;transform:translateY(-2px);box-shadow:0 4px 8px #ff9f1c4d}.btn-success{color:var(--cream);background:#22c55e;border:2px solid #22c55e;border-radius:.5rem;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn-success:hover{color:#22c55e;background:0 0;transform:translateY(-2px);box-shadow:0 4px 8px #22c55e4d}.btn-accent{background:var(--red);color:var(--cream);border:2px solid var(--red);border-radius:.5rem;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn-accent:hover{color:var(--red);background:0 0;transform:translateY(-2px);box-shadow:0 4px 8px #e71d364d}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fdfffc0d;border:1px solid #2ec4b633;border-radius:1rem;padding:2rem;transition:all .3s}.card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #2ec4b633}.border-teal,.card:hover{border-color:var(--teal)}.border-orange{border-color:var(--orange)}.border-red{border-color:var(--red)}.gradient-text{background:linear-gradient(135deg,var(--teal),var(--orange));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-container{flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;max-width:1200px;margin:0 auto;display:flex}@media (width>=768px){.hero-container{flex-direction:column;justify-content:center;align-items:center;gap:2rem}}.hero-content{flex:1;width:100%;max-width:750px}.hero-image{flex:1;justify-content:center;align-items:center;width:100%;display:flex}@media (width<=767px){.hero-image{max-width:100%;padding:0 1rem;overflow:hidden}}.contact-container{grid-template-columns:1.5fr 1fr;align-items:start;gap:3rem;width:100%;max-width:1200px;display:grid}.contact-right-column{margin-top:2rem}@media (width<=768px){.contact-container{padding:0 calc(1.25rem + env(safe-area-inset-right)) 0 calc(1.25rem + env(safe-area-inset-left));grid-template-columns:1fr;justify-items:center;gap:2rem}.contact-main{padding:80px calc(1.25rem + env(safe-area-inset-right)) 1.25rem calc(1.25rem + env(safe-area-inset-left))!important}.contact-left-column{order:1}.contact-right-column{order:2;margin-top:0}}.contact-input{outline:none}.contact-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2ec4b61a}.contact-input::placeholder{color:var(--text-subtle)}.social-link:hover{border-color:var(--teal);background:#2ec4b61a;transform:translateY(-2px);box-shadow:0 4px 8px #2ec4b633}.social-link svg{color:var(--teal)}.contact-input:invalid{border-color:#e71d3680}.contact-input:valid{border-color:#2ec4b680}.skills-scroll-container{width:100%;margin:4rem 0;overflow:hidden}.skills-title{text-align:center;background:linear-gradient(135deg,var(--teal),var(--orange));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:2.5rem;font-weight:700}.skills-scroll-wrapper{scrollbar-width:none;width:100%;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.skills-scroll-wrapper::-webkit-scrollbar{display:none}@media (width<=768px){.skills-scroll-wrapper{-webkit-overflow-scrolling:touch}.skills-scroll-track{padding:0 1rem}}.skills-scroll-track{align-items:center;gap:2rem;width:max-content;min-height:180px;padding:0 2rem;transition:none;display:flex}.skill-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fdfffc0d;border:2px solid #2ec4b633;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;min-width:120px;padding:1.5rem 1rem;transition:all .3s;display:flex;position:relative;overflow:hidden}.skill-item:before{content:"";background:var(--category-color,var(--teal));height:3px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.skill-item:hover{border-color:var(--category-color,var(--teal));transform:translateY(-4px);box-shadow:0 8px 32px #2ec4b633}.skill-item:hover:before{transform:scaleX(1)}.skill-logo{background:#fdfffc1a;border-radius:.5rem;justify-content:center;align-items:center;width:50px;height:50px;margin-bottom:.75rem;transition:all .3s;display:flex}.skill-item:hover .skill-logo{background:#fdfffc33;transform:scale(1.1)}.skill-name{color:var(--foreground);text-align:center;font-size:.9rem;font-weight:600;transition:color .3s}.skill-item:hover .skill-name{color:var(--category-color,var(--teal))}.projects-main{background:var(--background);min-height:100vh;padding:120px 2rem 2rem}.projects-container{max-width:1400px;margin:0 auto}.projects-header{text-align:center;margin-bottom:3rem}.projects-title{color:var(--foreground);margin-bottom:1rem;font-size:3.5rem;font-weight:700}.projects-subtitle{color:var(--text-secondary);max-width:600px;margin:0 auto;font-size:1.25rem;line-height:1.6}.projects-filter{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:3rem;display:flex}.filter-btn{color:var(--foreground);cursor:pointer;background:0 0;border:2px solid #2ec4b64d;border-radius:2rem;padding:.75rem 1.5rem;font-weight:500;transition:all .3s;position:relative;overflow:hidden}.filter-btn:before{content:"";background:linear-gradient(90deg,#0000,#2ec4b633,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.filter-btn:hover:before{left:100%}.filter-btn.active,.filter-btn:hover{border-color:var(--teal);background:var(--teal);color:var(--navy);transform:translateY(-2px)}.filter-count{opacity:.8;margin-left:.25rem;font-size:.75rem;font-weight:400}.filter-btn.active .filter-count{opacity:1}.bento-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:4rem;transition:all .3s;display:grid}.project-card-large{grid-area:span 2/span 2}.project-card-medium{grid-area:span 2/span 1}.project-card-small{grid-area:span 1/span 1}@media (width<=1024px){.project-card-large,.project-card-medium{grid-area:span 1/span 1}}.project-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;background:#fdfffc0d;border:1px solid #2ec4b633;border-radius:1rem;flex-direction:column;height:100%;min-height:300px;padding:2rem;transition:all .3s;animation:fadeInUp .5s forwards;display:flex;position:relative;overflow:hidden;transform:translateY(20px)}.project-card:before{content:"";background:linear-gradient(90deg,var(--teal),var(--orange));height:3px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{border-color:var(--teal);transform:translateY(-8px);box-shadow:0 12px 40px #2ec4b633}.project-card:hover:before{transform:scaleX(1)}.project-card-content{flex-direction:column;height:100%;display:flex}.project-image{background:#2ec4b61a;border-radius:1rem;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;transition:all .3s;display:flex}.project-card:hover .project-image{background:#2ec4b633;transform:scale(1.05)}.project-info{flex-direction:column;flex:1;display:flex}.project-category{color:var(--orange);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.875rem;font-weight:600}.project-title{color:var(--foreground);margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.3}.project-description{color:var(--text-secondary);flex:1;margin-bottom:1.5rem;line-height:1.6}.project-tech{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.tech-tag{color:var(--teal);background:#2ec4b61a;border:1px solid #2ec4b64d;border-radius:1rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;transition:all .3s}.tech-tag:hover{background:var(--teal);color:var(--navy)}.project-links{gap:1rem;margin-top:auto;display:flex}.project-link{border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .3s;display:flex}.github-link{color:var(--foreground);background:#fdfffc1a;border:1px solid #fdfffc33}.github-link:hover{background:var(--foreground);color:var(--navy);transform:translateY(-2px)}.live-link{background:var(--teal);color:var(--navy);border:1px solid var(--teal)}.live-link:hover{color:var(--teal);background:0 0;transform:translateY(-2px)}.projects-footer{text-align:center;border-top:1px solid #2ec4b633;padding:3rem 0}.projects-footer p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.125rem}.no-projects{grid-column:1/-1;justify-content:center;align-items:center;min-height:300px;margin:2rem 0;display:flex}.no-projects-content{text-align:center;flex-direction:column;align-items:center;padding:2rem;display:flex}.no-projects-content h3{color:var(--foreground);margin:1rem 0 .5rem;font-size:1.5rem;font-weight:600}.no-projects-content p{color:var(--text-muted);font-size:1rem}@media (width<=768px){.projects-main{padding:100px 1rem 1rem}.projects-title{font-size:2.5rem}.projects-subtitle{font-size:1rem}.projects-filter{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.875rem}.bento-grid{grid-template-columns:1fr;gap:1rem}.project-card{min-height:250px;padding:1.5rem}.project-image{width:60px;height:60px}.project-title{font-size:1.25rem}.project-links{flex-direction:column;gap:.75rem}}.project-card:first-child{animation-delay:.1s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.3s}.project-card:nth-child(4){animation-delay:.4s}.project-card:nth-child(5){animation-delay:.5s}.project-card:nth-child(6){animation-delay:.6s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.page-title{margin-bottom:1.5rem;font-size:2.5rem;font-weight:700;line-height:1.2}.blog-header{text-align:center;margin-bottom:3rem}.blog-grid{grid-template-columns:1fr;justify-content:center;gap:2rem;max-width:1200px;margin-bottom:3rem;margin-left:auto;margin-right:auto;display:grid}@media (width>=1024px){.blog-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}}.blog-card{opacity:0;background:#0a0a2380;border:1px solid #2ec4b633;border-radius:12px;transition:all .3s;animation:fadeInUp .6s forwards;position:relative;overflow:hidden;transform:translateY(30px)}.blog-card:hover{border-color:var(--teal);transform:translateY(-8px);box-shadow:0 20px 40px #2ec4b633}.blog-card-link{color:inherit;height:100%;text-decoration:none;display:block}.blog-card-image{border-radius:12px 12px 0 0;height:200px;position:relative;overflow:hidden}.blog-card-image img{transition:transform .3s}.blog-card:hover .blog-card-image img{transform:scale(1.05)}.blog-card-content{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.blog-card-meta{color:var(--teal);justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.blog-category,.blog-date{font-weight:500}.blog-category{background:#2ec4b633;border-radius:20px;padding:.25rem .75rem}.blog-card-title{color:var(--foreground);margin:0;font-size:1.5rem;font-weight:700;line-height:1.3}.title-prefix{color:var(--foreground);font-size:inherit;font-weight:inherit}.blog-card-excerpt{color:var(--text-secondary);margin:0;line-height:1.6}.blog-card-tags{flex-wrap:wrap;gap:.5rem;display:flex}.blog-tag{color:var(--orange);background:#ff9f1c33;border-radius:15px;padding:.25rem .75rem;font-size:.8rem;font-weight:500}.blog-card-footer{border-top:1px solid #2ec4b61a;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;display:flex}.read-time{color:var(--text-muted);font-size:.875rem}.read-more{color:var(--teal);font-size:.9rem;font-weight:600}.empty-state{text-align:center;color:var(--text-muted);padding:3rem}.empty-state h3{margin-bottom:.5rem;font-size:1.5rem}.blog-post-header{margin-bottom:3rem}.back-link{color:var(--cream);align-items:center;margin-bottom:1.5rem;font-weight:500;text-decoration:none;transition:color .3s;display:inline-flex}.back-link img{margin-top:18px}.back-link:hover{color:var(--orange)}.blog-post-meta{color:var(--teal);align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.9rem;display:flex}.blog-post-title{margin-bottom:1.5rem;font-size:2.5rem;font-weight:700;line-height:1.2}.blog-post-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.blog-post-content{max-width:1200px;margin:0 auto 3rem}.prose{background-color:#0a0a2380;border:1px solid #2ec4b64d;border-radius:8px;margin:2rem;padding:2rem;line-height:1.8}.prose,.prose-h1{color:var(--foreground)}.prose-h1{border-bottom:2px solid var(--teal);margin:2rem 0 1rem;padding-bottom:.5rem;font-size:2rem;font-weight:700}.prose-h2{color:var(--teal);margin:1.5rem 0 1rem;font-size:1.5rem;font-weight:700}.prose-h3{color:var(--orange);margin:1.25rem 0 .75rem;font-size:1.25rem;font-weight:700}.prose-p{margin-bottom:1rem}.prose-li,.prose-p{color:var(--text-primary)}.prose-li{margin-bottom:.5rem;list-style-position:inside}.inline-code{color:var(--teal);font-family:var(--font-mono);background:#2ec4b61a;border-radius:4px;padding:.2rem .4rem;font-size:.9em}.code-block-start{border:1px solid var(--teal);background:#011627cc;border-radius:8px;margin:1rem 0;padding:1rem;overflow-x:auto}.code-block-start code{color:var(--teal);font-family:var(--font-mono);font-size:.9rem}.blog-post-footer{border-top:1px solid #2ec4b633;padding-top:2rem}.blog-navigation{justify-content:center;display:flex}.blog-nav-links{flex-wrap:wrap;gap:1rem;display:flex}@media (width>=768px){.blog-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}}@media (width>=1024px){.blog-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.blog-card-image{height:250px}}@media (width<=768px){.blog-grid{gap:1.5rem;max-width:500px}.blog-card-content{padding:1rem}.blog-post-title{font-size:2rem}.blog-post-meta{flex-flow:wrap;align-items:center;gap:.5rem}.blog-nav-links{flex-direction:column;width:100%}.blog-nav-links .btn-primary,.blog-nav-links .btn-secondary{text-align:center}.blog-post-content{max-width:100%}.prose{margin:1rem;padding:1.5rem}}@media (width>=769px) and (width<=1024px){.blog-post-content{max-width:900px}}.blog-card:first-child{animation-delay:.1s}.blog-card:nth-child(2){animation-delay:.2s}.blog-card:nth-child(3){animation-delay:.3s}.blog-card:nth-child(4){animation-delay:.4s}.blog-card:nth-child(5){animation-delay:.5s}.blog-card:nth-child(6){animation-delay:.6s}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}