@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_6c099479-module__bSsQTq__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_6c099479-module__bSsQTq__variable{--font-primary:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root,[data-theme=dark]{--bg-primary:#090a0a;--bg-secondary:#0d0f0e;--bg-card:#ffffff0a;--bg-card-solid:#121413e6;--text-primary:#f5f6f1;--text-secondary:#b6bcb3;--text-muted:#6b7570;--border-color:#ffffff12;--border-color-light:#ffffff1f;--accent:#d9ff58;--accent-dim:#d9ff5814;--accent-border:#d9ff5833;--nav-bg:#090a0ab8;--shadow:#0006;--gradient-start:radial-gradient(circle at 15% 8%, #d9ff5817, transparent 24rem);--gradient-end:radial-gradient(circle at 86% 14%, #715cff1c, transparent 24rem)}[data-theme=light]{--bg-primary:#fafaf8;--bg-secondary:#f5f5f3;--bg-card:#ffffffb3;--bg-card-solid:#ffffffe6;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#8a8a8a;--border-color:#00000014;--border-color-light:#0000001f;--accent:#6a8c23;--accent-dim:#6a8c231a;--accent-border:#6a8c2340;--nav-bg:#fafaf8d9;--shadow:#00000014;--gradient-start:radial-gradient(circle at 15% 8%, #6a8c230f, transparent 24rem);--gradient-end:radial-gradient(circle at 86% 14%, #5046b414, transparent 24rem)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-primary), system-ui, sans-serif;margin:0;transition:background .3s,color .3s;overflow-x:hidden}body:before{content:"";z-index:-3;background:var(--gradient-start), var(--gradient-end), var(--bg-primary);transition:background .3s;position:fixed;inset:0}.noise{pointer-events:none;z-index:-1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox=\"0 0 220 220\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cfilter id=\"n\"%3E%3CfeTurbulence type=\"fractalNoise\" baseFrequency=\".9\" numOctaves=\"2\"/%3E%3C/filter%3E%3Crect width=\"100%25\" height=\"100%25\" filter=\"url(%23n)\"/%3E%3C/svg%3E");transition:opacity .3s;position:fixed;inset:0}[data-theme=light] .noise{opacity:.015}a{color:inherit;text-decoration:none}img{object-fit:cover}.site-nav{z-index:50;background:var(--nav-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:.7rem max(2rem,50vw - 700px);transition:background .3s,border-color .3s;display:flex;position:sticky;top:0}.site-nav strong span{color:var(--accent);transition:color .3s}.site-nav div{align-items:center;gap:1rem;display:flex}.site-nav a{color:var(--text-secondary);font-size:.8rem}.site-nav .button,.primary{background:var(--accent);color:var(--bg-primary);border-radius:999px;align-items:center;gap:.3rem;padding:.52rem .82rem;font-weight:700;transition:all .3s;display:inline-flex;box-shadow:0 0 20px #d9ff5833}.site-nav .button:hover,.primary:hover{transform:translateY(-2px);box-shadow:0 0 30px #d9ff5866}.theme-toggle{background:var(--bg-card);border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-toggle:hover{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent);transform:scale(1.05)}main{max-width:1400px;margin:auto;padding:2rem 2rem 4rem}.panel,.project-card,.timeline-card,.tool-card,.tech-panel,.contact-card{border:1px solid var(--border-color);background:linear-gradient(#ffffff0a,#ffffff05);border-radius:18px;transition:background .3s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}[data-theme=light] .panel,[data-theme=light] .project-card,[data-theme=light] .timeline-card,[data-theme=light] .tool-card,[data-theme=light] .tech-panel,[data-theme=light] .contact-card{box-shadow:0 4px 20px var(--shadow);background:linear-gradient(#ffffffe6,#ffffffb3)}.hero-bento{grid-template:"copy photo"1fr"meta meta"/1.25fr .75fr;gap:.75rem;min-height:480px;margin-bottom:3.4rem;display:grid}.hero-copy{flex-direction:column;grid-area:copy;justify-content:space-between;padding:2.5rem;display:flex}.hero-photo{box-shadow:0 0 0 1px var(--accent-border), 0 20px 50px var(--shadow);border-radius:18px;grid-area:photo;transition:box-shadow .3s;animation:6s ease-in-out infinite float;position:relative;overflow:hidden}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.hero-photo img{width:100%;height:100%;position:absolute;inset:0}.hero-photo:after{content:"";background:linear-gradient(45deg, var(--accent-border), transparent, var(--accent-dim));opacity:0;pointer-events:none;border-radius:20px;transition:opacity .3s;position:absolute;inset:-2px}.hero-photo:hover:after{opacity:1}.hero-meta{grid-area:meta;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.8rem;display:grid}.hero-meta>div{border:1px solid var(--border-color);text-align:center;border-radius:12px;padding:.8rem;transition:all .3s}.hero-meta>div:hover{border-color:var(--accent-border);background:var(--accent-dim);transform:translateY(-2px)}.hero-meta strong,.hero-meta small{display:block}.hero-meta strong{font-size:1.25rem;font-weight:700}.hero-meta small{color:#9ea49b;margin-top:.25rem;font-size:.62rem}.hero h1{letter-spacing:-.04em;margin:0 0 1.5rem;font-size:clamp(2.25rem,4.8vw,3.95rem);line-height:1.1;position:relative}.hero h1:before{content:"";background:radial-gradient(ellipse, var(--accent-dim) 0%, transparent 70%);pointer-events:none;z-index:-1;width:300px;height:100px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.hero h1 span{color:#0000;-webkit-text-stroke:1px var(--text-muted)}.hero p{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.88rem;line-height:1.75}.hero-copy>small{color:var(--text-muted);border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1rem;font-size:.7rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.secondary{border:1px solid var(--border-color-light);border-radius:999px;align-items:center;gap:.3rem;padding:.62rem .9rem;font-size:.8rem;transition:all .2s;display:inline-flex}.cv-btn{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent)}.cv-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.badge{color:var(--accent);border:1px solid var(--accent-border);border-radius:999px;margin-bottom:1.25rem;padding:.3rem .54rem;font-size:.68rem;transition:all .3s;display:inline-block}.typing-text{color:var(--accent);min-width:8ch;font-weight:600;display:inline-block}.typing-cursor{color:var(--accent);margin-left:2px;font-weight:300;animation:.8s infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.typing-cursor{animation:.8s step-end infinite blink}.photo-overlay{background:var(--bg-card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-color-light);border-radius:13px;padding:.68rem .75rem;transition:background .3s,border-color .3s;position:absolute;bottom:.7rem;left:.7rem;right:.7rem}.photo-overlay strong,.photo-overlay small{display:block}.photo-overlay small{color:var(--text-secondary);font-size:.68rem}.section-head{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem;padding-bottom:1rem;transition:border-color .3s;display:flex}.section-head h2{letter-spacing:-.04em;margin:0;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:600}.section-head p{max-width:340px;color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.5}.section-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.4rem;padding-left:1rem;font-size:.6rem;font-weight:600;transition:color .3s;display:block;position:relative}.section-kicker:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;transition:background .3s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.projects-bento{grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:4rem;display:grid}.project-card{transform-style:preserve-3d;border-radius:16px;flex-direction:column;transition:transform .3s,box-shadow .3s;display:flex}.project-card:hover{box-shadow:0 20px 40px var(--shadow);transform:translateY(-4px)}.project-visual{border-radius:16px 16px 0 0;flex-shrink:0;position:relative;overflow:hidden}.project-visual img{object-fit:cover;width:100%;max-height:200px;transition:transform .4s;display:block}.project-card:hover .project-visual img{transform:scale(1.03)}.project-badge,.project-index{position:absolute}.project-badge{background:var(--bg-card-solid);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.02em;border-radius:999px;padding:.3rem .6rem;font-size:.6rem;font-weight:500;top:.75rem;left:.75rem}.project-index{background:var(--accent);width:26px;height:26px;color:var(--bg-primary);border-radius:50%;place-items:center;font-size:.6rem;font-weight:700;transition:background .3s,color .3s;display:grid;top:.75rem;right:.75rem}.project-content{background:linear-gradient(180deg, var(--bg-card), transparent);flex-direction:column;flex:1;padding:1rem;display:flex}.project-content h3{letter-spacing:-.01em;margin:0 0 .4rem;font-size:.9rem;font-weight:600}.project-content p{color:var(--text-muted);margin:0 0 .75rem;font-size:.72rem;line-height:1.55}.project-meta{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;display:grid}.project-meta>div{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:8px;padding:.45rem .35rem;transition:all .2s}.project-meta small,.project-meta strong{display:block}.project-meta small{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem;font-size:.52rem}.project-meta strong{color:var(--text-secondary);font-size:.65rem;font-weight:600}.chips{flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.5rem;display:flex}.chips span{background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--text-secondary);border-radius:999px;padding:.2rem .5rem;font-size:.58rem;transition:all .2s}.chips span:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.project-links{border-top:1px solid var(--border-color);gap:.6rem;margin-top:1rem;padding-top:.85rem;display:flex}.project-link.github{background:var(--bg-card);border:1px solid var(--border-color-light);color:var(--text-secondary)}.project-link.github:hover{background:var(--bg-card);border-color:var(--accent-border);color:var(--accent)}.project-link.preview{background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent)}.project-link.preview:hover{background:var(--accent-dim);border-color:var(--accent)}.project-link.private{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:not-allowed}.about-bento{grid-template:"photo intro""photo cards"1fr/.72fr 1.28fr;gap:1rem;margin-bottom:4rem;display:grid}.about-photo{flex-direction:column;grid-area:photo;padding:.85rem;display:flex}.about-photo img{aspect-ratio:1;object-fit:cover;border-radius:14px;flex:1;width:100%}.profile-row{justify-content:space-between;align-items:center;margin-top:.75rem;padding:0 .1rem;display:flex}.profile-row strong,.profile-row small{display:block}.profile-row small{color:var(--text-muted);font-size:.62rem}.about-intro{flex-direction:column;grid-area:intro;justify-content:center;padding:1.25rem 1.5rem;display:flex}.about-intro h2{letter-spacing:-.03em;margin:.5rem 0 .6rem;font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.3}.about-intro p,.about-card p{color:var(--text-muted);font-size:.78rem;line-height:1.65}.about-cards{grid-area:cards;grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.about-card{flex-direction:column;padding:1rem;display:flex}.about-card h3{color:var(--text-secondary);margin:.4rem 0 .35rem;font-size:.82rem;font-weight:600}.about-card p{flex:1;font-size:.72rem}.about-card footer{color:var(--text-muted);letter-spacing:.02em;margin-top:auto;padding-top:.6rem;font-size:.6rem}.tech-bento{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:4rem;display:grid}.tech-panel{min-height:300px;padding:1.25rem;position:relative}.tech-copy{z-index:2;max-width:290px;position:relative}.tech-copy h3{margin:.35rem 0;font-size:.98rem}.tech-copy p{color:#9ea49b;font-size:.72rem}.tech-icons-panel{margin-bottom:2.5rem}.tech-cloud-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:2.5rem 2rem;display:flex}.tech-icon-item{background:var(--bg-card-solid);border:1px solid var(--border-color);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;transition:all .2s;display:flex;position:relative}.tech-icon-item:hover{background:var(--accent-dim);border-color:var(--accent-border);box-shadow:0 8px 24px var(--shadow);transform:translateY(-2px)}.tech-icon-item img{object-fit:contain;filter:brightness();width:28px;height:28px;transition:filter .2s}.tech-icon-item:hover img{filter:brightness(1.1)}.tech-tooltip{background:var(--bg-secondary);color:var(--accent);white-space:nowrap;opacity:0;pointer-events:none;border:1px solid var(--border-color);border-radius:6px;padding:.25rem .5rem;font-size:.58rem;font-weight:500;transition:opacity .2s;position:absolute;bottom:-32px;left:50%;transform:translate(-50%)}.tech-icon-item:hover .tech-tooltip{opacity:1}.tool-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:5rem;display:grid}.tool-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;flex-direction:column;padding:1.25rem;transition:all .2s;display:flex}.tool-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.tool-card h3{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin:0 0 .75rem;padding-bottom:.5rem;font-size:.82rem;font-weight:600}.tool-card .chips{margin-top:auto}.timeline{gap:.75rem;padding-top:2rem;display:grid}.timeline-card{border:1px solid var(--border-color);border-radius:14px;grid-template-columns:140px 1fr;align-items:start;gap:1.5rem;padding:1.25rem;transition:all .2s;display:grid}.timeline-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.timeline-header{flex-direction:column;gap:.5rem;display:flex}.timeline-header time{color:var(--accent);letter-spacing:.02em;font-size:.62rem;font-weight:500;display:block}.exp-type{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .45rem;font-size:.55rem;font-weight:500;display:inline-flex}.exp-type-work{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}.exp-type-freelance{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color-light)}.exp-type-education{color:#9b8aff;background:#715cff1a;border:1px solid #715cff33}.timeline-content{flex-direction:column;gap:.4rem;display:flex}.timeline-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.timeline-title-info{flex-direction:column;gap:.25rem;display:flex}.timeline-card h3{color:var(--text-primary);margin:0;font-size:.9rem;font-weight:600}.timeline-location{color:var(--text-muted);align-items:center;gap:.25rem;font-size:.6rem;display:inline-flex}.company-logo{border:1px solid var(--border-color);width:52px;height:52px;box-shadow:0 2px 8px var(--shadow);background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:8px;display:flex}.company-logo img{object-fit:contain;width:36px;height:36px}.timeline-company{color:var(--text-muted);margin:0;font-size:.75rem;font-weight:500}.timeline-description{color:var(--text-muted);margin:.25rem 0 0;font-size:.72rem;line-height:1.6}.timeline-achievements{flex-direction:column;gap:.25rem;margin:.5rem 0 0;padding-left:1rem;display:flex}.timeline-achievements li{color:var(--text-muted);font-size:.68rem;line-height:1.5;position:relative}.timeline-achievements li::marker{color:var(--accent)}.timeline-stack{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.timeline-tech{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);z-index:1;border-radius:10px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.62rem;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.timeline-tech:hover{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent);z-index:10}.tech-badge{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.tech-badge img{object-fit:contain;width:100%;height:100%}.tech-badge-text{font-size:inherit}.contact-wrap{max-width:1400px;margin:0 auto 3.5rem;padding:0 1rem}.contact-card{background:radial-gradient(circle at 90% 0%, var(--accent-dim), transparent 30%), var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:2rem 2.5rem;transition:background .3s,border-color .3s}.contact-card h2{letter-spacing:-.04em;margin:0 0 .6rem;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:600}.contact-card p{color:var(--text-muted);margin:0 0 1.25rem;font-size:.8rem}.contact-links{flex-wrap:wrap;gap:.75rem;display:flex}.contact-links a{border:1px solid var(--border-color-light);color:var(--text-secondary);border-radius:999px;padding:.6rem 1rem;font-size:.75rem;transition:all .2s}.contact-links a:hover{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent)}.footer{max-width:1400px;margin:0 auto;padding:4rem 1rem 2rem}.footer-top{grid-template-columns:1.2fr 1.8fr;gap:4rem;margin-bottom:3rem;display:grid}.footer-brand{max-width:280px}.footer-brand strong{margin-bottom:.75rem;font-size:1.25rem;font-weight:700;display:block}.footer-brand strong span{color:var(--accent)}.footer-brand p{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.6}.footer-nav{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.footer-nav-group{flex-direction:column;gap:.6rem;display:flex}.footer-nav-group h4{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 .5rem;font-size:.7rem;font-weight:600}.footer-nav-group a,.footer-nav-group span{color:var(--text-muted);font-size:.8rem;text-decoration:none;transition:color .2s}.footer-nav-group a:hover{color:var(--text-primary)}.footer-contact-item{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.78rem;display:flex}.footer-divider{margin-bottom:2rem;position:relative}.footer-accent-line{background:linear-gradient(90deg, transparent 0%, var(--accent-border) 20%, var(--accent) 50%, var(--accent-border) 80%, transparent 100%);height:1px;position:relative}.footer-accent-line:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.footer-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-copyright{color:var(--text-muted);margin:0;font-size:.72rem}.footer-social{gap:.5rem;display:flex}.social-link{background:var(--bg-card);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-muted);border-radius:10px;justify-content:center;align-items:center;text-decoration:none;transition:all .25s;display:flex}.social-link:hover{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent);transform:translateY(-2px)}@media (max-width:900px){.footer-top{grid-template-columns:1fr;gap:2.5rem}.footer-brand{max-width:none}.footer-nav{grid-template-columns:repeat(3,1fr)}}@media (max-width:650px){.footer{padding:3rem 1rem 1.5rem}.footer-nav{grid-template-columns:1fr 1fr;gap:1.5rem}.footer-bottom{text-align:center;flex-direction:column}}@media (max-width:900px){.hero-bento{grid-template-columns:1fr;grid-template-areas:"copy""photo""meta";min-height:auto}.hero-photo{min-height:280px}.projects-bento{grid-template-columns:1fr}.about-bento{grid-template-columns:1fr;grid-template-areas:"photo""intro""cards";min-height:auto}.about-photo{max-width:300px}.tech-bento{grid-template-columns:1fr}.tech-panel{min-height:280px}.tech-icons-grid{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(5,1fr)}.tool-grid{grid-template-columns:repeat(2,1fr)}.site-nav div a:not(.button){display:none}.section-head{flex-direction:column;align-items:flex-start}.timeline-card{grid-template-columns:1fr;gap:.75rem}.timeline-header{flex-direction:row;justify-content:space-between;align-items:center}}@media (max-width:650px){.hero-meta{grid-template-columns:1fr}.hero-meta>div{text-align:left;justify-content:space-between;align-items:center;display:flex}.hero-meta strong{font-size:1.1rem}.project-meta,.about-cards,.tool-grid{grid-template-columns:1fr}.hero h1{font-size:2.25rem}.tech-panel{min-height:320px}.tech-icons-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(4,1fr)}.tech-cloud-container{gap:.75rem;padding:1.5rem 1rem}.tech-icon-item{width:48px;height:48px}.tech-icon-item img{width:24px;height:24px}.contact-links{flex-wrap:wrap}.contact-links a{text-align:center;flex:1;min-width:100px}.project-links{flex-wrap:wrap}.project-link{flex:1;justify-content:center;min-width:100px}.timeline-title-row{flex-direction:column;align-items:flex-start;gap:.25rem}.timeline-stack{gap:.25rem}.timeline-tech{font-size:.52rem}.projects-grid{grid-template-columns:1fr!important}.filters{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.75rem}.stats-grid{grid-template-columns:repeat(2,1fr)}}.projects-page{max-width:1400px;margin:0 auto;padding:0 2rem}.nav-logo{text-decoration:none}.page-header{text-align:center;padding:6rem 0 4rem}.back-link{color:#d9ff58;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.back-link:hover{color:var(--text-primary);transform:translate(-4px)}.page-title{letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(2.5rem,5vw,4rem);font-weight:800}.gradient-text{color:var(--accent)}.page-subtitle{color:var(--text-muted);max-width:600px;margin:0 auto;font-size:1rem;line-height:1.6}.filters-section{padding:2rem 0 3rem}.filters{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.filter-btn{border:1px solid var(--border-color-light);background:var(--bg-card);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.65rem 1.25rem;font-size:.82rem;font-weight:500;transition:all .25s;display:inline-flex}.filter-btn:hover{background:var(--bg-card);border-color:var(--accent-border);color:var(--text-primary)}.filter-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);font-weight:600}.projects-section{padding-bottom:4rem}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.5rem;display:grid}.all-project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;transition:all .3s;overflow:hidden}.all-project-card:hover{box-shadow:0 20px 40px var(--shadow), 0 0 40px var(--accent-dim);border-color:var(--accent-border);transform:translateY(-6px)}.project-image-wrapper{width:100%;height:200px;position:relative;overflow:hidden}.project-overlay{background:linear-gradient(to bottom, transparent 50%, var(--bg-primary));opacity:0;transition:opacity .3s;position:absolute;inset:0}.all-project-card:hover .project-overlay{opacity:1}.project-content{padding:1.25rem}.project-title{color:var(--text-primary);margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.project-description{color:var(--text-muted);margin:0 0 1rem;font-size:.78rem;line-height:1.6}.project-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.project-tag{border-radius:999px;padding:.2rem .6rem;font-size:.65rem;font-weight:500}.project-links{flex-wrap:wrap;gap:.75rem;display:flex}.project-link{border-radius:10px;align-items:center;gap:.35rem;padding:.5rem 1rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.project-link.primary{background:var(--accent);color:var(--bg-primary);border:1px solid var(--accent)}.project-link.primary:hover{box-shadow:0 4px 16px var(--shadow);transform:translateY(-2px)}.project-link.secondary{background:var(--bg-card);border:1px solid var(--border-color-light);color:var(--text-secondary)}.project-link.secondary:hover{background:var(--bg-card);border-color:var(--accent-border);color:var(--text-primary)}.project-link.disabled{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:not-allowed}.stats-section{border-top:1px solid var(--border-color);text-align:center;padding:4rem 0}.stats-title{letter-spacing:-.03em;margin:0 0 2rem;font-size:2rem;font-weight:700}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:800px;margin:0 auto;display:grid}.stat-item{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:16px;padding:1.5rem;transition:all .3s}.stat-item:hover{border-color:var(--accent-border)}.stat-number{color:var(--accent);font-size:2.5rem;font-weight:800;display:block}.stat-label{color:var(--text-muted);margin-top:.5rem;font-size:.8rem;display:block}.view-all-projects{justify-content:center;margin-top:2.5rem;display:flex}.view-all-btn{border:1px solid var(--accent-border);background:var(--accent-dim);color:var(--accent);border-radius:999px;align-items:center;gap:.5rem;padding:.85rem 1.75rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex}.view-all-btn:hover{background:var(--accent-dim);border-color:var(--accent);box-shadow:0 8px 24px var(--shadow);transform:translateY(-2px)}.cert-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;display:grid}.cert-card-mini{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;transition:all .2s;overflow:hidden}.cert-card-mini:hover{border-color:var(--accent-border);box-shadow:0 8px 24px var(--shadow);transform:translateY(-2px)}.cert-image-container{width:100%;height:120px;position:relative;overflow:hidden}.cert-thumb{object-fit:cover;width:100%;height:100%;transition:transform .3s}.cert-card-mini:hover .cert-thumb{transform:scale(1.05)}.cert-preview-overlay{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;justify-content:center;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;transition:opacity .2s;display:flex;position:absolute;inset:0}.cert-card-mini:hover .cert-preview-overlay{opacity:1}.cert-preview-overlay:hover{background:#000000b3}.cert-mini-info{padding:.75rem}.cert-mini-info h4{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0 0 .25rem;font-size:.8rem;font-weight:600;overflow:hidden}.cert-mini-info p{color:var(--text-muted);margin:0;font-size:.7rem}@media (max-width:900px){.cert-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:650px){.cert-grid{grid-template-columns:1fr}}
