@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_473d8dc4-module__dDRDUW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_473d8dc4-module__dDRDUW__variable{--font-body:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/65c558afe41e89d6-s.113htgw8u-emy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/14e23f9b59180572-s.08.c8psu~gif9.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:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b49b0d9b851e4899-s.0yfy_qj1.2qn0.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:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2a65768255d6b625-s.p.14by5b4al-y~f.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/65c558afe41e89d6-s.113htgw8u-emy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/14e23f9b59180572-s.08.c8psu~gif9.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b49b0d9b851e4899-s.0yfy_qj1.2qn0.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:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a65768255d6b625-s.p.14by5b4al-y~f.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/65c558afe41e89d6-s.113htgw8u-emy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/14e23f9b59180572-s.08.c8psu~gif9.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b49b0d9b851e4899-s.0yfy_qj1.2qn0.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:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2a65768255d6b625-s.p.14by5b4al-y~f.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:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/65c558afe41e89d6-s.113htgw8u-emy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/14e23f9b59180572-s.08.c8psu~gif9.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:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b49b0d9b851e4899-s.0yfy_qj1.2qn0.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:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2a65768255d6b625-s.p.14by5b4al-y~f.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:Playfair Display Fallback;src:local(Times New Roman);ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.0%;size-adjust:111.26%}.playfair_display_ae998b24-module__iU7Nja__className{font-family:Playfair Display,Playfair Display Fallback;font-style:normal}.playfair_display_ae998b24-module__iU7Nja__variable{--font-display:"Playfair Display", "Playfair Display Fallback"}
:root{--bg-primary:#0a0f1c;--bg-card:#161f33;--bg-card-hover:#1c2844;--accent:#3b82f6;--accent-glow:#3b82f626;--accent-warm:#f59e0b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#94a3b814;--border-hover:#3b82f64d}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body), system-ui, sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;position:relative;overflow-x:hidden}body:after{content:"";pointer-events:none;z-index:9999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;width:100%;height:100%;position:fixed;top:0;left:0}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes spin-border{to{--border-angle:360deg}}.glow-border{z-index:0;position:relative}.glow-border:before{content:"";border-radius:inherit;background:conic-gradient(from var(--border-angle), transparent 55%, #2563eb 72%, #3b82f6 78%, #60a5fa 84%, #f59e0b 90%, #2563eb 96%, transparent 100%);z-index:-2;opacity:0;transition:opacity .4s;animation:4s linear infinite spin-border;position:absolute;inset:-2px}.glow-border:after{content:"";border-radius:inherit;background:inherit;z-index:-1;position:absolute;inset:0}.glow-border:hover:before{opacity:1}.fade-up{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(30px)}.fade-up.visible{opacity:1;transform:translateY(0)}.stagger-children .fade-up:first-child{transition-delay:0s}.stagger-children .fade-up:nth-child(2){transition-delay:.1s}.stagger-children .fade-up:nth-child(3){transition-delay:.2s}.stagger-children .fade-up:nth-child(4){transition-delay:.25s}.stagger-children .fade-up:nth-child(5){transition-delay:.3s}.stagger-children .fade-up:nth-child(6){transition-delay:.35s}nav{z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#0a0f1cd9;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-family:var(--font-display), Georgia, serif;color:var(--text-primary);font-size:1.25rem;font-weight:600;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{align-items:center;gap:2.5rem;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);letter-spacing:.02em;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .3s}.nav-links a:hover{color:var(--text-primary)}.nav-cta{background:var(--accent);border-radius:6px;padding:.5rem 1.25rem;color:#fff!important;transition:background .3s,transform .2s!important}.nav-cta:hover{background:#2563eb;transform:translateY(-1px)}.menu-btn{cursor:pointer;z-index:110;background:0 0;border:none;padding:.5rem;display:none}.menu-btn span{background:var(--text-primary);border-radius:2px;width:24px;height:2px;margin:6px 0;transition:all .3s;display:block}.menu-btn.open span:first-child{transform:rotate(45deg)translate(5px,6px)}.menu-btn.open span:nth-child(2){opacity:0}.menu-btn.open span:nth-child(3){transform:rotate(-45deg)translate(5px,-6px)}.mobile-nav{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:99;background:#0a0f1cf7;flex-direction:column;justify-content:center;align-items:center;gap:2rem;display:none;position:fixed;inset:0}.mobile-nav.open{display:flex}.mobile-nav a{color:var(--text-primary);font-size:1.5rem;font-weight:600;font-family:var(--font-display), Georgia, serif;text-decoration:none;transition:color .3s}.mobile-nav a:hover{color:var(--accent)}.hero{align-items:center;min-height:100vh;padding:7rem 2rem 3rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:600px;height:600px;position:absolute;top:-30%;right:-10%}.hero-inner{z-index:1;grid-template-columns:1.1fr .9fr;align-items:center;gap:4rem;width:100%;max-width:1200px;margin:0 auto;display:grid;position:relative}.hero h1{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;margin-bottom:1.5rem;font-size:3.5rem;font-weight:700;line-height:1.15;animation:.8s .1s both fadeInUp}.hero h1 .highlight{background:linear-gradient(135deg, var(--accent) 0%, #60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-description{color:var(--text-secondary);max-width:520px;margin-bottom:2rem;font-size:1.15rem;line-height:1.75;animation:.8s .2s both fadeInUp}.hero-buttons{gap:1rem;animation:.8s .3s both fadeInUp;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.8rem 1.6rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.btn-primary:hover{transform:translateY(-2px)}.btn-primary.glow-border{border:none}.btn-primary.glow-border:after{background:var(--accent);border-radius:8px}.btn-primary.glow-border:hover:after{background:#2563eb}.btn-secondary{background:var(--bg-card);color:var(--text-primary);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.8rem 1.6rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.btn-secondary.glow-border:after{background:var(--bg-card);border-radius:8px}.btn-secondary:hover{transform:translateY(-2px)}.hero-visual{animation:.8s .4s both fadeInUp;position:relative}.hero-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2rem;position:relative;overflow:hidden}.hero-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-warm));height:3px;position:absolute;top:0;left:0;right:0}.hero-card-header{align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.hero-card-dot{border-radius:50%;width:10px;height:10px}.hero-card-dot:first-child{background:#ef4444}.hero-card-dot:nth-child(2){background:#f59e0b}.hero-card-dot:nth-child(3){background:#22c55e}.hero-card-title{color:var(--text-muted);margin-left:auto;font-family:monospace;font-size:.75rem}.code-line{color:var(--text-secondary);padding:.3rem 0;font-family:SF Mono,Fira Code,monospace;font-size:.85rem}.code-line .keyword{color:#c084fc}.code-line .function{color:#60a5fa}.code-line .string{color:#34d399}.code-line .comment{color:var(--text-muted);font-style:italic}.code-line .operator{color:var(--accent-warm)}.typing-cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.floating-badge{background:var(--bg-card);cursor:default;border:none;border-radius:12px;align-items:center;gap:.6rem;padding:.75rem 1rem;font-size:.8rem;font-weight:500;display:flex;position:absolute;box-shadow:0 8px 32px #0000004d}.floating-badge.glow-border:after{background:var(--bg-card);border-radius:12px}.badge-icon{border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:flex}.badge-1{animation:4s ease-in-out infinite float;top:-10px;right:-20px}.badge-1 .badge-icon{background:#3b82f626}.badge-2{animation:4s ease-in-out 1s infinite float;bottom:20px;left:-30px}.badge-2 .badge-icon{background:#f59e0b26}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}section{max-width:1200px;margin:0 auto;padding:4rem 2rem}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:inline-block}.section-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;margin-bottom:.75rem;font-size:2.5rem;font-weight:700}.section-subtitle{color:var(--text-secondary);max-width:620px;margin-bottom:2.5rem;font-size:1.05rem;line-height:1.7}.about-layout{grid-template-columns:1fr auto;align-items:start;gap:4rem;display:grid}.about-text{max-width:680px}.about-text p{color:var(--text-secondary);margin-bottom:1.1rem;font-size:1.05rem;line-height:1.8}.about-text strong{color:var(--text-primary);font-weight:600}.about-photo{border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:240px;height:240px;position:relative;overflow:hidden}.about-photo img{object-fit:cover;object-position:center top;width:100%;height:100%}.projects-intro{color:var(--text-secondary);border-left:3px solid var(--accent);background:#3b82f60a;border-radius:0 8px 8px 0;max-width:620px;margin-bottom:2rem;padding:1.1rem 1.4rem;font-size:.95rem;line-height:1.7}.projects-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.project-card{background:var(--bg-card);cursor:default;border:none;border-radius:14px;transition:all .4s;overflow:visible}.project-card.glow-border:after{background:var(--bg-card);border-radius:14px;overflow:hidden}.project-card.glow-border:before{border-radius:16px}.project-card:hover{transform:translateY(-6px)}.project-preview{border-radius:14px 14px 0 0;justify-content:center;align-items:center;height:170px;display:flex;position:relative;overflow:hidden}.project-preview-inner{opacity:.9;font-size:2.5rem}.project-preview-1{background:linear-gradient(135deg,#1e3a5f 0%,#0f2744 100%)}.project-preview-2{background:linear-gradient(135deg,#2d1b4e 0%,#1a0f33 100%)}.project-preview-3{background:linear-gradient(135deg,#1b3d2f 0%,#0f2a1e 100%)}.project-status{text-transform:uppercase;letter-spacing:.05em;border-radius:100px;padding:.3rem .7rem;font-size:.7rem;font-weight:600;position:absolute;top:12px;right:12px}.status-live{color:#22c55e;background:#22c55e26;border:1px solid #22c55e33}.status-soon{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b33}.project-info{padding:1.5rem}.project-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.project-tag{color:var(--accent);background:#3b82f61a;border:1px solid #3b82f626;border-radius:4px;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.project-info h3{margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.project-info p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.skills-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.skills-grid-bottom{grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:800px;margin-top:1.5rem;margin-left:auto;margin-right:auto;display:grid}.skill-card{background:var(--bg-card);cursor:default;border:none;border-radius:14px;padding:1.75rem;transition:all .4s}.skill-card.glow-border:after{background:var(--bg-card);border-radius:14px}.skill-card.glow-border:before{border-radius:16px}.skill-card:hover{transform:translateY(-4px)}.skill-card-icon{border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:1.25rem;font-size:1.3rem;display:flex}.skill-card h3{margin-bottom:.5rem;font-size:1.05rem;font-weight:600}.skill-card p{color:var(--text-secondary);font-size:.85rem;line-height:1.6}.skill-card .tech-list{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.tech-tag{color:var(--text-muted);border:1px solid var(--border);background:#94a3b814;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.education-layout{grid-template-columns:1fr 1fr;gap:3rem;display:grid}.edu-column h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:.8rem;font-weight:700}.edu-item{background:var(--bg-card);cursor:default;border:none;border-radius:12px;align-items:center;gap:1rem;min-height:72px;margin-bottom:.6rem;padding:1.1rem 1.35rem;transition:all .3s;display:flex}.edu-item.glow-border:after{background:var(--bg-card);border-radius:12px}.edu-item.glow-border:before{border-radius:14px}.edu-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.edu-icon-emoji{font-size:1.15rem}.edu-info{flex:1;min-width:0}.edu-info h4{margin-bottom:.1rem;font-size:.88rem;font-weight:600;line-height:1.3}.edu-info p{color:var(--text-muted);font-size:.76rem;line-height:1.3}.contact-section{text-align:center;padding:4rem 2rem;position:relative}.contact-section:before{content:"";background:linear-gradient(90deg, transparent, var(--border), transparent);width:80%;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.contact-section .section-subtitle{margin-left:auto;margin-right:auto}.contact-links{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.contact-link{background:var(--bg-card);color:var(--text-primary);border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.contact-link.glow-border:after{background:var(--bg-card);border-radius:10px}.contact-link:hover{transform:translateY(-2px)}footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:1.75rem 2rem;font-size:.8rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (max-width:968px){.hero-inner{grid-template-columns:1fr;gap:3rem}.hero h1{font-size:2.5rem}.projects-grid,.skills-grid{grid-template-columns:1fr 1fr}.skills-grid-bottom{grid-template-columns:1fr 1fr;max-width:100%}.education-layout,.about-layout{grid-template-columns:1fr;gap:2rem}.about-photo{width:200px;height:200px}.nav-links{display:none}.menu-btn{display:block}.nav-right-mobile{align-items:center;gap:.75rem;display:flex}}@media (max-width:640px){.hero h1{font-size:2rem}.hero{padding:6rem 1.25rem 2rem}section{padding:3rem 1.25rem}.projects-grid,.skills-grid,.skills-grid-bottom{grid-template-columns:1fr}.hero-buttons{flex-direction:column}.contact-links{flex-direction:column;align-items:center}.about-photo{width:160px;height:160px}.section-title{font-size:2rem}.floating-badge{display:none}}.theme-toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:.35rem .5rem;font-size:1rem;line-height:1;transition:all .3s}.theme-toggle:hover{border-color:var(--border-hover);transform:scale(1.1)}.nav-right-mobile{align-items:center;gap:.75rem;display:none}[data-theme=light]{--bg-primary:#f8fafc;--bg-card:#fff;--bg-card-hover:#f1f5f9;--accent:#2563eb;--accent-glow:#2563eb1a;--accent-warm:#d97706;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border:#0f172a1f;--border-hover:#2563eb66}[data-theme=light] body:after{opacity:.015}[data-theme=light] .hero-card{border:1px solid #0f172a26;box-shadow:0 4px 24px #00000014}[data-theme=light] .floating-badge{border:1px solid #0f172a1f;box-shadow:0 4px 20px #0000001a}[data-theme=light] .skill-card,[data-theme=light] .project-card,[data-theme=light] .edu-item,[data-theme=light] .build-stack-item{border:1px solid #0f172a21;box-shadow:0 2px 8px #0000000d}[data-theme=light] .btn-secondary{border:1px solid #0f172a26}[data-theme=light] .contact-link{border:1px solid #0f172a21;box-shadow:0 2px 8px #0000000d}[data-theme=light] .tech-tag{background:#0f172a0a;border:1px solid #0f172a1a}[data-theme=light] .project-tag{background:#2563eb14;border:1px solid #2563eb33}[data-theme=light] .projects-intro{background:#2563eb0a;border-left-color:#2563eb}[data-theme=light] .theme-toggle{border:1px solid #0f172a26}[data-theme=light] nav{background:#f8fafce0;border-bottom:1px solid #0f172a14}[data-theme=light] .edu-column h3{border-bottom-color:#0f172a1a}[data-theme=light] .contact-section:before{background:linear-gradient(90deg,#0000,#0f172a1a,#0000)}[data-theme=light] footer{border-top:1px solid #0f172a14}[data-theme=light] .code-line .keyword{color:#7c3aed}[data-theme=light] .code-line .function{color:#2563eb}[data-theme=light] .code-line .string{color:#059669}[data-theme=light] .code-line .comment{color:var(--text-muted)}[data-theme=light] .code-line .operator{color:#d97706}[data-theme=light] .project-preview-1{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)}[data-theme=light] .project-preview-2{background:linear-gradient(135deg,#ede9fe 0%,#ddd6fe 100%)}[data-theme=light] .project-preview-3{background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%)}[data-theme=light] .glow-border:before{background:conic-gradient(from var(--border-angle), transparent 55%, #2563eb 72%, #3b82f6 78%, #60a5fa 84%, #d97706 90%, #2563eb 96%, transparent 100%)}[data-theme=light] .btn-primary.glow-border:after,[data-theme=light] .btn-primary{background:#2563eb}[data-theme=light] .mobile-nav{background:#f8fafcf7}[data-theme=light] .mobile-nav a{color:#0f172a}[data-theme=light] .menu-btn span{background:#0f172a}.build-story{color:var(--text-secondary)}.build-section{margin-bottom:3rem}.build-heading{font-family:var(--font-display), Georgia, serif;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:1rem;font-size:1.75rem;font-weight:700}.build-text{color:var(--text-secondary);margin-bottom:1rem;font-size:1.05rem;line-height:1.8}.build-text strong{color:var(--text-primary)}.build-stack-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.build-stack-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.build-stack-item h3{color:var(--text-primary);margin-bottom:.35rem;font-size:1rem;font-weight:600}.build-stack-item p{color:var(--text-secondary);font-size:.85rem;line-height:1.55}.build-timeline{margin-top:1.5rem}.build-step{align-items:flex-start;gap:1.25rem;margin-bottom:1.5rem;display:flex}.build-step-number{font-family:var(--font-display), Georgia, serif;color:var(--accent);text-align:center;flex-shrink:0;width:40px;font-size:1.5rem;font-weight:700;line-height:1.3}.build-step-content h3{color:var(--text-primary);margin-bottom:.25rem;font-size:1.05rem;font-weight:600}.build-step-content p{color:var(--text-secondary);font-size:.92rem;line-height:1.65}@media (max-width:640px){.build-stack-grid{grid-template-columns:1fr}}.back-to-top{background:var(--bg-card);width:46px;height:46px;color:var(--text-secondary);cursor:pointer;opacity:0;pointer-events:none;z-index:90;border:none;border-radius:12px;justify-content:center;align-items:center;font-size:1.2rem;transition:all .3s;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(20px);box-shadow:0 4px 16px #0003}.back-to-top.glow-border:after{background:var(--bg-card);border-radius:12px}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px #00000040}[data-theme=light] .back-to-top{box-shadow:0 4px 16px #00000014}[data-theme=light] .back-to-top:hover{box-shadow:0 8px 24px #0000001f}
