:root{--bg:#f5f4f0;--bg-dark:#141416;--foreground:#09090b;--foreground-muted:#52525b;--foreground-light:#71717a;--card-light:#fff;--card-dark:#18181b;--card-dark-hover:#202026;--border-light:#00000014;--border-dark:#ffffff17;--border-dark-hover:#ffffff38;--accent-red:#e62429;--accent-red-ring:#e6242940;--accent-red-glow:#e6242999;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--header-h:60px;--footer-h:65px;--container-max:1200px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-body);background:var(--bg);color:var(--foreground);flex-direction:column;min-height:100dvh;display:flex;overflow-x:clip}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{opacity:0;transition:opacity .3s var(--ease-out)}body.loaded{opacity:1}.lp-logo{align-items:center;transition:opacity .2s;display:inline-flex}.lp-logo:hover{opacity:.75}.lp-logo-img{object-fit:contain;width:auto;height:20px;display:block}.lp-nav{align-items:center;gap:clamp(1.2rem,2.5vw,2.2rem);display:flex}.lp-nav-link{font-family:var(--font-body);color:#4a4a4a;letter-spacing:-.01em;font-size:.925rem;font-weight:600;text-decoration:none;transition:color .2s}.lp-nav-link.active,.lp-nav-link:hover{color:#111;font-weight:600}.dev-deck{width:100%;position:relative}.dev-body-card{z-index:20;background:var(--bg-dark);border-top:1px solid #ffffff1f;border-radius:0;width:100%;position:relative;overflow:hidden;box-shadow:0 -16px 48px #00000038}.dev-container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 clamp(1.75rem,5.5vw,4.5rem)}.dev-section{scroll-margin-top:calc(var(--header-h,60px) + 16px);padding:clamp(2.5rem,4vh,4rem) 0;position:relative}.dev-section-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:clamp(1.25rem,2.5vh,2rem);display:flex}.dev-section-badge{border:1px solid var(--border-light);border-radius:var(--radius-full);font-family:var(--font-body);color:#222;background:#0000000d;align-items:center;gap:.5rem;margin-bottom:.65rem;padding:.3rem .8rem;font-size:.78rem;font-weight:600;line-height:1;display:inline-flex}.badge-dot{background:var(--accent-red);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-red-ring);border-radius:50%;flex-shrink:0;display:inline-block}.dev-section-heading{font-family:var(--font-body);letter-spacing:-.035em;color:var(--foreground);margin-bottom:.5rem;font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.15}.dev-section-sub{color:var(--foreground-muted);max-width:580px;margin:0 auto;font-size:clamp(.85rem,1.05vw,.95rem);line-height:1.55}.dev-projects .dev-section-badge,.dev-skills .dev-section-badge,.dev-achievements .dev-section-badge{color:#fff;background:#ffffff12;border-color:#ffffff1f}.dev-projects .badge-dot,.dev-skills .badge-dot,.dev-achievements .badge-dot{background:var(--accent-red);box-shadow:0 0 0 3px #e624294d}.dev-projects .dev-section-heading,.dev-skills .dev-section-heading,.dev-achievements .dev-section-heading{color:#fff}.dev-projects .dev-section-sub,.dev-skills .dev-section-sub,.dev-achievements .dev-section-sub{color:#ffffffa6}.reveal,.reveal.visible{opacity:1;transform:none}.dev-hero{height:100dvh;min-height:100dvh;padding-top:var(--header-h);background:var(--bg);z-index:10;align-items:center;display:flex;position:sticky;top:0;overflow:hidden}.dev-hero-inner{width:100%;height:calc(100dvh - var(--header-h));min-height:calc(100dvh - var(--header-h));z-index:1;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;display:grid;position:relative}.dev-hero-left{z-index:10;flex-direction:column;justify-content:center;align-items:flex-start;padding:2rem 0;display:flex;position:relative}.dev-hero-badge{border:1px solid var(--border-light);border-radius:var(--radius-full);font-family:var(--font-body);color:var(--foreground);background:#0000000a;align-items:center;gap:.5rem;margin-bottom:1.4rem;padding:.35rem .85rem;font-size:.78rem;font-weight:600;display:inline-flex}.pulse-dot{background:var(--accent-red);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;position:relative;box-shadow:0 0 6px #e6242959}.pulse-dot:after{content:"";background:var(--accent-red-glow);border-radius:50%;animation:2.2s ease-in-out infinite pulseDot;position:absolute;inset:-1.5px}@keyframes pulseDot{0%{opacity:.7;transform:scale(.95)}50%{opacity:.15;transform:scale(1.4)}to{opacity:.7;transform:scale(.95)}}.dev-hero-heading{font-family:var(--font-body);letter-spacing:-.035em;color:var(--foreground);white-space:nowrap;margin-bottom:.6rem;font-size:clamp(2.4rem,4.4vw,3.8rem);font-weight:800;line-height:1.1}.dev-hero-role{color:var(--foreground-muted);letter-spacing:-.015em;margin-bottom:1.1rem;font-size:clamp(1.05rem,1.6vw,1.25rem);font-weight:600}.dev-hero-bio{color:#52525b;max-width:490px;margin-bottom:2rem;font-size:.95rem;line-height:1.65}.dev-hero-cta{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.btn-hire{color:#fff;font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-xs);transition:all .2s var(--ease-out);background:#000;border:1px solid #000;justify-content:center;align-items:center;padding:.75rem 1.6rem;font-size:.76rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:none!important}.btn-hire:hover{color:#fff;background:#27272a;border-color:#27272a}.btn-outline{color:#000;font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-xs);transition:all .2s var(--ease-out);background:0 0;border:1px solid #00000038;justify-content:center;align-items:center;padding:.75rem 1.6rem;font-size:.76rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:none!important}.btn-outline:hover{color:#000;background:#0000000d;border-color:#000}.dev-hero-right{pointer-events:none;justify-content:center;align-self:stretch;align-items:flex-end;height:100%;display:flex;position:relative;overflow:visible}.dev-hero-photo{height:100%;max-height:calc(100dvh - var(--header-h));object-fit:contain;object-position:bottom center;filter:grayscale();width:auto;max-width:100%;display:block}.dev-projects{background:var(--bg-dark);color:#fff;flex-direction:column;justify-content:center;min-height:auto;padding:clamp(4rem,7vh,6rem) 0;display:flex;position:relative}.dev-projects-container{max-width:var(--container-max)}.dev-projects-header{grid-template-columns:1fr;align-items:end;gap:1.5rem;width:100%;margin-bottom:clamp(2.5rem,4.5vh,3.75rem);display:grid}@media (min-width:860px){.dev-projects-header{grid-template-columns:1.25fr 1fr;justify-content:space-between;align-items:end;gap:clamp(2.5rem,5vw,5rem)}}.dev-projects-header-left{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.dev-projects-header-left .dev-section-badge{align-self:flex-start;margin-bottom:.85rem}.dev-projects-header-left .dev-section-heading{font-family:var(--font-body);letter-spacing:-.035em;color:#fff;margin:0;font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.15}.dev-projects-header-right{flex-direction:column;justify-content:flex-end;align-items:flex-start;display:flex}.dev-projects-header-right .dev-section-sub{font-family:var(--font-body);color:#ffffffad;text-align:left;max-width:480px;margin:0;font-size:clamp(.85rem,1.05vw,.95rem);line-height:1.55}.dev-projects-cards-wrap{width:100%;min-width:0}.dev-minimal-carousel{flex-direction:column;gap:1.25rem;width:100%;max-width:100%;margin:0 auto;display:flex}.dev-mc-expanded-card{color:#fff;will-change:transform;border:1px solid #ffffff14;border-radius:20px;flex-direction:column;justify-content:space-between;width:100%;min-height:380px;padding:clamp(1.75rem,3.5vw,3rem);display:flex;position:relative;overflow:hidden;box-shadow:0 28px 64px -12px #000000bf,inset 0 1px #ffffff12;background:#111114!important}.dev-mc-expanded-card.flip-children-hidden .dev-mc-top-actions,.dev-mc-expanded-card.flip-children-hidden .dev-mc-main-content{opacity:0}.dev-mc-expanded-card:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(circle,#ffffff09 0%,#0000 70%);width:60%;height:120%;position:absolute;top:-50%;right:-20%}.dev-mc-top-bar{z-index:2;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex;position:relative}.dev-mc-brand-group{align-items:center;gap:.85rem;min-width:0;display:flex}.dev-mc-brand-text{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.dev-mc-icon-badge{color:#fff;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.dev-mc-icon-img{object-fit:contain;width:auto;max-width:74%;height:auto;max-height:74%;display:block}.dev-mc-icon-inner{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.dev-mc-top-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.dev-mc-btn-pill{height:36px;font-family:var(--font-body);color:#d4d4d8;cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;padding:0 .95rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.dev-mc-btn-pill:hover{color:#fff;background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.dev-mc-btn-pill.primary{color:#0a0a0c;background:#fff;border-color:#fff;font-weight:600;box-shadow:0 1px 2px #0000001a}.dev-mc-btn-pill.primary:hover{color:#000;background:#f4f4f5;border-color:#f4f4f5;transform:translateY(-1px);box-shadow:0 4px 14px #ffffff2e}.dev-mc-main-content{z-index:2;grid-template-columns:1.05fr 1fr;align-items:center;gap:clamp(1.5rem,2.5vw,2.5rem);display:grid;position:relative}@media (max-width:880px){.dev-mc-main-content{grid-template-columns:1fr;gap:1.75rem}}.dev-mc-info{flex-direction:column;justify-content:center;display:flex}.dev-mc-tags{flex-wrap:wrap;gap:.45rem;display:flex}.dev-mc-tag{font-family:var(--font-mono);color:#a1a1aa;letter-spacing:.01em;background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;padding:.22rem .6rem;font-size:.72rem;font-weight:500;transition:all .2s}.dev-mc-tag:hover{color:#fff;background:#ffffff14;border-color:#ffffff26}.dev-mc-title{font-family:var(--font-body);letter-spacing:-.025em;color:#fff;margin:0;font-size:clamp(1.4rem,2.2vw,1.8rem);font-weight:700;line-height:1.1}.dev-mc-subtitle{font-family:var(--font-body);color:#fafafa;letter-spacing:-.015em;margin-bottom:.65rem;font-size:clamp(1.05rem,1.5vw,1.2rem);font-weight:600;line-height:1.35}.dev-mc-desc{color:#a1a1aa;letter-spacing:-.005em;max-width:500px;margin-bottom:1.25rem;font-size:.88rem;line-height:1.65}.dev-mc-preview-wrap{width:100%;position:relative}.dev-mc-browser-window{background:#09090b;border:1px solid #ffffff1a;border-radius:12px;width:100%;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 16px 36px -10px #000000b3,0 0 0 1px #ffffff0a}.dev-mc-browser-window:hover{border-color:#ffffff2e;box-shadow:0 20px 48px -10px #000000d9,0 0 0 1px #ffffff14}.dev-mc-browser-content{aspect-ratio:16/10;cursor:pointer;background:#09090b;width:100%;position:relative;overflow:hidden}.dev-mc-preview-img{object-fit:cover;object-position:top center;-webkit-user-select:none;user-select:none;pointer-events:none;will-change:transform;width:100%;height:auto;min-height:100%;transition:transform 1.4s cubic-bezier(.16,1,.3,1);display:block;position:absolute;top:0;left:0;transform:translateY(0)}.dev-mc-browser-window:hover .dev-mc-preview-img,.dev-mc-browser-content:hover .dev-mc-preview-img{transform:translateY(calc(-1 * var(--slide-dist,0px)));transition:transform var(--slide-duration,12s) cubic-bezier(.25, 1, .5, 1)}.dev-mc-scroll-badge{-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);letter-spacing:.02em;color:#d4d4d8;pointer-events:none;opacity:.85;z-index:4;background:#09090bd9;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.65rem;transition:opacity .35s,transform .35s;display:inline-flex;position:absolute;bottom:12px;right:12px}.dev-mc-scroll-badge svg{color:#a1a1aa;animation:1.8s ease-in-out infinite devScrollBounce}@keyframes devScrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}.dev-mc-scroll-badge.is-hidden,.dev-mc-browser-window:hover .dev-mc-scroll-badge,.dev-mc-browser-content:hover .dev-mc-scroll-badge{opacity:0;transform:translateY(4px)}.dev-mc-grid{gap:.75rem;width:100%;display:grid}.dev-mc-grid.cols-2{grid-template-columns:repeat(2,1fr)}.dev-mc-grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:768px){.dev-mc-grid.cols-2,.dev-mc-grid.cols-3{grid-template-columns:1fr}}.dev-mc-card{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;will-change:transform;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;justify-content:space-between;padding:1rem 1.15rem;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0006,inset 0 1px #ffffff0d;background:#111114!important}.dev-mc-card.sz-default{height:128px}@media (min-width:769px){.dev-mc-card.sz-default{height:132px}}.dev-mc-card.sz-compact{height:108px}@media (min-width:769px){.dev-mc-card.sz-compact{height:116px}}.dev-mc-card:hover{border-color:#fff3;transform:translateY(-2px);box-shadow:0 10px 28px #0009,inset 0 1px #ffffff14}.dev-mc-card-top{justify-content:space-between;align-items:center;display:flex}.dev-mc-card-icon{color:#fffc;background:#ffffff12;border:1px solid #ffffff14;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;overflow:hidden}.dev-mc-card-more{color:#fff6;background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.dev-mc-card:hover .dev-mc-card-more{color:#ffffffb3;background:#ffffff1a}.dev-mc-card-bottom{overflow:hidden}.dev-mc-card-title{font-family:var(--font-body);color:#ffffffeb;white-space:nowrap;text-overflow:ellipsis;margin-bottom:.15rem;font-size:1rem;font-weight:600;line-height:1.25;overflow:hidden}.dev-mc-card-val{font-family:var(--font-mono);color:#fff6;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:500;overflow:hidden}.dev-mc-card-more-cta{cursor:pointer;background:#ffffff09;border:1px dashed #ffffff2e;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1)}.dev-mc-card-more-cta:hover{background:#ffffff14;border:1px solid #ffffff59;transform:translateY(-3px);box-shadow:0 8px 24px #00000080}.dev-mc-more-icon{color:#fff;background:#ffffff14;transition:all .25s}.dev-mc-card-more-cta:hover .dev-mc-more-icon{color:#09090b;background:#fff;transform:scale(1.06)}.dev-mc-more-badge{font-family:var(--font-mono);color:#fff9;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.72rem;font-weight:600;transition:all .2s;display:inline-flex}.dev-mc-card-more-cta:hover .dev-mc-more-badge{color:#fff;background:#ffffff1f;border-color:#ffffff40}.dev-mc-card-more-cta:hover .dev-mc-card-val{color:#ffffffbf}.dev-skills{background:var(--bg-dark);color:#fff;border-top:1px solid #ffffff1f;flex-direction:column;justify-content:center;min-height:auto;padding:clamp(3.5rem,6vh,5.5rem) 0;display:flex;position:relative}.dev-skills-split{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,4vw,4rem);width:100%;display:grid}.dev-skills-left{text-align:left;flex-direction:column;align-self:start;align-items:flex-start;margin-top:0;padding-top:clamp(2rem,4vh,3.5rem);display:flex}.dev-skills-left .dev-section-badge{align-self:flex-start;margin-bottom:.85rem}.dev-skills-left .dev-section-heading{font-family:var(--font-body);letter-spacing:-.035em;color:#fff;margin-bottom:.5rem;font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.15}.dev-skills-left .dev-section-sub{font-family:var(--font-body);color:#ffffffa6;max-width:440px;margin:0;font-size:clamp(.85rem,1.05vw,.95rem);line-height:1.55}.dev-skills-right{flex-direction:column;justify-content:center;align-self:start;align-items:center;width:100%;display:flex;position:relative}.three-cube-wrapper{flex-direction:column;align-items:center;width:100%;max-width:630px;display:flex;position:relative;overflow:visible}.three-canvas-container{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:clamp(480px,58vh,600px);display:flex;position:relative;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;overflow:visible!important}.three-canvas-container:active{cursor:grabbing}.three-canvas-container canvas{outline:none;display:block;background:0 0!important;width:100%!important;height:100%!important}.three-canvas-loading,.three-loading-placeholder{color:#fff9;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;min-height:420px;font-size:.85rem;display:flex}.loading-spinner,.three-loading-spinner{border:3px solid #ffffff1f;border-top-color:#00d8ff;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite three-spin}@keyframes three-spin{to{transform:rotate(360deg)}}@media (max-width:960px){.dev-skills-split{text-align:center;grid-template-columns:1fr;align-items:center;gap:2rem}.dev-skills-left{text-align:center;align-self:center;align-items:center}.dev-skills-left .dev-section-sub{text-align:center;margin:0 auto}.three-canvas-container{height:clamp(380px,48vh,460px)}}@media (max-width:580px){.three-canvas-container{height:360px}}.dev-experience{background:var(--bg);min-height:auto;color:var(--foreground);border-top:1px solid #00000014;flex-direction:column;justify-content:center;padding:clamp(4rem,7vh,6rem) 0;display:flex;position:relative}.dev-exp-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:clamp(2rem,3.5vh,2.75rem);display:flex}.dev-exp-header .dev-section-sub{text-align:center;max-width:620px;margin:0 auto}.dev-exp-table{border-top:1px solid #0000001a;width:100%}.dev-exp-row{border-bottom:1px solid #00000017;grid-template-columns:minmax(160px,200px) minmax(260px,350px) 1fr;align-items:start;gap:clamp(1.5rem,3.5vw,4rem);padding:clamp(2rem,3.5vh,2.75rem) 0;transition:border-color .25s,background-color .25s;display:grid}.dev-exp-row:hover{border-bottom-color:#0000003d}.dev-exp-col-date{padding-top:.25rem}.dev-exp-date-text{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--foreground-muted,#52525b);white-space:nowrap;font-size:clamp(.85rem,.95vw,.92rem);font-weight:700;transition:color .2s;display:inline-block}.dev-exp-row:hover .dev-exp-date-text{color:var(--foreground,#09090b)}.dev-exp-col-role{flex-direction:column;gap:.35rem;display:flex}.dev-exp-role-title{font-family:var(--font-body);color:var(--foreground);letter-spacing:-.02em;margin:0;font-size:clamp(1.25rem,1.6vw,1.45rem);font-weight:700;line-height:1.25}.dev-exp-role-name{color:var(--foreground)}.dev-exp-role-sep{color:#00000059;font-weight:400}.dev-exp-company-name{color:var(--foreground)}.dev-exp-location{color:var(--foreground-muted);margin:0;font-size:.82rem;font-weight:500}.dev-exp-col-desc{flex-direction:column;gap:.65rem;padding-top:.15rem;display:flex}.dev-exp-desc-p{font-family:var(--font-body);color:#4b5563;margin:0;font-size:clamp(.9rem,.98vw,.98rem);line-height:1.65;transition:color .2s}.dev-exp-row:hover .dev-exp-desc-p{color:#111827}@media (max-width:960px){.dev-exp-row{grid-template-columns:140px 1fr;gap:1.25rem 2rem}.dev-exp-col-desc{grid-column:2/-1}}@media (max-width:680px){.dev-exp-row{grid-template-columns:1fr;gap:.65rem;padding:1.75rem 0}.dev-exp-col-date{padding-top:0}.dev-exp-col-desc{grid-column:auto;padding-top:.25rem}.dev-exp-date-text{white-space:normal}}.dev-education{background:var(--bg);min-height:auto;color:var(--foreground);border-top:1px solid #00000014;flex-direction:column;justify-content:center;padding:clamp(4rem,7vh,6rem) 0;display:flex;position:relative}.dev-edu-timeline{flex-direction:column;gap:1.5rem;width:100%;max-width:100%;margin:0 auto;display:flex;position:relative}.dev-edu-timeline:before{content:"";z-index:1;background:#000;width:2px;position:absolute;top:2.2rem;bottom:2.2rem;left:17px}.dev-edu-timeline-item{grid-template-columns:36px 1fr;align-items:start;gap:1.5rem;display:grid}.dev-edu-timeline-rail{z-index:2;justify-content:center;width:36px;padding-top:1.8rem;display:flex;position:relative}.dev-edu-timeline-dot{width:12px;height:12px;box-shadow:0 0 0 4px var(--bg);background:#000;border-radius:50%;transition:transform .2s,box-shadow .2s}.dev-edu-timeline-dot.active{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px #000;background:#000}.dev-edu-timeline-item:hover .dev-edu-timeline-dot{transform:scale(1.25)}@media (max-width:640px){.dev-edu-timeline{max-width:100%}.dev-edu-timeline:before{top:2rem;bottom:2rem;left:13px}.dev-edu-timeline-item{grid-template-columns:28px 1fr;gap:.85rem}.dev-edu-timeline-rail{width:28px;padding-top:1.65rem}.dev-edu-timeline-dot{width:10px;height:10px;box-shadow:0 0 0 3px var(--bg)}.dev-edu-timeline-dot.active{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #000}}.dev-edu-card{background:var(--card-light,#fff);border-radius:var(--radius-md);border:1px solid #00000012;padding:1.5rem;transition:border-color .2s,transform .2s,box-shadow .2s;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005}.dev-edu-card:hover{border-color:#00000029;transform:translateY(-2px);box-shadow:0 6px 18px #0000000f}.dev-edu-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.dev-edu-year-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--foreground-light);border-radius:var(--radius-xs);background:#f5f4f0;border:1px solid #00000012;padding:.2rem .55rem;font-size:.68rem;font-weight:600}.dev-timeline-school{color:var(--foreground);letter-spacing:-.015em;margin-bottom:.2rem;font-size:1.02rem;font-weight:700}.dev-timeline-degree{color:var(--foreground-muted);margin-bottom:.5rem;font-size:.86rem;font-weight:500}.dev-timeline-desc{color:var(--foreground-light);font-size:.82rem;line-height:1.6}.dev-achievements{background:var(--bg-dark);color:#fff;border-top:1px solid #ffffff1f;flex-direction:column;justify-content:center;min-height:auto;padding:clamp(4rem,7vh,6rem) 0 clamp(5rem,8vh,7.5rem);display:flex;position:relative}.dev-achieve-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:1.5rem;width:100%;display:grid}@media (max-width:960px){.dev-achieve-grid{grid-template-columns:1fr;gap:1.25rem}}.dev-achieve-card{background:#141417;border:1px solid #ffffff17;border-radius:16px;flex-direction:column;justify-content:space-between;padding:1.75rem;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.dev-achieve-card:hover{background:#1a1a1e;border-color:#ffffff38;transform:translateY(-3px);box-shadow:0 16px 36px #0009}.dev-achieve-card-top{justify-content:space-between;align-items:center;margin-bottom:1.2rem;display:flex}.dev-achieve-icon{color:#fff;background:#ffffff12;border:1px solid #ffffff1f;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dev-achieve-badge-pill{font-family:var(--font-mono);color:#ffffffd9;letter-spacing:.02em;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:9999px;padding:.25rem .7rem;font-size:.72rem;font-weight:600}.dev-achieve-meta{justify-content:space-between;align-items:center;margin-bottom:.45rem;display:flex}.dev-achieve-category{font-family:var(--font-mono);color:#ffffff73;text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.dev-achieve-year{font-family:var(--font-mono);color:#fff6;font-size:.7rem}.dev-achieve-title{font-family:var(--font-body);color:#fff;letter-spacing:-.015em;margin-bottom:.25rem;font-size:1.12rem;font-weight:700;line-height:1.3}.dev-achieve-issuer{color:#ffffffb3;margin-bottom:.85rem;font-size:.82rem;font-weight:600}.dev-achieve-desc{color:#ffffffa6;flex-grow:1;margin-bottom:1.25rem;font-size:.84rem;line-height:1.6}.dev-achieve-tags{flex-wrap:wrap;gap:.4rem;margin-top:auto;display:flex}.dev-achieve-tag{font-family:var(--font-mono);color:#ffffff8c;background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;padding:.18rem .55rem;font-size:.68rem;font-weight:500}.dev-footer-track{z-index:30;background:var(--bg);border-top:1px solid #00000014;border-radius:0;width:100%;height:100dvh;min-height:100dvh;position:relative;overflow:hidden;box-shadow:0 -20px 50px #00000047,0 -4px 16px #0000001f}.dev-footer-sticky{background:var(--bg);width:100%;height:100%;min-height:100dvh;color:var(--foreground);z-index:30;flex-direction:column;justify-content:center;padding:clamp(1.5rem,3vh,2.5rem) 0 clamp(1rem,2vh,1.5rem);display:flex;position:relative;overflow:hidden}.dev-footer-container{width:100%;max-width:var(--container-max);z-index:1;flex-direction:column;margin:0 auto;padding:0 clamp(1.75rem,5.5vw,4.5rem);display:flex;position:relative}.dev-footer-card{background:var(--card-light,#fff);text-align:center;border:1px solid #00000014;border-radius:clamp(32px,5vw,60px);flex-direction:column;align-items:center;width:100%;padding:clamp(2.5rem,4.5vh,3.8rem) clamp(2rem,5vw,4rem) 0;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 32px #0000000a,0 1px 3px #00000005}.dev-anim-circles-wrap{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.dev-anim-circle-black{pointer-events:none;will-change:transform;transform-origin:50%;background:#18181b;border-radius:50%;position:absolute}.dev-anim-circle-red{pointer-events:none;will-change:transform;transform-origin:50%;background:#e62429;border-radius:50%;position:absolute}.dev-footer-title{font-family:var(--font-body);color:#09090b;letter-spacing:-.035em;margin:0;font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.15}.dev-footer-accent{color:var(--accent-red);text-decoration:none;transition:opacity .2s}.dev-footer-accent:hover{opacity:.85}.dev-footer-sub{font-family:var(--font-body);color:#71717a;max-width:580px;margin:.5rem 0 0;font-size:clamp(.85rem,1.05vw,.95rem);line-height:1.55}.dev-footer-socials{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(1.1rem,2.5vw,2.2rem);margin-top:clamp(1.75rem,3.5vh,2.4rem);margin-bottom:clamp(2.5rem,4.5vh,3.5rem);display:flex}.dev-footer-social-link{font-family:var(--font-body);color:#18181b;align-items:center;gap:.45rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:color .2s,transform .2s;display:inline-flex}.dev-footer-social-link:hover{color:var(--accent-red);transform:translateY(-1px)}.dev-footer-social-link svg{flex-shrink:0;transition:transform .2s}.dev-footer-social-link:hover svg{transform:scale(1.1)}.dev-footer-brand-wrap{pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;width:100%;max-width:860px;margin:0 auto -10.5%;line-height:0;display:flex}.dev-footer-brand-svg{width:100%;height:auto;display:block}.dev-footer-bottom{font-family:var(--font-body);color:#71717a;justify-content:space-between;align-items:center;margin-top:clamp(1rem,2vh,1.4rem);padding:0 .5rem;font-size:.82rem;display:flex}.dev-footer-copy{margin:0}.dev-footer-credit{align-items:center;gap:.35rem;margin:0;display:inline-flex}.dev-footer-coffee{color:var(--accent-red);stroke:var(--accent-red);vertical-align:middle;display:inline-block}@media (max-width:640px){.dev-footer-card{border-radius:28px;padding-top:2.25rem}.dev-footer-socials{gap:1rem;margin-bottom:1.75rem}.dev-footer-brand-wrap{margin-bottom:-13.5%}.dev-footer-bottom{text-align:center;flex-direction:column;gap:.4rem}}.lp-footer{display:none!important}.lp-footer-inner{width:100%;max-width:var(--container-max);justify-content:space-between;align-items:center;margin:0 auto;padding:0 clamp(1.75rem,5.5vw,4.5rem);display:flex}.lp-footer-social{align-items:center;gap:.75rem;display:flex}.lp-social-btn{color:#444;border:1px solid #0000001f;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:all .2s;display:inline-flex}.lp-social-btn:hover{color:#111;border-color:#111;transform:translateY(-2px)}.lp-footer-copy{font-family:var(--font-body);color:#666;font-size:.8rem;font-weight:500}@media (max-width:960px){.dev-hero{height:auto;min-height:100dvh;position:relative}.dev-hero-inner{grid-template-rows:auto auto;grid-template-columns:1fr;height:auto;min-height:auto}.dev-hero-left{order:2;padding:2.5rem 0 3rem}.dev-hero-right{padding-top:var(--header-h);order:1;justify-content:center;align-items:center;height:auto}.dev-hero-photo{object-fit:contain;width:auto;max-width:100%;height:clamp(340px,65vw,480px);max-height:70vh}.dev-edu-grid{grid-template-columns:1fr;gap:2rem}}@media (max-width:768px){.dev-body-card{border-radius:0;box-shadow:0 -12px 32px #0003}.dev-projects,.dev-skills,.dev-experience,.dev-education,.dev-achievements{min-height:auto;box-shadow:none;height:auto;padding:3.5rem 0;position:relative;top:auto}.dev-footer-track{border-radius:0;height:auto;min-height:auto;padding:3.5rem 0;position:relative;top:auto;box-shadow:0 -14px 36px #00000038}.dev-footer-sticky{height:auto;padding:0;position:relative;top:auto}}
