@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.navbar{width:100%;height:var(--nav-height);background-color:var(--bg-color);z-index:1000;transition:all var(--transition-normal);align-items:center;display:flex;position:fixed;top:0;left:0}.navbar.scrolled{background-color:var(--nav-scrolled-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color);height:70px;box-shadow:0 4px 30px #0000000a}.nav-container{justify-content:space-between;align-items:center;display:flex}.nav-brand-cluster{align-items:center;gap:0;display:inline-flex}.mobile-project-back{display:none}.brand{color:var(--text-main);letter-spacing:-.5px;cursor:pointer;white-space:nowrap;align-items:center;font-size:1.5rem;font-weight:700;text-decoration:none;display:inline-flex;position:relative}.brand-wordmark-shell{will-change:width;align-items:center;width:1.85rem;height:1.7rem;transition:width .82s cubic-bezier(.22,1,.36,1) .18s;display:inline-block;position:relative;overflow:hidden}.brand-monogram,.brand-fullname{white-space:nowrap;display:block;position:absolute;top:50%;left:0;transform:translateY(-50%)}.brand-monogram{letter-spacing:-.5px;transform-origin:0;opacity:1;will-change:opacity, transform, filter;transition:opacity .58s cubic-bezier(.22,1,.36,1) .14s,transform .76s cubic-bezier(.22,1,.36,1) .14s,filter .76s cubic-bezier(.22,1,.36,1) .14s}.brand-fullname{color:var(--text-main);letter-spacing:-.03em;opacity:0;clip-path:inset(0 100% 0 0);will-change:clip-path, opacity, transform;transition:clip-path .74s cubic-bezier(.22,1,.36,1),opacity .46s cubic-bezier(.22,1,.36,1),transform .74s cubic-bezier(.22,1,.36,1);transform:translateY(-50%)translate(-.28rem)}.brand:hover .brand-wordmark-shell,.brand:focus-visible .brand-wordmark-shell{width:11.05rem;transition-duration:.8s;transition-delay:0s}.brand:hover .brand-monogram,.brand:focus-visible .brand-monogram{opacity:0;filter:blur(1.1px);transition-duration:.34s,.54s,.54s;transition-delay:0s,0s,0s;transform:translateY(-50%)translate(.12rem)}.brand:hover .brand-fullname,.brand:focus-visible .brand-fullname{opacity:1;clip-path:inset(0);transition-duration:.8s,.44s,.8s;transition-delay:20ms,80ms,20ms;transform:translateY(-50%)translate(0)}.brand:focus-visible{outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.desktop-nav{display:none}@media (width>=768px){.desktop-nav{display:block}}.nav-links{align-items:center;gap:2rem;list-style:none;display:flex}.nav-item{position:relative}.nav-item-dropdown:after{content:"";height:.9rem;position:absolute;top:100%;left:-.65rem;right:-.65rem}.nav-link{color:var(--text-muted);transition:color var(--transition-fast);background-color:#0000;border-radius:6px;align-items:center;gap:.35rem;padding:.5rem .8rem;font-size:.9rem;font-weight:500;display:inline-flex;position:relative}.nav-link:before,.nav-link:after{content:"";opacity:.65;background-color:currentColor;width:14px;height:1px;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .28s,color .28s;position:absolute;bottom:.2rem}.nav-link:before{transform-origin:100%;right:50%;transform:scaleX(0)}.nav-link:after{transform-origin:0;left:50%;transform:scaleX(0)}.nav-link-label{z-index:1;position:relative}.nav-link:hover,.nav-link:focus-visible,.nav-item-dropdown:hover>.nav-link,.nav-item-dropdown:focus-within>.nav-link{color:var(--text-main)}.nav-link:hover:before,.nav-link:hover:after,.nav-link:focus-visible:before,.nav-link:focus-visible:after,.nav-item-dropdown:hover>.nav-link:before,.nav-item-dropdown:hover>.nav-link:after,.nav-item-dropdown:focus-within>.nav-link:before,.nav-item-dropdown:focus-within>.nav-link:after{transform:scaleX(1)}.nav-link:focus-visible{outline:none}.nav-link-dropdown{padding-right:.5rem}.nav-link-caret{opacity:.6;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .28s}.nav-item-dropdown:hover .nav-link-caret,.nav-item-dropdown:focus-within .nav-link-caret{opacity:1;transform:translateY(1px)}.nav-item-dropdown.dropdown-dismissed .nav-link-caret{opacity:.6;transform:translateY(0)}.nav-dropdown{background-color:color-mix(in srgb, var(--bg-surface) 96%, transparent);border:1px solid color-mix(in srgb, var(--border-color) 88%, transparent);-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;z-index:1001;border-radius:11px;flex-direction:column;gap:.22rem;min-width:220px;padding:.42rem;transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),visibility .28s;display:flex;position:absolute;top:calc(100% + .25rem);left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 12px 32px #0000000e}.nav-dropdown:before{content:none}.nav-item-dropdown:hover .nav-dropdown,.nav-item-dropdown:focus-within .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)translateY(0)}.nav-item-dropdown.dropdown-dismissed:hover .nav-dropdown,.nav-item-dropdown.dropdown-dismissed:focus-within .nav-dropdown{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%)translateY(-4px)}.nav-dropdown-link{text-align:left;width:100%;color:var(--text-muted);border-radius:8px;padding:.8rem .98rem;font-size:.86rem;font-weight:500;line-height:1.25;transition:color .24s,background-color .24s,letter-spacing .24s;display:block;position:relative}.nav-dropdown-link:hover,.nav-dropdown-link:focus-visible{color:var(--text-main);background-color:color-mix(in srgb, var(--accent-light) 30%, transparent);letter-spacing:.006em;outline:none}.nav-dropdown-link+.nav-dropdown-link:before{content:"";background:color-mix(in srgb, var(--border-color) 32%, transparent);height:1px;position:absolute;top:0;left:.98rem;right:.98rem}.theme-toggle{color:var(--text-muted);transition:color var(--transition-fast);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:50%;justify-content:center;align-items:center;padding:.5rem;display:flex}.theme-toggle:hover{color:var(--text-main);background-color:var(--accent-light)}.mobile-actions{align-items:center;gap:1rem;display:flex}@media (width>=768px){.mobile-actions{display:none}}@media (width<=767px){.nav-brand-cluster{gap:.95rem}.mobile-project-back{width:1.35rem;height:2.15rem;color:var(--text-main);opacity:.84;background-color:#0000;border:0;justify-content:center;align-items:center;padding:0;transition:color .28s,opacity .28s,transform .28s cubic-bezier(.22,1,.36,1);display:inline-flex}.mobile-project-back:hover,.mobile-project-back:focus-visible{color:var(--text-main);opacity:1;outline:none;transform:translate(-1px)}}.mobile-toggle{color:var(--text-main);justify-content:center;align-items:center;display:flex}.mobile-nav{top:var(--nav-height);background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);opacity:0;visibility:hidden;width:100%;transition:all var(--transition-normal);z-index:999;padding:1rem 0;position:fixed;left:0;transform:translateY(-100%)}.mobile-nav.open{opacity:1;visibility:visible;transform:translateY(0)}.navbar.scrolled .mobile-nav{top:70px}.mobile-nav-links{flex-direction:column;list-style:none;display:flex}.mobile-nav-group{border-bottom:1px solid var(--border-color)}.mobile-nav-link{text-align:left;width:100%;color:var(--text-main);padding:1rem 2rem;font-size:1.1rem;font-weight:500;display:block}.mobile-nav-parent{justify-content:space-between;align-items:center;display:flex}.mobile-nav-caret{opacity:.7;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .28s}.mobile-nav-group.expanded .mobile-nav-caret{opacity:1;transform:rotate(180deg)}.mobile-submenu{max-height:0;transition:max-height .32s cubic-bezier(.22,1,.36,1);overflow:hidden}.mobile-submenu.open{max-height:220px}.mobile-submenu-link{text-align:left;width:100%;color:var(--text-muted);transition:color var(--transition-fast), background-color var(--transition-fast);background-color:#0000;padding:.85rem 2rem .85rem 3.5rem;font-size:.98rem;font-weight:500;display:block}.mobile-submenu-link:hover,.mobile-submenu-link:focus-visible{color:var(--text-main);background-color:var(--accent-light);outline:none}.mobile-nav-links>li:last-child>.mobile-nav-link,.mobile-nav-links>li:last-child{border-bottom:none}.footer{background-color:var(--bg-color);border-top:1px solid var(--border-color);padding:2.9rem 0 3rem}.footer-container{flex-direction:column;justify-content:center;align-items:center;display:flex}.footer-content{text-align:center;flex-direction:column;align-items:center;display:flex}.footer-identity{flex-direction:column;align-items:center;gap:.72rem;display:flex}.footer-name{color:var(--text-main);letter-spacing:0;align-items:baseline;gap:.38rem;padding:.08rem .08rem .18rem;font-size:clamp(1.5rem,2.25vw,1.95rem);font-weight:650;line-height:1.05;display:inline-flex;position:relative;overflow:hidden}.footer-name-mask{padding-bottom:.02rem;display:inline-flex;overflow:hidden}.footer-name-word{will-change:transform, opacity, filter;display:inline-block}.footer-name-trace{transform-origin:0;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text-main) 42%, transparent) 18%, color-mix(in srgb, var(--accent-color) 55%, transparent) 54%, transparent);pointer-events:none;will-change:transform, opacity;height:1px;position:absolute;bottom:0;left:.08rem;right:.08rem}.footer-role{max-width:min(100%,34rem);color:color-mix(in srgb, var(--text-muted) 66%, transparent);font-size:.84rem;font-weight:400;line-height:1.55}@media (width<=520px){.footer{padding:2.55rem 0 2.7rem}.footer-role{max-width:18rem;font-size:.8rem}}.tech-stack-viewport-container{flex-direction:column;justify-content:flex-start;min-height:100vh;margin-bottom:clamp(1.5rem,3.5vh,3rem);padding:6rem 0 0;scroll-margin-top:5rem;display:flex}.tech-stack-section-header{text-align:left;margin-bottom:0}.tech-stack-section-header h2{color:var(--text-main);margin-bottom:1.8rem;font-size:2rem;font-weight:500;display:inline-block;position:relative}.tech-stack-section-header h2:after{content:"";background-color:var(--text-main);width:40px;height:2px;position:absolute;bottom:-10px;left:0}.tech-stack-section-header p{color:var(--text-muted);opacity:.8;max-width:600px;margin:0;font-size:1.05rem;line-height:1.6}.tech-stack-browser-wrapper{width:100vw;margin:3rem -50vw 0;padding:2rem 0 0;position:relative;left:50%;right:50%;overflow:hidden}.tech-stack-slider-boundary{width:100%;max-width:1600px;margin:0 auto;position:relative}.carousel-container{place-items:center;width:100%;margin-bottom:0;padding-bottom:8rem;display:grid;position:relative;overflow:visible;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%)}.browser-content{border:1px solid var(--tech-border-active);background-color:var(--tech-bg-active);width:90%;max-width:960px;box-shadow:none;border-radius:24px;flex-direction:column;grid-area:1/1;gap:3.5rem;padding:4rem 1rem;transition:border-color .95s cubic-bezier(.4,0,.2,1),background-color .95s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.browser-content.inactive{border-color:var(--tech-border-inactive);background-color:var(--tech-bg-inactive);border-bottom-color:#0000}.browser-content:before{content:"";background:linear-gradient(to bottom, var(--bg-color) 45%, transparent 100%);z-index:-1;pointer-events:none;opacity:0;transition:opacity .8s cubic-bezier(.4,0,.2,1);position:absolute;inset:-1.5rem -2rem -4rem}.browser-content.active:before{opacity:1}@media (width>=800px){.browser-content{flex-direction:row;align-items:center;gap:4rem;padding:6rem 4.5rem}}.browser-left{flex-direction:column;min-width:240px;max-width:320px;display:flex;position:relative}@media (width>=800px){.browser-left{padding-right:0}.browser-left:after{content:"";background:linear-gradient(to bottom, transparent, var(--border-color-subtle) 20%, var(--border-color-subtle) 80%, transparent);width:1px;height:80%;position:absolute;top:50%;right:-2rem;transform:translateY(-50%)}}.active-category-header{align-items:center;gap:1.2rem;display:flex}.active-category-icon{color:var(--text-muted);opacity:.6;justify-content:center;align-items:center;display:flex}.active-category-icon svg{width:42px!important;height:42px!important}.active-category-title{color:var(--text-main);letter-spacing:-.01em;font-size:2.2rem;font-weight:500;line-height:1.45}.active-category-desc{display:none}.browser-right{flex:1;align-items:center;display:flex}.stack-grid{flex-wrap:wrap;gap:.9rem 1rem;display:flex}.stack-item{background-color:var(--tech-stack-item-bg);color:var(--text-muted);cursor:default;border-radius:20px;align-items:center;padding:.5rem 1.1rem;font-size:.92rem;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex}.browser-content.inactive .stack-item{pointer-events:none}.stack-item svg{opacity:.5;transition:opacity .4s;width:16px!important;height:16px!important;margin-right:8px!important}.stack-item:hover{color:var(--text-main);background:var(--tech-stack-item-hover-bg);transform:translateY(-2px)}.stack-item:hover svg{opacity:.85}.nav-arrow{color:var(--text-muted);opacity:.3;cursor:pointer;z-index:50;background:0 0;border:none;justify-content:center;align-items:center;padding:1.5rem;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:calc(50% - 90px);transform:translateY(-50%)}.nav-arrow:before{content:"";background:radial-gradient(circle, var(--bg-color) 30%, transparent 65%);z-index:-1;opacity:.8;pointer-events:none;width:90px;height:90px;transition:opacity .4s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nav-arrow:hover:before{opacity:1}.nav-arrow svg{transition:all .3s;width:38px!important;height:38px!important}.nav-arrow.prev{left:4%}.nav-arrow.next{right:4%}@media (width>=1200px){.nav-arrow.prev{left:8%}.nav-arrow.next{right:8%}}.tech-stack-slider-boundary:hover .nav-arrow{opacity:.45}.nav-arrow:hover{opacity:1;color:var(--text-main);transform:translateY(-50%)scale(1.15)}.nav-arrow:active{transform:translateY(-50%)scale(.95)}.tech-stack-indicator-slot{justify-content:center;align-items:center;min-height:2.6rem;padding-top:.2rem;padding-bottom:.2rem;display:flex;transform:translateY(calc(-2.4rem - 120px))}.tech-stack-page-dots{justify-content:center;align-items:center;gap:.5rem;padding:0 .1rem;display:inline-flex}.tech-stack-page-dot{color:#0000;opacity:.78;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:1.55rem;height:1.15rem;padding:0;transition:opacity .36s,transform .36s cubic-bezier(.22,1,.36,1);display:inline-flex}.tech-stack-page-dot:hover,.tech-stack-page-dot:focus-visible{opacity:1;outline:none;transform:translateY(-.5px)}.tech-stack-page-dot-core{background:color-mix(in srgb, var(--text-muted) 70%, transparent);border-radius:999px;width:.32rem;height:.32rem;transition:width .42s cubic-bezier(.22,1,.36,1),background-color .36s,opacity .36s,transform .42s cubic-bezier(.22,1,.36,1)}.tech-stack-page-dot.active{opacity:1}.tech-stack-page-dot.active .tech-stack-page-dot-core{background:color-mix(in srgb, var(--text-main) 84%, transparent);width:1rem}[data-theme=dark] .tech-stack-page-dot-core{background:color-mix(in srgb, var(--text-secondary) 72%, transparent)}[data-theme=dark] .tech-stack-page-dot.active .tech-stack-page-dot-core{background:#f1f5f9f0}@media (width<=767px){.tech-stack-viewport-container{min-height:auto;margin-bottom:.5rem;padding-top:4.5rem}.tech-stack-browser-wrapper{width:calc(100% + 4rem);height:clamp(42rem,88vh,48rem);margin-top:2.5rem;margin-left:-2rem;margin-right:-2rem;padding-top:1.25rem;padding-bottom:2.8rem;position:relative;left:auto;right:auto}.tech-stack-slider-boundary{height:100%}.carousel-container{touch-action:pan-y;align-content:center;place-items:start center;height:100%;min-height:0;padding-bottom:0;overflow:hidden;-webkit-mask-image:none;mask-image:none}.browser-content{border-radius:18px;justify-content:center;gap:2.15rem;width:min(86%,24.5rem);height:auto;min-height:clamp(28rem,58vh,33rem);max-height:calc(100% - 5.5rem);padding:2.7rem 1.2rem 2.45rem;overflow:visible}.browser-content.inactive{opacity:.2!important}.browser-content:before{inset:-1rem -1rem -2.4rem}.active-category-header{gap:.95rem}.browser-left{width:100%;min-width:0;max-width:none}.active-category-icon svg{width:34px!important;height:34px!important}.active-category-title{font-size:clamp(1.45rem,6vw,1.72rem);line-height:1.28}.browser-right{justify-content:center;align-items:flex-start;width:100%;min-height:0}.stack-grid{flex-wrap:wrap;place-content:flex-start center;gap:.82rem .72rem;width:min(100%,20.5rem);margin:0 auto;display:flex}.stack-item{text-align:center;border-radius:999px;flex:calc(50% - .72rem);justify-content:center;min-width:min(8.1rem,100%);max-width:10.3rem;min-height:2.28rem;padding:.48rem .78rem;font-size:clamp(.74rem,3.35vw,.83rem);line-height:1.18}.stack-item--wide{flex-basis:min(100%,17.25rem);max-width:17.25rem}.stack-item svg{flex-shrink:0;width:14px!important;height:14px!important;margin-right:.34rem!important}.nav-arrow{padding:.85rem;top:clamp(14.5rem,36vh,17rem);bottom:auto;transform:none}.nav-arrow.prev{left:.25rem}.nav-arrow.next{right:.25rem}.nav-arrow:before{width:58px;height:58px}.nav-arrow svg{width:28px!important;height:28px!important}.nav-arrow:hover{transform:scale(1.04)}.nav-arrow:active{transform:scale(.96)}.tech-stack-indicator-slot{z-index:60;min-height:2.3rem;padding-top:.15rem;position:absolute;bottom:.55rem;left:0;right:0;transform:none}.tech-stack-page-dots{gap:.38rem}.tech-stack-page-dot{width:1.35rem;height:1.05rem}.tech-stack-page-dot.active .tech-stack-page-dot-core{width:.82rem}}.about-section{padding:1rem 0 8rem}.about-intro{max-width:800px;margin-bottom:10rem;position:relative}.hero-glow{z-index:-1;pointer-events:none;background:radial-gradient(circle,#ffffff08 0%,#0000 60%);width:60%;height:80%;position:absolute;top:10%;left:-5%}.greeting{color:var(--text-muted);margin-bottom:2rem;font-size:1.2rem;display:block}.name{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-main) 30%, var(--text-muted));color:#0000;will-change:transform, opacity;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:clamp(3.5rem,6vw,5.5rem);font-weight:800;line-height:1.1}.name-breath{background:linear-gradient(135deg, var(--text-main) 30%, var(--text-muted));color:#0000;transform-origin:0;will-change:transform, opacity;-webkit-background-clip:text;background-clip:text;display:inline-block}.title{color:var(--accent-color);letter-spacing:.02em;opacity:.9;margin-bottom:3rem;font-size:clamp(1.15rem,2.5vw,1.45rem);font-weight:500}.summary{color:var(--text-muted);letter-spacing:.01em;max-width:680px;transition:transform var(--transition-normal), color var(--transition-normal);font-size:1.15rem;line-height:1.9}.summary:hover{color:var(--text-main);transform:translateY(-2px)}.resume-btn{isolation:isolate;background-color:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);box-shadow:none;cursor:pointer;border-radius:100px;justify-content:center;align-items:center;gap:.6rem;margin-top:3rem;padding:.9rem 1.8rem;font-size:.95rem;font-weight:500;transition:border-color .8s,color .8s,transform .8s cubic-bezier(.25,1,.35,1);display:inline-flex;position:relative;overflow:hidden}.resume-btn:before{content:"";background-color:var(--btn-fill);z-index:-1;border-radius:0 100px 100px 0;width:105%;height:100%;transition:transform .8s cubic-bezier(.25,1,.35,1);position:absolute;top:0;left:0;transform:translate(-100%)}.resume-btn svg{opacity:.7;transition:opacity .8s,color .8s,transform .8s cubic-bezier(.25,1,.35,1);width:18px!important;height:18px!important}.resume-btn:hover{color:var(--btn-hover-text);border-color:#0000;transform:translateY(-2px)}.resume-btn:hover:before{transform:translate(0)}.resume-btn:hover svg{opacity:1;color:var(--btn-hover-text);transform:translateY(-1px)}@media (width<=767px){.name{font-size:clamp(4rem,18vw,5rem)}.title{margin-bottom:4.5rem}}.experience-section{background:linear-gradient(#0000 0%,#ffffff02 15% 85%,#0000 100%);padding:10rem 0;position:relative}.experience-section:before,.experience-section:after{content:"";background:linear-gradient(90deg,#0000,#ffffff08,#0000);height:1px;position:absolute;left:5%;right:5%}.experience-section:before{content:none}.experience-section:after{bottom:8%}.experience-grid{flex-direction:column;gap:8rem;max-width:1000px;margin:2rem auto 0;display:flex}.column-title{color:var(--text-main);margin-bottom:3rem;padding-bottom:.8rem;font-size:1.5rem;font-weight:600}.timeline{padding-left:4.5rem;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--accent-color) 0%, var(--border-color) 15%, var(--border-color) 85%, transparent 100%);width:2px;height:100%;position:absolute;top:0;left:21px}.timeline-item{cursor:default;isolation:isolate;margin-bottom:8rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{content:"";z-index:-1;background:radial-gradient(ellipse at 5% 24%, color-mix(in srgb, var(--accent-color) 4.8%, transparent), transparent 24%), radial-gradient(ellipse at 38% 46%, color-mix(in srgb, var(--text-main) 2%, transparent), transparent 42%), linear-gradient(90deg, color-mix(in srgb, var(--accent-color) 2.1%, transparent), color-mix(in srgb, var(--text-main) 1.2%, transparent) 46%, transparent 82%);filter:blur(16px);opacity:0;transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1),filter .72s cubic-bezier(.22,1,.36,1);position:absolute;inset:-2.4rem -4rem -2.6rem -3rem;transform:translate(-10px)scale(.985)}.timeline-item:after{content:"";pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--accent-color) 68%, transparent), color-mix(in srgb, var(--accent-color) 18%, transparent) 48%, transparent 100%);opacity:0;transform-origin:top;width:2px;height:calc(100% - 48px);box-shadow:0 0 10px color-mix(in srgb, var(--accent-color) 14%, transparent);border-radius:999px;transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);position:absolute;top:48px;left:calc(20px - 4.5rem);transform:scaleY(.72)}.timeline-item:hover:before,.timeline-item:focus-within:before{opacity:.54;filter:blur(22px);transform:translate(0)scale(1)}.timeline-item:hover:after,.timeline-item:focus-within:after{opacity:.72;transform:scaleY(1)}.timeline-marker{background-color:var(--bg-surface);width:42px;height:42px;color:var(--text-main);z-index:2;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;transition:transform .56s cubic-bezier(.22,1,.36,1),border-color .52s cubic-bezier(.22,1,.36,1),background-color .52s cubic-bezier(.22,1,.36,1),color .52s cubic-bezier(.22,1,.36,1),box-shadow .56s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:0;left:-4.5rem;box-shadow:0 4px 12px #0003}.timeline-marker svg{transition:transform .56s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1)}.timeline-item:hover .timeline-marker,.timeline-item:focus-within .timeline-marker{background-color:color-mix(in srgb, var(--bg-color) 88%, var(--accent-color));border-color:color-mix(in srgb, var(--accent-color) 72%, #ffffff2e);color:var(--text-main);box-shadow:0 12px 26px #00000042, 0 0 0 5px color-mix(in srgb, var(--accent-color) 8%, transparent);transform:translateY(-2px)scale(1.11)}.timeline-item:hover .timeline-marker svg,.timeline-item:focus-within .timeline-marker svg{opacity:.96;transform:scale(1.04)}.timeline-content{padding-left:0;transition:transform .62s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1)}.timeline-item:hover .timeline-content,.timeline-item:focus-within .timeline-content{transform:translate(12px)}.timeline-header{flex-direction:column;margin-bottom:.5rem;display:flex}@media (width>=600px){.timeline-header{flex-direction:row;justify-content:space-between;align-items:center}}.timeline-role{color:var(--text-main);letter-spacing:-.02em;font-size:1.6rem;font-weight:500;transition:color .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1)}.timeline-period{color:var(--text-muted);background-color:#0000;border:1px solid #ffffff14;border-radius:20px;margin-top:.5rem;padding:.3rem 1rem;font-size:.95rem;font-weight:500;transition:color .52s cubic-bezier(.22,1,.36,1),border-color .52s cubic-bezier(.22,1,.36,1),background-color .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);display:inline-block}@media (width>=600px){.timeline-period{margin-top:0}}.timeline-company{color:var(--accent-color);letter-spacing:-.01em;margin-bottom:2rem;font-size:1.25rem;font-weight:500;transition:color .52s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1)}.timeline-desc{color:var(--text-muted);font-size:1.05rem;line-height:1.7;transition:color .52s cubic-bezier(.22,1,.36,1)}.timeline-responsibilities{margin:0;padding-left:0;list-style-type:none}.timeline-responsibilities li{color:var(--text-muted);margin-bottom:1.2rem;padding-left:1.8rem;font-size:1.05rem;line-height:1.8;transition:color .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);position:relative}.timeline-responsibilities li:after{content:none}.timeline-responsibilities li:last-child{margin-bottom:0}.timeline-responsibilities li:before{content:"•";color:var(--accent-color);opacity:.5;font-weight:700;transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);position:absolute;left:0}.timeline-item:hover .timeline-role,.timeline-item:focus-within .timeline-role{color:color-mix(in srgb, var(--text-main) 94%, var(--accent-color));transform:translateY(-1px)}.timeline-item:hover .timeline-period,.timeline-item:focus-within .timeline-period{color:color-mix(in srgb, var(--text-main) 82%, var(--accent-color));border-color:color-mix(in srgb, var(--accent-color) 36%, #ffffff1a);background-color:color-mix(in srgb, var(--accent-color) 7%, transparent);transform:translateY(-1px)}.timeline-item:hover .timeline-company,.timeline-item:focus-within .timeline-company{color:color-mix(in srgb, var(--accent-color) 82%, var(--text-main))}.timeline-item:hover .timeline-desc,.timeline-item:focus-within .timeline-desc,.timeline-item:hover .timeline-responsibilities li,.timeline-item:focus-within .timeline-responsibilities li{color:color-mix(in srgb, var(--text-muted) 72%, var(--text-main))}.timeline-item:hover .timeline-responsibilities li:before,.timeline-item:focus-within .timeline-responsibilities li:before{opacity:.82;transform:translate(2px)}.timeline-responsibilities li:hover,.timeline-responsibilities li:focus-within{color:color-mix(in srgb, var(--text-main) 90%, var(--text-muted));text-shadow:0 0 8px color-mix(in srgb, var(--accent-color) 12%, transparent), 0 0 14px color-mix(in srgb, var(--text-main) 7%, transparent);transform:translate(3px)}.timeline-responsibilities li:hover:before,.timeline-responsibilities li:focus-within:before{opacity:1;text-shadow:0 0 8px color-mix(in srgb, var(--accent-color) 20%, transparent);transform:translate(3px)scale(1.06)}.timeline-responsibilities li:hover:after,.timeline-responsibilities li:focus-within:after{content:none}@media (width<=767px){.experience-section{overflow-x:clip}.experience-grid{gap:6.5rem}.timeline{padding-left:3rem}.timeline:before{left:16px}.timeline-item:before{left:-1rem;right:-1rem}.timeline-item:after{height:calc(100% - 40px);top:40px;left:calc(16px - 3rem)}.timeline-marker{width:34px;height:34px;left:-3rem}.timeline-marker svg{width:17px!important;height:17px!important}.timeline-item:hover .timeline-content,.timeline-item:focus-within .timeline-content{transform:translate(4px)}.timeline-header{align-items:flex-start;gap:.55rem;margin-bottom:.65rem}.timeline-role{font-size:clamp(1.28rem,6vw,1.46rem);font-weight:560;line-height:1.22}.timeline-period{color:color-mix(in srgb, var(--text-muted) 88%, var(--text-main));border-color:color-mix(in srgb, var(--border-color) 72%, transparent);margin-top:0;padding:.24rem .72rem;font-size:.82rem;line-height:1.25}.timeline-company{opacity:.88;margin-bottom:1.45rem;font-size:1.04rem;line-height:1.35}.timeline-responsibilities li{margin-bottom:1.05rem;padding-left:1.2rem;font-size:.98rem;line-height:1.72}}.projects-section{background-color:#0000;padding:12rem 0}.projects-header{max-width:600px;margin-bottom:4rem}.projects-subtitle{color:var(--text-muted);margin-top:-1.5rem;font-size:1.1rem}.projects-list{grid-template-columns:1fr;grid-auto-rows:1fr;gap:3rem;width:100%;display:grid}.projects-reveal-shell{width:100%}.projects-extra-panel{overflow:hidden}.projects-list--extra{padding-top:3rem}.project-reveal-item{height:100%}.project-row{border:none;border-bottom:1px solid var(--border-color);height:100%;transition:opacity var(--transition-normal);background-color:#0000;flex-direction:column;padding-bottom:3rem;display:flex;overflow:visible;cursor:pointer!important}@media (width>=768px){.project-row{flex-direction:row;align-items:center}.project-reveal-item--reverse .project-row{flex-direction:row-reverse}}.project-row-image{background-color:#0000;justify-content:center;align-items:center;width:100%;min-height:180px;padding:0;display:flex;position:relative}@media (width>=768px){.project-row-image{width:48%;padding-right:4rem}.project-reveal-item--reverse .project-row-image{padding-left:4rem;padding-right:0}}.project-row-image img{object-fit:contain;object-position:center;border-radius:8px;width:100%;height:100%;max-height:250px;transition:transform .6s cubic-bezier(.16,1,.3,1),box-shadow .6s}.project-row:hover .project-row-image img{transform:scale(1.03)translateY(-2px)}.project-row-content{flex-direction:column;flex:1;justify-content:flex-start;padding:2.5rem;display:flex}.project-icon{color:var(--accent-color);margin-bottom:1.5rem}.project-title{align-items:center;gap:.8rem;margin-bottom:1rem;font-size:1.4rem;line-height:1.3;display:flex}.project-title-icon{opacity:0;transition:all var(--transition-normal);color:var(--accent-color);transform:translate(-10px)}.project-row:hover .project-title-icon{opacity:1;transform:translate(0)}.project-desc{color:var(--text-muted);margin-bottom:2rem;font-size:1rem;line-height:1.6}.project-stacks{flex-wrap:wrap;gap:.5rem;margin-top:auto;margin-bottom:2rem;display:flex}.stack-badge{color:var(--accent-color);border:1px solid var(--border-color);transition:transform var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);cursor:default;background-color:#0000;border-radius:6px;align-items:center;gap:.42rem;padding:.3rem .8rem;font-size:.8rem;font-weight:500;display:inline-flex}.stack-badge-icon{color:currentColor;opacity:.72;flex-shrink:0;width:.88rem;height:.88rem}.stack-badge:hover{color:var(--text-main)}.projects-reveal-controls{justify-content:center;align-items:center;margin-top:4.1rem;display:flex}.projects-reveal-control{color:color-mix(in srgb, var(--text-main) 90%, transparent);font:inherit;letter-spacing:.025em;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;padding:.48rem .18rem .5rem;font-size:.96rem;font-weight:560;transition:color .42s,opacity .42s,transform .48s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative}.projects-reveal-control:before,.projects-reveal-control:after{content:"";height:1px;transition:width .58s cubic-bezier(.22,1,.36,1),opacity .42s,background-color .42s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.projects-reveal-control:before{background:color-mix(in srgb, var(--text-muted) 42%, var(--border-color));opacity:.72;width:116%}.projects-reveal-control:after{background:color-mix(in srgb, var(--accent-color) 74%, var(--text-main));opacity:0;width:0}.projects-reveal-control-label{z-index:1;position:relative}.projects-reveal-control:hover,.projects-reveal-control:focus-visible{color:var(--text-main);outline:none;transform:translateY(-1.5px)}.projects-reveal-control:hover:before,.projects-reveal-control:focus-visible:before{opacity:.3;width:128%}.projects-reveal-control:hover:after,.projects-reveal-control:focus-visible:after{opacity:.92;width:82%}@media (width<=767px){.projects-header{margin-bottom:6rem}.projects-list{gap:3.5rem}.project-row{align-items:stretch;padding-bottom:3.25rem}.project-row-image{justify-content:flex-start;min-height:150px;margin-bottom:.6rem}.project-row-image img{object-position:left center;width:min(100%,22rem);max-height:210px}.project-row-content{text-align:left;align-items:flex-start;padding:1.65rem 0 0}.project-title{align-items:flex-start;gap:.55rem;margin-bottom:.9rem;font-size:1.32rem}.project-title-icon{margin-top:.22rem}.project-desc{margin-bottom:1.65rem;line-height:1.68}.project-stacks{align-content:flex-start;align-items:flex-start;gap:.55rem .48rem;width:100%;margin-top:0;margin-bottom:1.6rem}.stack-badge{border-radius:7px;min-height:2rem;padding:.34rem .68rem;font-size:.76rem;line-height:1.15}.stack-badge-icon{width:.82rem;height:.82rem}.projects-reveal-controls{margin-top:3.25rem}.projects-reveal-control{font-size:.9rem}}.sub-title{text-align:center;margin-bottom:2rem;font-size:1.5rem;font-weight:500}.cert-list{grid-template-columns:1fr;gap:1.5rem;width:100%;display:grid}@media (width>=640px){.cert-list{grid-template-columns:1fr 1fr}}.cert-item{border-left:2px solid var(--border-color);transition:border-left-color var(--transition-normal), background-color var(--transition-normal);cursor:default;background-color:#0000;flex-direction:column;padding:1.2rem 1.5rem;display:flex}.cert-item:hover{border-left-color:var(--text-muted);background-color:#ffffff03}.cert-name{color:var(--text-main);align-items:flex-start;gap:.2rem;margin-bottom:.25rem;font-weight:500;line-height:1.4;display:flex}.cert-name svg{flex-shrink:0;margin-top:3px}.cert-issuer{color:var(--text-muted);font-size:.9rem}.about-grid-stacked{flex-direction:column;gap:4rem;width:100%;display:flex}.proof-section{flex-direction:column;gap:6rem;width:100%;display:flex}.proof-header{max-width:700px}.proof-title-main{color:#0000;letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-main) 40%, var(--text-muted));-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:clamp(2.2rem,4vw,3rem);font-weight:600}.proof-intro{color:var(--text-muted);border-left:2px solid #ffffff1a;padding-left:1.5rem;font-size:1.25rem;line-height:1.8}.proof-grid{flex-direction:column;gap:5rem;display:flex}@media (width>=768px){.proof-grid{grid-template-columns:1fr 1fr;gap:4rem 5rem;display:grid}}@media (width>=1024px){.proof-section{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:4rem}.proof-header{width:35%;position:sticky;top:14rem}.proof-grid{gap:6rem 5rem;width:58%}.proof-grid>div:nth-child(2n){transform:translateY(5rem)}}.proof-block{transition:all var(--transition-normal);cursor:default;flex-direction:column;display:flex;position:relative}.proof-block:hover{transform:translateY(-4px)}@media (width>=1024px){.proof-grid>div:nth-child(2n):hover{transform:translateY(calc(5rem - 4px))}}.proof-title{color:var(--text-main);letter-spacing:-.01em;margin-bottom:1.5rem;font-size:1.35rem;font-weight:500;line-height:1.4}.proof-icon{color:var(--accent-color);opacity:.8;transition:transform var(--transition-normal), color var(--transition-normal);margin-bottom:1.2rem}.proof-block:hover .proof-icon{color:var(--text-main);transform:translateY(-2px)scale(1.05)}.proof-desc{color:var(--text-muted);font-size:1.15rem;line-height:1.7}.contact-section{background-color:#0000;padding:10rem 0;position:relative;overflow:hidden}.contact-container{z-index:2;flex-direction:column;max-width:1100px;margin:0 auto;display:flex;position:relative}.contact-header-row{margin-bottom:4rem}.contact-content-split{grid-template-columns:1fr;gap:4rem;display:grid}@media (width>=900px){.contact-content-split{grid-template-columns:1fr 1.5fr;align-items:flex-start;gap:6rem}}.contact-info-col{flex-direction:column;display:flex}.contact-huge-title{color:var(--text-main);margin-bottom:1rem;font-size:clamp(2rem,4vw,2.5rem);font-weight:700;line-height:1.2}.contact-text{color:var(--text-muted);max-width:600px;font-size:1rem;line-height:1.6}.contact-direct-intro{color:var(--text-main);margin-bottom:2rem;font-size:1.1rem;font-weight:600}.contact-methods-list{flex-direction:column;gap:1.5rem;margin-bottom:3.5rem;display:flex}.contact-method-card{color:inherit;transition:transform var(--transition-normal);cursor:default;align-items:center;gap:1rem;text-decoration:none;display:flex}.contact-method-link,.contact-method-link *{cursor:pointer}.contact-method-card:hover{transform:translate(5px)}.method-icon-box{width:40px;height:40px;transition:background-color var(--transition-fast), transform var(--transition-fast);background-color:#38bdf81a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-method-card:hover .method-icon-box{background-color:#38bdf82e}.method-icon{color:var(--accent-color)}.method-details{flex-direction:column;gap:.1rem;display:flex}.method-label{color:var(--text-main);font-size:1rem;font-weight:600}.method-value{color:var(--accent-color);font-size:1rem;text-decoration:none}.contact-method-link:hover .method-value,.contact-method-link:focus-visible .method-value{color:color-mix(in srgb, var(--accent-color) 82%, var(--text-main));text-decoration:none}.contact-method-link:focus-visible{outline:none}.contact-minimal-form-wrapper{position:relative}.contact-notification-viewport{z-index:1400;pointer-events:none;justify-content:flex-end;width:min(100vw - 2rem,29.5rem);display:flex;position:fixed;bottom:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem)}.contact-notification-popup{--contact-toast-accent:#7fd79a;border:1px solid color-mix(in srgb, var(--border-color) 68%, transparent);border-left-color:color-mix(in srgb, var(--contact-toast-accent) 52%, var(--border-color));background:linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 98%, #fff 2%), color-mix(in srgb, var(--bg-color) 96%, var(--bg-surface) 4%));width:100%;box-shadow:0 16px 34px #0000003d, 0 1px 0 color-mix(in srgb, var(--text-main) 3%, transparent) inset;pointer-events:auto;border-radius:13px;align-items:flex-start;gap:1.05rem;padding:1.2rem 1.38rem 1.16rem 1.18rem;display:flex;position:relative}.contact-notification-popup--network,.contact-notification-popup--api,.contact-notification-popup--validation{--contact-toast-accent:#d08a72}.contact-notification-popup--rate-limit{--contact-toast-accent:#d1b56f}.contact-notification-popup:before{content:"";background:color-mix(in srgb, var(--contact-toast-accent) 72%, transparent);border-radius:999px;width:2px;position:absolute;top:.72rem;bottom:.72rem;left:-1px}.contact-notification-visual{flex-shrink:0;width:2.1rem;height:2.1rem;margin-top:.08rem;position:relative}.contact-notification-icon{width:2.1rem;height:2.1rem;color:color-mix(in srgb, var(--contact-toast-accent) 86%, var(--text-main));background:color-mix(in srgb, var(--contact-toast-accent) 8%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--contact-toast-accent) 18%, transparent) inset;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative}.contact-notification-close{width:1.84rem;height:1.84rem;color:var(--text-muted);background:color-mix(in srgb, var(--text-main) 0%, transparent);opacity:.76;border-radius:999px;justify-content:center;align-items:center;transition:color .28s,background-color .28s,transform .34s cubic-bezier(.16,1,.3,1),opacity .28s,box-shadow .28s;display:inline-flex;position:absolute;top:.78rem;right:.78rem}.contact-notification-close:hover{color:var(--text-main);background:color-mix(in srgb, var(--text-main) 6%, transparent);opacity:1;transform:translateY(-1px)scale(1.02)}.contact-notification-close:focus-visible{color:var(--text-main);background:color-mix(in srgb, var(--text-main) 7%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-color) 18%, transparent);outline:none}.contact-notification-copy{flex-direction:column;gap:.38rem;max-width:23rem;padding:.02rem 2.05rem 0 0;display:flex}.contact-notification-copy strong{letter-spacing:0;color:var(--text-main);font-size:1rem;font-weight:600;line-height:1.24}.contact-notification-copy span{color:var(--text-muted);font-size:.92rem;line-height:1.58}@media (width<=640px){.contact-notification-viewport{width:auto;bottom:1rem;left:1rem;right:1rem}.contact-notification-popup{gap:.9rem;padding:1.08rem 1.02rem 1rem}.contact-notification-copy{gap:.36rem;padding-right:1.7rem}.contact-notification-copy strong{font-size:.98rem}.contact-notification-visual,.contact-notification-icon{width:2rem;height:2rem}}.minimal-form{flex-direction:column;gap:1.5rem;display:flex}.contact-honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.turnstile-field{min-height:65px}.turnstile-widget{max-width:100%;overflow:hidden}.minimal-input-group{flex-direction:column;gap:.5rem;display:flex}.minimal-input-group label{color:var(--text-main);font-size:1rem;font-weight:500}.minimal-input-group input,.minimal-input-group textarea{border:1px solid var(--border-color);width:100%;color:var(--text-main);transition:all var(--transition-fast);background-color:#0000;border-radius:6px;padding:.8rem 1rem;font-family:inherit;font-size:1rem;font-weight:400}[data-theme=dark] .minimal-input-group input,[data-theme=dark] .minimal-input-group textarea{border-color:var(--border-color);background-color:#0000001a}.minimal-input-group input:hover,.minimal-input-group textarea:hover{border-color:var(--text-muted)}.minimal-input-group input::placeholder,.minimal-input-group textarea::placeholder{color:color-mix(in srgb, var(--text-muted) 76%, transparent);opacity:.72}.minimal-input-group input:focus,.minimal-input-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-color) 15%, transparent);outline:none}.minimal-input-group textarea{resize:none;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-muted) 52%, transparent) transparent;min-height:11.5rem;max-height:15rem;overflow-y:auto}.minimal-input-group textarea::-webkit-scrollbar{width:.7rem}.minimal-input-group textarea::-webkit-scrollbar-track{background:color-mix(in srgb, var(--bg-color) 58%, transparent);border-radius:999px}.minimal-input-group textarea::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:color-mix(in srgb, var(--text-muted) 54%, transparent);border:.18rem solid #0000;border-radius:999px}.minimal-input-group textarea::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb, var(--text-main) 38%, transparent)}.minimal-submit-btn{isolation:isolate;background-color:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);cursor:pointer;border-radius:100px;justify-content:center;align-items:center;gap:.6rem;width:100%;margin-top:1rem;padding:.9rem 1.5rem;font-size:1rem;font-weight:500;transition:border-color .8s,color .8s,transform .8s cubic-bezier(.25,1,.35,1);display:flex;position:relative;overflow:hidden}.minimal-submit-btn:before{content:"";background-color:var(--btn-fill);z-index:-1;border-radius:0 100px 100px 0;width:105%;height:100%;transition:transform .8s cubic-bezier(.25,1,.35,1);position:absolute;top:0;left:0;transform:translate(-100%)}.minimal-submit-btn:hover{color:var(--btn-hover-text);border-color:#0000;transform:translateY(-2px)}.minimal-submit-btn:hover:before{transform:translate(0)}.minimal-submit-btn:disabled{cursor:not-allowed;opacity:.72;transform:none}.minimal-submit-btn:disabled:before{transform:translate(-100%)}.submit-icon{opacity:.7;transition:opacity .8s,color .8s,transform .8s cubic-bezier(.25,1,.35,1)}.minimal-submit-btn:hover .submit-icon{opacity:1;color:var(--btn-hover-text);transform:translate(3px)translateY(-3px)}.minimal-submit-btn:disabled .submit-icon{color:currentColor;transform:none}.project-details-page{padding-bottom:12rem}.pd-header{margin-bottom:2rem;padding:3rem 0 2rem}.back-link{color:var(--text-muted);transition:color var(--transition-normal);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-weight:500;display:inline-flex}.back-link:hover{color:var(--text-main)}.floating-back-wrapper{bottom:calc(2rem + var(--floating-back-footer-offset,0px));z-index:100;transition:bottom .28s cubic-bezier(.22,1,.36,1);position:fixed;left:2rem}.floating-back-btn{color:var(--text-muted);transition:color var(--transition-normal);align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.floating-back-btn:hover{color:var(--text-main)}.pd-title{letter-spacing:-.03em;max-width:1200px;margin-bottom:.5rem;font-size:clamp(2.5rem,4vw,3.5rem);font-weight:700;line-height:1.1}.pd-stacks{flex-wrap:wrap;gap:.8rem;max-width:1200px;margin-bottom:8rem;display:flex}.pd-section-title{align-items:center;gap:.8rem;margin-bottom:2.5rem;font-size:1.8rem;font-weight:500;display:flex}.section-icon{color:var(--accent-color)}.pd-content{max-width:1200px;margin-bottom:8rem}.pd-capabilities-section{margin-top:8rem}.pd-desc{color:var(--text-muted);max-width:900px;margin-bottom:2rem;font-size:1.15rem;line-height:1.8}.pd-capabilities-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:4rem;margin-top:1rem;padding:0;list-style:none;display:grid}.pd-capability-item{color:var(--text-main);transition:border-color var(--transition-normal), transform var(--transition-normal);background:0 0;border:none;border-top:1px solid #ffffff0a;border-radius:0;align-items:flex-start;gap:1.5rem;padding:1rem 0;font-size:1.1rem;font-weight:400;line-height:1.6;display:flex}.pd-capability-item:hover{box-shadow:none;background:0 0;border-color:#ffffff26;transform:translate(6px)}.pd-capability-item strong{color:var(--text-main);letter-spacing:-.01em;margin-bottom:.8rem;display:block;font-weight:500!important}.pd-capability-item span,.pd-capability-item p{color:var(--text-muted);font-weight:400!important}.capability-icon{color:var(--accent-color);flex-shrink:0;margin-top:2px}.pd-canvas-section{margin-bottom:3rem}.pd-hint{color:var(--text-muted);text-align:center;margin:0;font-size:.95rem}.pd-preview-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem 1.5rem;margin-top:1rem;margin-bottom:2rem;display:flex}.pd-preview-toggle{border:1px solid color-mix(in srgb, var(--border-color) 82%, transparent);background:color-mix(in srgb, var(--bg-surface) 70%, transparent);color:var(--text-muted);letter-spacing:.01em;-webkit-backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:.65rem;padding:.35rem .45rem .35rem .8rem;font-size:.84rem;font-weight:500;transition:border-color .34s cubic-bezier(.22,1,.36,1),background-color .34s cubic-bezier(.22,1,.36,1),color .34s cubic-bezier(.22,1,.36,1),transform .34s cubic-bezier(.22,1,.36,1),box-shadow .34s cubic-bezier(.22,1,.36,1);display:inline-flex}.pd-preview-toggle:hover,.pd-preview-toggle:focus-visible{color:var(--text-main);border-color:color-mix(in srgb, var(--text-main) 10%, transparent);background:color-mix(in srgb, var(--accent-light) 48%, transparent);outline:none;transform:translateY(-.5px)}.pd-preview-toggle-label{white-space:nowrap}.pd-preview-toggle-switch{background:color-mix(in srgb, var(--text-muted) 20%, transparent);border-radius:999px;align-items:center;width:2.25rem;height:1.28rem;padding:.12rem;transition:background-color .34s cubic-bezier(.22,1,.36,1),box-shadow .34s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative}.pd-preview-toggle-thumb{background:#ffffffeb;border-radius:50%;width:1rem;height:1rem;transition:transform .34s cubic-bezier(.22,1,.36,1),background-color .34s cubic-bezier(.22,1,.36,1);transform:translate(0);box-shadow:0 2px 10px #0000002e}.pd-preview-toggle.active{color:var(--text-main)}.pd-preview-toggle.active .pd-preview-toggle-switch{background:color-mix(in srgb, var(--text-main) 18%, var(--accent-light) 82%)}.pd-preview-toggle.active .pd-preview-toggle-thumb{background:var(--text-main);transform:translate(.97rem)}.canvas-wrapper{background-color:var(--bg-surface);border-radius:12px;width:100%;height:600px;position:relative;overflow:hidden;box-shadow:0 4px 60px #0006,0 0 0 1px #ffffff05}.canvas-stage{position:absolute;inset:0}.pd-canvas-reset{z-index:5;border:1px solid color-mix(in srgb, var(--border-color) 82%, transparent);background:color-mix(in srgb, var(--bg-surface) 76%, transparent);width:2.35rem;height:2.35rem;color:color-mix(in srgb, var(--text-main) 88%, transparent);-webkit-backdrop-filter:blur(12px);border-radius:999px;justify-content:center;align-items:center;transition:transform .34s cubic-bezier(.22,1,.36,1),color .34s cubic-bezier(.22,1,.36,1),border-color .34s cubic-bezier(.22,1,.36,1),background-color .34s cubic-bezier(.22,1,.36,1),box-shadow .34s cubic-bezier(.22,1,.36,1);display:inline-flex;position:absolute;bottom:1rem;right:1rem;box-shadow:0 10px 24px #0000001f}.pd-canvas-reset svg{stroke-width:1.95px}.pd-canvas-reset:hover,.pd-canvas-reset:focus-visible{color:var(--text-main);border-color:color-mix(in srgb, var(--text-main) 12%, transparent);background:color-mix(in srgb, var(--accent-light) 54%, transparent);outline:none;transform:translateY(-1px);box-shadow:0 14px 28px #00000029}.pd-canvas-arrow{z-index:5;border:1px solid color-mix(in srgb, var(--border-color) 56%, transparent);background:color-mix(in srgb, var(--bg-surface) 26%, transparent);width:2.3rem;height:2.3rem;color:color-mix(in srgb, var(--text-main) 62%, transparent);-webkit-backdrop-filter:blur(12px);opacity:.76;border-radius:999px;justify-content:center;align-items:center;transition:transform .34s cubic-bezier(.22,1,.36,1),color .34s cubic-bezier(.22,1,.36,1),border-color .34s cubic-bezier(.22,1,.36,1),background-color .34s cubic-bezier(.22,1,.36,1),box-shadow .34s cubic-bezier(.22,1,.36,1),opacity .34s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 8px 18px #00000014}.pd-canvas-arrow svg{stroke-width:1.95px}.pd-canvas-arrow:hover:not(:disabled),.pd-canvas-arrow:focus-visible{color:var(--text-main);border-color:color-mix(in srgb, var(--text-main) 10%, transparent);background:color-mix(in srgb, var(--bg-surface) 42%, transparent);opacity:1;outline:none;transform:translateY(calc(-50% - 1px));box-shadow:0 10px 22px #0000001f}.pd-canvas-arrow:disabled{opacity:.16;cursor:default;box-shadow:none}.pd-canvas-arrow-prev{left:.85rem}.pd-canvas-arrow-next{right:.85rem}.pd-canvas-page-dots{z-index:5;justify-content:center;align-items:center;gap:.28rem;padding:0;display:inline-flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.pd-canvas-page-dot{color:#0000;opacity:.68;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:1.15rem;height:1rem;padding:0;transition:opacity .36s,transform .36s cubic-bezier(.22,1,.36,1);display:inline-flex}.pd-canvas-page-dot:hover,.pd-canvas-page-dot:focus-visible{opacity:1;outline:none;transform:translateY(-.5px)}.pd-canvas-page-dot-core{background:color-mix(in srgb, var(--text-muted) 52%, transparent);border-radius:999px;width:.28rem;height:.28rem;transition:width .38s cubic-bezier(.22,1,.36,1),background-color .36s,opacity .36s,transform .38s cubic-bezier(.22,1,.36,1),box-shadow .36s}.pd-canvas-page-dot.active{opacity:1}.pd-canvas-page-dot.active .pd-canvas-page-dot-core{background:color-mix(in srgb, var(--text-main) 72%, transparent);width:.78rem;box-shadow:none}.tc-wrapper{width:100%!important;height:100%!important;overflow:hidden!important}.tc-content{justify-content:center!important;align-items:center!important;width:100%!important;height:100%!important;display:flex!important}.canvas-wrapper.is-zoom-animating .tc-content{transition:transform .3s cubic-bezier(.2,.9,.25,1)}.canvas-image{object-fit:contain;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;touch-action:none;will-change:transform;max-width:100%;max-height:100%}.canvas-image:active{cursor:grabbing}.tc-wrapper{width:100%!important;height:100%!important}.tc-content img{pointer-events:auto!important}.tc-content{touch-action:none}.magnifier-glass{pointer-events:none;z-index:9999;border:1px solid var(--border-color);background-color:var(--bg-surface);opacity:0;background-repeat:no-repeat;border-radius:12px;width:480px;height:300px;transition:opacity .2s cubic-bezier(.175,.885,.32,1.275),transform .2s cubic-bezier(.175,.885,.32,1.275);position:fixed;transform:scale(.8);box-shadow:0 10px 40px #0006,inset 0 0 20px #0000004d}[data-theme=dark] .pd-preview-toggle{border-color:color-mix(in srgb, var(--border-color) 92%, #ffffff0a);background:color-mix(in srgb, var(--bg-surface) 84%, transparent)}[data-theme=dark] .pd-preview-toggle:hover,[data-theme=dark] .pd-preview-toggle:focus-visible{border-color:color-mix(in srgb, var(--border-color) 96%, #ffffff1f);background:color-mix(in srgb, var(--accent-light) 100%, #ffffff04)}[data-theme=dark] .pd-preview-toggle-switch{background:#ffffff1a}[data-theme=dark] .pd-preview-toggle-thumb{background:#f1f5f9eb}[data-theme=dark] .pd-preview-toggle.active .pd-preview-toggle-switch{background:#f1f5f92e}[data-theme=dark] .pd-preview-toggle.active .pd-preview-toggle-thumb{background:#f1f5f9fa}[data-theme=dark] .pd-canvas-reset{border-color:color-mix(in srgb, var(--border-color) 92%, #ffffff0a);background:color-mix(in srgb, var(--bg-surface) 88%, transparent);color:#f1f5f9d6;box-shadow:0 12px 28px #00000038}[data-theme=dark] .pd-canvas-arrow{border-color:color-mix(in srgb, var(--border-color) 62%, #ffffff05);background:color-mix(in srgb, var(--bg-surface) 38%, transparent);color:#f1f5f99e;box-shadow:0 10px 22px #00000029}[data-theme=dark] .pd-canvas-arrow:hover:not(:disabled),[data-theme=dark] .pd-canvas-arrow:focus-visible{color:#f1f5f9e6;border-color:color-mix(in srgb, var(--border-color) 78%, #ffffff14);background:color-mix(in srgb, var(--bg-surface) 54%, #ffffff03);box-shadow:0 12px 26px #00000038}[data-theme=dark] .pd-canvas-page-dots{box-shadow:none;background:0 0}[data-theme=dark] .pd-canvas-page-dot-core{background:color-mix(in srgb, var(--text-secondary) 50%, transparent)}[data-theme=dark] .pd-canvas-page-dot.active .pd-canvas-page-dot-core{box-shadow:none;background:#f1f5f9d6}[data-theme=dark] .pd-canvas-reset:hover,[data-theme=dark] .pd-canvas-reset:focus-visible{color:#f1f5f9fa;border-color:color-mix(in srgb, var(--border-color) 96%, #ffffff24);background:color-mix(in srgb, var(--accent-light) 100%, #ffffff05);box-shadow:0 16px 32px #00000047}@media (width<=767px){.project-details-page{padding-bottom:8rem}.pd-header{margin-bottom:1.25rem;padding:2rem 0 1.4rem}.pd-canvas-section{margin-bottom:2.2rem}.pd-title,.pd-desc,.pd-section-title,.pd-stacks,.pd-capability-item,.capability-content{min-width:0}.pd-title,.pd-desc,.pd-capability-item strong,.pd-capability-item p,.project-details-page .stack-badge span{overflow-wrap:anywhere}.pd-stacks{max-width:100%}.project-details-page .stack-badge{min-width:0;max-width:100%}.project-details-page .stack-badge span{min-width:0}.canvas-wrapper{touch-action:pan-y pinch-zoom;border-radius:10px;height:clamp(13.5rem,58vw,20rem)}.canvas-image{object-fit:contain;cursor:default;touch-action:pan-y pinch-zoom;width:100%;height:100%}.pd-canvas-section .tc-content{touch-action:pan-y pinch-zoom}.pd-canvas-arrow{width:2.05rem;height:2.05rem}.pd-canvas-arrow-prev{left:.6rem}.pd-canvas-arrow-next{right:.6rem}.pd-canvas-page-dots{bottom:.8rem}.pd-canvas-reset{width:2.05rem;height:2.05rem;bottom:.7rem;right:.7rem}.pd-preview-meta{margin-top:.72rem;margin-bottom:1.45rem}.pd-hint{font-size:.82rem}.pd-preview-toggle,.magnifier-glass,.floating-back-wrapper{display:none}.screenshots-grid{grid-template-columns:minmax(0,1fr);gap:3.5rem}}.screenshots-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:5rem 2rem;display:grid}.screenshot-thumb-wrapper{aspect-ratio:16/9;border:1px solid var(--border-color);cursor:zoom-in;background-color:var(--bg-surface);text-align:left;appearance:none;border-radius:12px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.screenshot-title{color:var(--text-muted);text-align:center;margin-top:2rem;font-size:.95rem;font-weight:500;display:block}.pd-screenshot-thumb{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-normal)}.screenshot-overlay{opacity:0;transition:opacity var(--transition-fast);background-color:#0f172a99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.screenshot-overlay span{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #ffffff80;border-radius:20px;padding:.5rem 1rem;font-weight:500}.screenshot-thumb-wrapper:hover .pd-screenshot-thumb{transform:scale(1.05)}.screenshot-thumb-wrapper:hover .screenshot-overlay{opacity:1}.lightbox-overlay{top:var(--nav-height,80px);z-index:999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0a0a0af2;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;bottom:0;left:0;right:0}.lightbox-header{z-index:1000;pointer-events:auto;justify-content:space-between;align-items:center;height:80px;padding:0 2rem;display:flex;position:absolute;top:0;left:0;right:0}.lightbox-title{color:#fff;opacity:.9;font-size:1.1rem;font-weight:500}.lightbox-close{color:#fffc;transition:all var(--transition-fast);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;padding:.75rem;display:flex;position:static}.lightbox-close:hover{color:#fff;background-color:#ffffff26;transform:scale(1.05)}.lightbox-nav{color:#fffc;cursor:pointer;z-index:1000;width:56px;height:56px;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{color:#fff;background:#ffffff26;transform:translateY(-50%)scale(1.05)}.lightbox-prev{left:2rem}.lightbox-next{right:2rem}.lightbox-content{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.lightbox-content .tc-wrapper{box-shadow:none!important;background-color:#0000!important;border:none!important}.lightbox-image{object-fit:contain;cursor:grab;border-radius:8px;box-shadow:0 20px 60px #0006;max-width:85vw!important;max-height:80vh!important}.lightbox-image:active{cursor:grabbing}@media (width<=767px){.lightbox-overlay{padding:.9rem}.lightbox-header{background:linear-gradient(#05070ab8,#0000);gap:.85rem;height:auto;min-height:3.75rem;padding:0 .85rem}.lightbox-title{-webkit-line-clamp:2;line-clamp:2;white-space:normal;text-shadow:0 1px 8px #000000a6;-webkit-box-orient:vertical;flex:1;min-width:0;max-width:none;font-size:.9rem;line-height:1.35;display:-webkit-box;overflow:hidden}.lightbox-close{color:#ffffffeb;-webkit-backdrop-filter:blur(10px);background:#05070aad;border-color:#ffffff2e;flex-shrink:0;width:2.28rem;height:2.28rem;padding:0;box-shadow:0 10px 24px #00000042}.lightbox-close svg{stroke-width:2px;width:1.15rem!important;height:1.15rem!important}.lightbox-nav{color:#ffffffeb;-webkit-backdrop-filter:blur(10px);background:#05070a9e;border-color:#ffffff2e;width:2.35rem;height:2.35rem;box-shadow:0 10px 24px #0000003d}.lightbox-nav svg{stroke-width:2px;width:1.25rem!important;height:1.25rem!important}.lightbox-prev{left:.65rem}.lightbox-next{right:.65rem}.lightbox-nav:hover,.lightbox-close:hover{background:#05070ac7}.lightbox-content{touch-action:pan-y pinch-zoom;padding:3rem .2rem 1rem}.lightbox-image{border-radius:7px;max-width:92vw!important;max-height:74vh!important}}.back-to-top{--back-to-top-icon-rest:#0c0e12eb;--back-to-top-icon-active:#f8fafcfa;--back-to-top-sheen-rest:.7;--back-to-top-sheen-active:.08;translate:0 calc(var(--footer-offset,0px) * -1);isolation:isolate;border:1px solid color-mix(in srgb, var(--text-main) 9%, transparent);width:2.9rem;height:2.9rem;color:var(--back-to-top-icon-rest);-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;backface-visibility:hidden;will-change:transform, opacity;z-index:980;background-color:#fff;border-radius:999px;justify-content:center;align-items:center;transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),color .42s cubic-bezier(.23,1,.32,1),border-color .42s cubic-bezier(.23,1,.32,1),background-color .42s cubic-bezier(.23,1,.32,1),box-shadow .42s cubic-bezier(.23,1,.32,1),visibility .32s;display:inline-flex;position:fixed;bottom:2.15rem;right:2rem;overflow:hidden;transform:translateY(.5rem);box-shadow:0 14px 32px #0000001a,0 1px #ffffffd1}.back-to-top:before{content:"";border-radius:inherit;background:linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 58%, var(--text-main) 42%), color-mix(in srgb, var(--bg-color) 20%, #000 80%));opacity:1;z-index:0;transition:transform .62s cubic-bezier(.22,1,.36,1),opacity .62s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translateY(102%)}.back-to-top:after{content:"";border-radius:inherit;opacity:var(--back-to-top-sheen-rest);pointer-events:none;z-index:0;background:linear-gradient(#ffffff75,#ffffff14 42%,#0000 72%);transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .52s cubic-bezier(.22,1,.36,1);position:absolute;inset:1px;transform:translateY(0)}.back-to-top.visible{opacity:1;visibility:visible;pointer-events:auto;animation:.82s cubic-bezier(.22,1,.36,1) forwards back-to-top-appear;transform:translateY(0)}.back-to-top.visible:before{animation:1s cubic-bezier(.22,1,.36,1) .14s back-to-top-preview-fill}.back-to-top.visible:after{animation:1s cubic-bezier(.22,1,.36,1) .14s back-to-top-preview-sheen}.back-to-top:hover,.back-to-top:focus-visible{color:#f8fafcfa;border-color:color-mix(in srgb, var(--border-color) 45%, #ffffff29);background-color:color-mix(in srgb, var(--bg-surface) 82%, transparent);outline:none;transform:translateY(-1px);box-shadow:0 18px 36px #00000029,0 1px #ffffff0f}.back-to-top:hover:before,.back-to-top:focus-visible:before{opacity:1;transform:translateY(0)}.back-to-top:hover:after,.back-to-top:focus-visible:after{opacity:.08;transform:translateY(4%)}.back-to-top svg{z-index:1;color:var(--back-to-top-icon-rest);stroke:currentColor;opacity:.98;transition:transform .42s cubic-bezier(.23,1,.32,1),opacity .42s cubic-bezier(.23,1,.32,1),color .42s cubic-bezier(.23,1,.32,1),stroke .42s cubic-bezier(.23,1,.32,1);display:block;position:relative}.back-to-top svg *{stroke:currentColor;transition:stroke .42s cubic-bezier(.23,1,.32,1)}.back-to-top.visible svg{animation:1s cubic-bezier(.22,1,.36,1) .14s back-to-top-preview-icon}.back-to-top:hover svg,.back-to-top:focus-visible svg{color:var(--back-to-top-icon-active);stroke:var(--back-to-top-icon-active);opacity:1;transform:translateY(-1px)}@media (width<=767px){.back-to-top{width:2.65rem;height:2.65rem;bottom:1.45rem;right:1.35rem}}[data-theme=dark] .back-to-top{border-color:color-mix(in srgb, var(--border-color) 82%, #ffffff14);color:var(--back-to-top-icon-rest);background-color:#f7f8fa;box-shadow:0 18px 36px #00000047,0 1px #ffffff14}[data-theme=dark] .back-to-top:before{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 72%, white 8%), color-mix(in srgb, var(--bg-color) 88%, #000 12%))}[data-theme=dark] .back-to-top:hover,[data-theme=dark] .back-to-top:focus-visible{border-color:color-mix(in srgb, var(--border-color) 92%, #ffffff1f);background-color:color-mix(in srgb, var(--bg-surface) 92%, #ffffff05);box-shadow:0 20px 40px #00000057,0 1px #ffffff0a}@media (prefers-reduced-motion:reduce){.back-to-top.visible,.back-to-top.visible:before,.back-to-top.visible:after{animation:none}}@keyframes back-to-top-appear{0%{opacity:0;transform:translateY(.4rem)}62%{opacity:1;transform:translateY(0)}82%{opacity:1;transform:translateY(-.04rem)}to{opacity:1;transform:translateY(0)}}@keyframes back-to-top-preview-fill{0%{opacity:1;transform:translateY(102%)}35%{opacity:1;transform:translateY(0)}65%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(102%)}}@keyframes back-to-top-preview-sheen{0%{opacity:var(--back-to-top-sheen-rest);transform:translateY(0)}35%{opacity:var(--back-to-top-sheen-active);transform:translateY(3%)}65%{opacity:var(--back-to-top-sheen-active);transform:translateY(1%)}to{opacity:var(--back-to-top-sheen-rest);transform:translateY(0)}}@keyframes back-to-top-preview-icon{0%{color:var(--back-to-top-icon-rest);stroke:var(--back-to-top-icon-rest)}35%{color:var(--back-to-top-icon-active);stroke:var(--back-to-top-icon-active)}65%{color:var(--back-to-top-icon-active);stroke:var(--back-to-top-icon-active)}to{color:var(--back-to-top-icon-rest);stroke:var(--back-to-top-icon-rest)}}:root{--bg-color:#f5f5f5;--bg-surface:#ededed;--text-main:#121212;--text-muted:#888;--text-secondary:#444;--accent-color:#444;--accent-light:#eaeaea;--border-color:#d6d6d6;--border-color-subtle:#0000000d;--nav-scrolled-bg:#f5f5f5d9;--cert-gradient-end:#eaeaea;--tech-border-inactive:#00000014;--tech-bg-inactive:#00000008;--tech-border-active:#0000001a;--tech-bg-active:#00000005;--tech-stack-item-bg:#0000000d;--tech-stack-item-hover-bg:#00000014;--btn-border:#0000001f;--btn-bg:transparent;--btn-fill:var(--text-main);--btn-text:var(--text-main);--btn-hover-text:var(--bg-surface);--font-sans:"Inter", system-ui, -apple-system, sans-serif;--container-max:1100px;--nav-height:80px;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.4s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-color:#05070a;--bg-surface:#0a0d14;--text-main:#f1f5f9;--text-muted:#64748b;--text-secondary:#94a3b8;--accent-color:#94a3b8;--accent-light:#ffffff0d;--border-color:#ffffff0f;--border-color-subtle:#ffffff08;--nav-scrolled-bg:#05070ad9;--cert-gradient-end:#101623;--tech-border-inactive:#ffffff0d;--tech-bg-inactive:#ffffff04;--tech-border-active:transparent;--tech-bg-active:transparent;--tech-stack-item-bg:#ffffff05;--tech-stack-item-hover-bg:#ffffff09;--btn-border:#ffffff26;--btn-bg:transparent;--btn-fill:var(--text-main);--btn-text:var(--text-main);--btn-hover-text:var(--bg-color)}[data-theme=dark] body{background-color:var(--bg-color);background-image:linear-gradient(#ffffff02 1px,#0000 1px),linear-gradient(90deg,#ffffff02 1px,#0000 1px);background-size:60px 60px}[data-theme=dark] .app:before{content:"";pointer-events:none;background:radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%), #ffffff05, transparent 40%), radial-gradient(ellipse at top, #ffffff05 0%, transparent 60%);z-index:10000;position:fixed;inset:0}@media (width<=767px),(pointer:coarse){[data-theme=dark] .app:before{background:linear-gradient(#ffffff05 0%,#ffffff02 24%,#0000 56%)}}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--text-main);background-color:var(--bg-color);scroll-behavior:smooth;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--text-main);font-weight:500;line-height:1.2}body,p,h1,h2,h3,h4,h5,h6,span,strong,em,b,i,label,div{cursor:default}a,a *,button,button *,input[type=submit],input[type=button],.resume-btn,.social-pill,.brand,.brand *,.project-row,.project-row *,.screenshot-thumb-wrapper,.screenshot-thumb-wrapper *{cursor:pointer}input[type=text],input[type=email],textarea{cursor:text}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--text-muted)}img,video{max-width:100%;height:auto;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 2rem}.section{padding:6rem 0}.section.about-section{padding:8rem 0 0}@media (width<=767px){.section.about-section{padding:clamp(4.5rem,2.5vw,1rem) 0 0}}.section-title{margin-bottom:3rem;font-size:2rem;font-weight:500;display:inline-block;position:relative}.section-title:after{content:"";background-color:var(--text-main);width:40px;height:2px;position:absolute;bottom:-10px;left:0}.main-content,footer{z-index:10;position:relative}
