@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Roboto+Mono:wght@400;500;700&display=swap";
@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/88731e1a74492905-s.0q2063htaeirl.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/861011d7404b02f6-s.0d9wz4v27vhhi.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3381337b621a9a6a-s.1rocwc0_3n-7e.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5413d6e6d8960ee4-s.24rqa-df9e8h5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0951afe60dbf5d36-s.0pq_2k203_b3q.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/97e7b204180d1274-s.3621_6y7338x-.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:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b8b552e8609c5636-s.p.1mao1hin7sitq.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:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/88731e1a74492905-s.0q2063htaeirl.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/861011d7404b02f6-s.0d9wz4v27vhhi.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3381337b621a9a6a-s.1rocwc0_3n-7e.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5413d6e6d8960ee4-s.24rqa-df9e8h5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0951afe60dbf5d36-s.0pq_2k203_b3q.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/97e7b204180d1274-s.3621_6y7338x-.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:Fira Code;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b8b552e8609c5636-s.p.1mao1hin7sitq.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:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/88731e1a74492905-s.0q2063htaeirl.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/861011d7404b02f6-s.0d9wz4v27vhhi.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3381337b621a9a6a-s.1rocwc0_3n-7e.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5413d6e6d8960ee4-s.24rqa-df9e8h5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0951afe60dbf5d36-s.0pq_2k203_b3q.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/97e7b204180d1274-s.3621_6y7338x-.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:Fira Code;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b8b552e8609c5636-s.p.1mao1hin7sitq.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:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/88731e1a74492905-s.0q2063htaeirl.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/861011d7404b02f6-s.0d9wz4v27vhhi.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3381337b621a9a6a-s.1rocwc0_3n-7e.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5413d6e6d8960ee4-s.24rqa-df9e8h5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0951afe60dbf5d36-s.0pq_2k203_b3q.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/97e7b204180d1274-s.3621_6y7338x-.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:Fira Code;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8b552e8609c5636-s.p.1mao1hin7sitq.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:Fira Code Fallback;src:local(Arial);ascent-override:73.56%;descent-override:23.92%;line-gap-override:0.0%;size-adjust:134.59%}.fira_code_20e08cc3-module__ekrcUW__className{font-family:Fira Code,Fira Code Fallback;font-style:normal}.fira_code_20e08cc3-module__ekrcUW__variable{--font-fira-code:"Fira Code", "Fira Code Fallback"}
@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4a439e1ba971da1a-s.26nafy4isrpsz.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b3b0afff8ab38d95-s.0a68ck1yt_ak5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12ef0642bbc5f5f-s.2sp_sjs-a2mdv.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83a6e70a3a81dd9f-s.3ec-vq27dq98f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99ac5753282bcf05-s.1czhp68pnx2kt.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:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2f13ad8e538108e0-s.p.2opg_g5lzx1nr.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:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/4a439e1ba971da1a-s.26nafy4isrpsz.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b3b0afff8ab38d95-s.0a68ck1yt_ak5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b12ef0642bbc5f5f-s.2sp_sjs-a2mdv.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83a6e70a3a81dd9f-s.3ec-vq27dq98f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/99ac5753282bcf05-s.1czhp68pnx2kt.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:Roboto Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2f13ad8e538108e0-s.p.2opg_g5lzx1nr.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:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/4a439e1ba971da1a-s.26nafy4isrpsz.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b3b0afff8ab38d95-s.0a68ck1yt_ak5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b12ef0642bbc5f5f-s.2sp_sjs-a2mdv.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/83a6e70a3a81dd9f-s.3ec-vq27dq98f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/99ac5753282bcf05-s.1czhp68pnx2kt.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:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2f13ad8e538108e0-s.p.2opg_g5lzx1nr.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:Roboto Mono Fallback;src:local(Arial);ascent-override:77.84%;descent-override:20.13%;line-gap-override:0.0%;size-adjust:134.61%}.roboto_mono_53c63de8-module__9JYkxa__className{font-family:Roboto Mono,Roboto Mono Fallback;font-style:normal}.roboto_mono_53c63de8-module__9JYkxa__variable{--font-roboto-mono:"Roboto Mono", "Roboto Mono Fallback"}
:root{--bg-dark:#f8f9fa;--bg-light:#fff;--bg-page:#f8f9fa;--bg-card:#fff;--bg-card-border:#00000014;--bg-sidebar:#f8f9fa;--text-main:#111827;--text-muted:#4b5563;--accent:#059669;--accent-tint:#0596691a;--font-mono:"Fira Code", monospace;--font-sans:"Roboto Mono", monospace}[data-theme=dark]{--bg-dark:#0a0f0d;--bg-light:#0f172a;--bg-page:#0a0f0d;--bg-card:#0f172a;--bg-card-border:#ffffff1a;--bg-sidebar:#0a0f0d;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#10b981;--accent-tint:#10b98126}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;width:100%}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-main);width:100%;min-height:100vh;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}::selection{background-color:var(--accent-tint);color:var(--accent)}.matrix-bg{z-index:-1;opacity:.12;pointer-events:none;width:100vw;height:100vh;transition:opacity .3s;position:fixed;top:0;left:0}[data-theme=dark] .matrix-bg{opacity:.18}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--bg-card-border);z-index:100;flex-direction:column;justify-content:space-between;align-items:center;width:80px;height:100vh;padding:2rem 0;display:flex;position:fixed;top:0;left:0}.brand{color:var(--accent);font-size:1.5rem;font-family:var(--font-mono);font-weight:700}.nav-links{flex-direction:column;gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text-muted);justify-content:center;align-items:center;transition:color .3s,transform .3s;display:flex}.nav-links a:hover,.nav-links a.active{color:var(--accent);transform:translateY(-3px)}.socials{flex-direction:column;align-items:center;gap:1.25rem;display:flex}.socials a{color:var(--text-muted);transition:color .3s}.socials a:hover{color:var(--accent)}.theme-toggle-btn{border:1px solid var(--bg-card-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;transition:all .3s;display:flex}.theme-toggle-btn:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.1)}.content{flex:1;max-width:1200px;margin-left:80px;padding:0 10%}.section{flex-direction:column;justify-content:center;min-height:100vh;padding:100px 0;display:flex}.highlight{color:var(--accent)}.prefix{color:var(--accent);font-family:var(--font-mono);font-size:1.2rem;font-weight:400}.section-title{align-items:center;margin-bottom:40px;display:flex}.section-title h2{color:var(--text-main);align-items:baseline;gap:10px;font-size:2rem;display:flex}.section-title .line{background-color:var(--bg-card-border);flex:1;max-width:300px;height:1px;margin-left:20px}.text-center{text-align:center}.mb-1{margin-bottom:1rem}.mt-4{margin-top:2rem}.btn{font-family:var(--font-mono);cursor:pointer;border-radius:4px;padding:1rem 1.75rem;font-size:.9rem;text-decoration:none;transition:all .25s cubic-bezier(.645,.045,.355,1);display:inline-block}.btn-primary{color:var(--accent);border:1px solid var(--accent);background-color:#0000}.btn-primary:hover{background-color:var(--accent-tint);box-shadow:4px 4px 0 0 var(--accent);transform:translate(-4px,-4px)}.btn-outline{color:var(--text-main);border:1px solid var(--text-muted)}.btn-outline:hover{border-color:var(--text-main)}.terminal-window{background-color:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:8px;width:100%;max-width:700px;margin-bottom:3rem;overflow:hidden;box-shadow:0 10px 30px -15px #0000001a}.terminal-header{border-bottom:1px solid var(--bg-card-border);background-color:#00000008;align-items:center;padding:12px 16px;display:flex;position:relative}.buttons{gap:8px;display:flex}.buttons span{border-radius:50%;width:12px;height:12px}.close{background-color:#ff5f56}.minimize{background-color:#ffbd2e}.maximize{background-color:#27c93f}.title{text-align:center;color:var(--text-muted);font-size:.85rem;font-family:var(--font-mono);flex:1}.terminal-body{font-family:var(--font-mono);color:var(--text-main);min-height:150px;padding:24px;font-size:.95rem;line-height:1.8}.command{color:var(--accent);font-family:var(--font-mono);font-weight:500}.output{color:var(--text-muted);font-family:var(--font-mono);margin-bottom:15px}.cursor{background-color:var(--accent);vertical-align:middle;width:10px;height:1.2em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-info h1{color:var(--text-main);margin-bottom:1rem;font-size:4rem}.hero-info p{color:var(--text-muted);max-width:540px;margin-bottom:2.5rem;font-size:1.2rem}.actions{gap:1rem;display:flex}.fade-in{opacity:0;animation:1s forwards fadeIn;transform:translateY(20px)}.delay-2{animation-delay:1.5s}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}}.about-content{grid-template-columns:3fr 2fr;gap:50px;display:grid}.text{color:var(--text-muted)}.text p{margin-bottom:15px}.skills-list{grid-template-columns:repeat(2,minmax(140px,200px));gap:0 10px;margin:20px 0 0;padding:0;list-style:none;display:grid;overflow:hidden}.skills-list li{font-family:var(--font-mono);margin-bottom:10px;padding-left:20px;font-size:.9rem;position:relative}.skills-list li:before{content:"▹";color:var(--accent);position:absolute;left:0}.image-wrapper{max-width:300px;position:relative}.image-border{background-color:var(--accent);border-radius:4px;position:relative}.image-border img{mix-blend-mode:multiply;filter:grayscale()contrast();border-radius:4px;width:100%;transition:all .3s;display:block}.image-border:before{content:"";border:2px solid var(--accent);z-index:-1;border-radius:4px;width:100%;height:100%;transition:all .3s;display:block;position:absolute;top:20px;left:20px}.image-border:hover img{mix-blend-mode:normal;filter:none}.image-border:hover:before{top:10px;left:10px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.project-card{background-color:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:4px;flex-direction:column;justify-content:space-between;height:330px;padding:2rem 1.75rem;transition:transform .3s,box-shadow .3s;display:flex}.project-card:hover{transform:translateY(-7px);box-shadow:0 15px 30px #0000001a}.project-overline{color:var(--accent);font-family:var(--font-mono);margin-bottom:8px;font-size:.8rem}.project-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:12px;font-size:1.4rem;overflow:hidden}.project-title button,.project-title a{color:var(--text-main);font-weight:700;text-decoration:none;transition:color .3s}.project-title button:hover,.project-title a:hover{color:var(--accent)}.project-description{color:var(--text-muted);margin-bottom:15px;font-size:.9rem;line-height:1.6}.project-description p{-webkit-line-clamp:4;text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-footer-wrapper{margin-top:auto}.project-tech-list{font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;gap:15px;margin-bottom:20px;font-size:.8rem;list-style:none;display:flex}.project-links{gap:15px;display:flex}.project-links a{color:var(--text-main);transition:color .3s}.project-links a:hover{color:var(--accent)}.contact-title{color:var(--text-main);margin-bottom:1rem;font-size:3rem}.contact-desc{color:var(--text-muted);max-width:600px;margin:0 auto}.footer{text-align:center;font-family:var(--font-mono);color:var(--text-muted);margin-top:3rem;padding:20px;font-size:.8rem}.markdown-body h1,.markdown-body h2{color:var(--text-main);margin-top:1.5em;margin-bottom:.5em}.markdown-body p{margin-bottom:1em}.markdown-body ul{margin-bottom:1em;padding-left:20px;list-style-type:disc}.markdown-body a{color:var(--accent);text-decoration:underline}@media (max-width:768px){.sidebar{border-right:none;border-top:1px solid var(--bg-card-border);flex-direction:row;width:100%;height:60px;padding:0 20px;top:auto;bottom:0}.nav-links,.socials{flex-direction:row}.content{margin-bottom:60px;margin-left:0;padding:0 5%}.about-content{grid-template-columns:1fr}.hero-info h1{font-size:3rem}}.contact-card:hover div{transform:translateY(-5px);border-color:var(--accent)!important}
