@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Source+Code+Pro:wght@500;600&display=swap);.container-1{display:flex;flex:1 1;min-height:0;width:100%}.site-header{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background-color:#f5f6f2d1;border-bottom:1px solid #2026291f;border-bottom:1px solid var(--line);position:sticky;top:0;width:100%;z-index:20}.nav-bar{align-items:center;display:flex;height:4.5rem;justify-content:space-between;margin:0 auto;width:min(100% - 3rem,74rem)}.nav-brand{align-items:center;display:inline-flex;font-size:.88rem;font-weight:800;gap:.65rem;letter-spacing:.12em;text-decoration:none}.brand-mark{background-color:#ffffffb3;border:1px solid #2026291f;border:1px solid var(--line);border-radius:.6rem;display:grid;height:2rem;place-items:center;width:2rem}.brand-mark img{height:1.05rem;width:1.05rem}.nav-item,.nav-menu{align-items:center;display:flex}.nav-menu{gap:1.5rem}.nav-item{gap:.2rem}.a-button{border-radius:.65rem;border-radius:var(--radius-sm);color:#687176;color:var(--muted);font-size:.88rem;font-weight:600;padding:.65rem .85rem;text-decoration:none;transition:color .2s,background-color .2s}.a-button.active,.a-button:hover{background-color:#6957d517;color:#202629;color:var(--ink)}.resume-button{align-items:center;background-color:#202629;background-color:var(--ink);border-radius:.65rem;border-radius:var(--radius-sm);color:#fff;display:inline-flex;font-size:.85rem;font-weight:700;gap:.45rem;padding:.7rem 1rem;text-decoration:none;transition:transform .2s,background-color .2s}.resume-button img{filter:brightness(0) invert(1);width:.95rem}.resume-button:hover{background-color:#0f1315;transform:translateY(-1px)}.menu-toggle{align-items:center;background:#ffffffa6;border:1px solid #2026291f;border:1px solid var(--line);border-radius:.65rem;border-radius:var(--radius-sm);cursor:pointer;display:none;flex-direction:column;gap:.25rem;height:2.5rem;justify-content:center;width:2.5rem}.menu-toggle span{background-color:#202629;background-color:var(--ink);height:1px;width:1rem}.hero{grid-gap:clamp(2rem,4vw,4rem);align-items:center;display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);margin:0 auto;min-height:100%;padding:clamp(3rem,7vh,6rem) 0;width:min(100% - 3rem,74rem)}.hero-copy h1{font-size:clamp(2.7rem,5.4vw,5.2rem);font-weight:700;letter-spacing:-.055em;line-height:1.02;margin-top:1.25rem;max-width:100%}.hero-copy,.hero-profile{min-width:0}.hero-introduction{color:#687176;color:var(--muted);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.8;margin-top:1.75rem;max-width:42rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.primary-action,.secondary-action{align-items:center;border-radius:.65rem;border-radius:var(--radius-sm);display:inline-flex;font-size:.9rem;font-weight:700;gap:.6rem;justify-content:center;padding:.85rem 1.1rem;text-decoration:none;transition:transform .2s,background-color .2s}.primary-action{background-color:#6957d5;background-color:var(--accent);color:#fff}.secondary-action{background-color:#ffffffb8;background-color:var(--surface);border:1px solid #2026291f;border:1px solid var(--line)}.primary-action:hover,.secondary-action:hover{transform:translateY(-2px)}.hero-links{display:flex;gap:1.25rem;margin-top:2rem}.hero-links a{color:#687176;color:var(--muted);font-family:Source Code Pro,monospace;font-size:.78rem;text-underline-offset:.25rem}.hero-profile{background-color:#ffffffb8;background-color:var(--surface);border:1px solid #2026291f;border:1px solid var(--line);border-radius:1.6rem;border-radius:var(--radius-lg);box-shadow:0 1.5rem 4rem #27283714;box-shadow:var(--shadow);padding:1.5rem}.profile-orbit{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#6957d540,#dba4b84d) border-box;background:linear-gradient(var(--surface-strong),var(--surface-strong)) padding-box,linear-gradient(135deg,#6957d540,#dba4b84d) border-box;border:1px solid #0000;border-radius:1.2rem;border-radius:calc(var(--radius-lg) - .4rem);display:grid;height:14rem;overflow:hidden;place-items:center;position:relative}.profile-orbit:after,.profile-orbit:before{border:1px solid #6957d533;border-radius:50%;content:"";position:absolute}.profile-orbit:before{height:10rem;width:10rem}.profile-orbit:after{height:16rem;width:16rem}.orbit-core{background-color:#202629;background-color:var(--ink);color:#fff;display:grid;font-size:1.5rem;font-weight:800;height:4.5rem;place-items:center;width:4.5rem}.orbit-core,.orbit-dot{border-radius:50%;z-index:1}.orbit-dot{background-color:#6957d5;background-color:var(--accent);height:.7rem;position:absolute;width:.7rem}.orbit-dot-one{right:4.2rem;top:2.4rem}.orbit-dot-two{background-color:#d89aae;bottom:2.2rem;left:3.7rem}.profile-details{margin-top:.5rem}.profile-details div{grid-gap:1rem;border-bottom:1px solid #2026291f;border-bottom:1px solid var(--line);display:grid;gap:1rem;grid-template-columns:7rem 1fr;padding:1rem .25rem}.profile-details div:last-child{border-bottom:0}.profile-details dt{color:#687176;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.profile-details dd{font-size:.86rem;font-weight:600;line-height:1.5}@media(min-width:829px)and (max-height:800px){.hero{padding:2rem 0}.hero-copy h1{font-size:clamp(2.7rem,4.7vw,4.4rem);margin-top:.85rem}.hero-introduction{line-height:1.65;margin-top:1.15rem}.hero-actions,.hero-links{margin-top:1.25rem}.profile-orbit{height:11rem}.profile-details div{padding:.75rem .25rem}}@media(max-width:828px){.nav-bar{height:4rem;width:min(100% - 2rem,74rem)}.menu-toggle{display:flex}.nav-menu{align-items:stretch;background-color:#fffffff7;border:1px solid #2026291f;border:1px solid var(--line);border-radius:1.1rem;border-radius:var(--radius-md);box-shadow:0 1.5rem 4rem #27283714;box-shadow:var(--shadow);flex-direction:column;gap:.75rem;left:1rem;opacity:0;padding:.75rem;pointer-events:none;position:absolute;right:1rem;top:calc(100% + .5rem);transform:translateY(-.5rem);transition:opacity .2s,transform .2s,visibility .2s;visibility:hidden}.nav-menu.open{opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible}.nav-item{align-items:stretch;flex-direction:column}.a-button{padding:.8rem;width:100%}.resume-button{justify-content:center}.hero{gap:2.5rem;grid-template-columns:1fr;margin-inline:auto;padding:2rem 1.2rem;width:min(100% - 2rem,42rem)}.hero-copy h1{font-size:clamp(2.5rem,12vw,4rem)}.hero-actions{justify-content:center}}@media(max-width:480px){.hero-actions a{width:100%}.profile-details div{gap:.35rem;grid-template-columns:1fr}}.stack-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.stack-tag{background-color:#ffffff8c;border:1px solid #2026291f;border:1px solid var(--line);border-radius:999px;color:#687176;color:var(--muted);font-family:Source Code Pro,monospace;font-size:.68rem;font-weight:500;padding:.35rem .65rem}.stack-tag.reactjs{background-color:#20232a;border-color:#61dafb;color:#61dafb}.stack-tag.typescript{background-color:#3178c6;border-color:#3178c6;color:#fff}.stack-tag.scss{background-color:#c69;border-color:#c69;color:#fff}.stack-tag.aspnetmvc,.stack-tag.csharp{background-color:#512bd4;border-color:#512bd4;color:#fff}.stack-tag.aspnetcore{background-color:#7028e4;border-color:#7028e4;color:#fff}.stack-tag.nuxt{background-color:#00dc82;border-color:#00dc82;color:#003f2d}.stack-tag.vue{background-color:#42b883;border-color:#42b883;color:#173d32}.stack-tag.mongodb{background-color:#00684a;border-color:#00684a;color:#fff}.stack-tag.jquery,.stack-tag.postgresql,.stack-tag.sql{background-color:#336791;border-color:#336791;color:#fff}.stack-tag.nodejs{background-color:#393;border-color:#393;color:#fff}.stack-tag.expressjs{background-color:#303030;border-color:#303030;color:#fff}.stack-tag.chakraui{background-color:#319795;border-color:#319795;color:#fff}.stack-tag.nunit{background-color:#253e85;border-color:#253e85;color:#fff}.stack-tag.cli{background-color:#20232a;border-color:#46d369;color:#78e991}.stack-tag.git{background-color:#f05032;border-color:#f05032;color:#fff}.stack-tag.javascript{background-color:#f7df1e;border-color:#f7df1e;color:#20232a}.stack-tag.html{background-color:#e34f26;border-color:#e34f26;color:#fff}.stack-tag.css{background-color:#1572b6;border-color:#1572b6;color:#fff}.page-shell{margin:0 auto;padding:clamp(4rem,8vw,7rem) 0;width:min(100% - 3rem,74rem)}.page-heading{margin-bottom:clamp(3rem,6vw,5rem);max-width:52rem}.page-heading h1{font-size:clamp(2.5rem,5vw,4.8rem);font-weight:700;letter-spacing:-.05em;line-height:1.04;margin-top:1rem;max-width:15ch}.page-heading>p:last-child{color:#687176;color:var(--muted);font-size:1.05rem;line-height:1.75;margin-top:1.5rem;max-width:42rem}.projects-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{background-color:#ffffffb8;background-color:var(--surface);border:1px solid #2026291f;border:1px solid var(--line);border-radius:1.1rem;border-radius:var(--radius-md);display:flex;flex-direction:column;min-height:22rem;padding:clamp(1.5rem,3vw,2.25rem);transition:transform .25s,border-color .25s,background-color .25s}.project-card:hover{background-color:#fff;background-color:var(--surface-strong);border-color:#6957d547;transform:translateY(-4px)}.project-card.featured{background:linear-gradient(125deg,#6957d51a,#0000 55%),#ffffffb8;background:linear-gradient(125deg,#6957d51a,#0000 55%),var(--surface);grid-column:1/-1;min-height:24rem}.card-meta{color:#687176;color:var(--muted);display:flex;font-family:Source Code Pro,monospace;font-size:.7rem;justify-content:space-between;letter-spacing:.1em}.project-card h2{font-size:clamp(1.6rem,3vw,2.35rem);letter-spacing:-.035em;margin-top:auto}.project-card h2 a{text-decoration:none}.project-card h2 span{color:#6957d5;color:var(--accent);font-size:.8em}.project-card>p{color:#687176;color:var(--muted);line-height:1.7;margin-top:1rem;max-width:44rem}.experience-list{overflow:clip}.experience-item{--timeline-gap:clamp(1.5rem,4vw,3.5rem);grid-gap:var(--timeline-gap);display:grid;gap:var(--timeline-gap);grid-template-columns:minmax(13rem,.65fr) 2rem minmax(0,1.35fr);padding:clamp(2rem,5vw,4rem) 0}.experience-content,.experience-heading{opacity:0;transform:translateY(1.5rem);transition:opacity .65s ease,transform .65s ease}.experience-content{transition-delay:.12s}@media(min-width:761px){.experience-heading{align-self:start;position:sticky;top:7rem}}.experience-item.is-visible .experience-content,.experience-item.is-visible .experience-heading{opacity:1;transform:translateY(0)}.timeline-marker{min-height:100%;position:relative}.timeline-marker:before{background:linear-gradient(#6957d5,#6957d52e);background:linear-gradient(var(--accent),#6957d52e);bottom:-4rem;content:"";left:50%;position:absolute;top:-4rem;transform:scaleY(0);transform-origin:top;transition:transform .9s ease .15s;width:1px}.experience-item:first-child .timeline-marker:before{top:.65rem}.experience-item:last-child:not(.has-parallel) .timeline-marker:before{bottom:calc(100% - .65rem)}.experience-item.has-parallel:last-child .timeline-marker:before{bottom:2rem}.experience-item.is-visible .timeline-marker:before{transform:scaleY(1)}.timeline-marker span{background-color:#6957d5;background-color:var(--accent);border:3px solid #f5f6f2;border:3px solid var(--page);border-radius:50%;box-shadow:0 0 0 1px #6957d54d;height:.9rem;left:50%;position:absolute;top:.2rem;transform:translateX(-50%) scale(0);transition:transform .45s cubic-bezier(.2,.8,.2,1);width:.9rem;z-index:1}.experience-item.is-visible .timeline-marker span{transform:translateX(-50%) scale(1)}.experience-date{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.72rem;line-height:1.6}.experience-heading h2{font-size:clamp(1.6rem,3vw,2.35rem);letter-spacing:-.035em;margin-top:.75rem}.company-badge{background-color:#6957d514;border:1px solid #6957d538;border-radius:999px;color:#6957d5;color:var(--accent);display:inline-flex;font-family:Source Code Pro,monospace;font-size:.68rem;font-weight:600;letter-spacing:.06em;margin-top:.85rem;padding:.35rem .65rem;text-transform:uppercase}.experience-heading .stack-container{margin-top:1.5rem;max-width:14rem}.career-milestone{align-items:center;background-color:#6957d512;border:1px solid #6957d533;border-radius:.65rem;border-radius:var(--radius-sm);display:flex;gap:1rem;margin-bottom:2rem;padding:1.1rem 1.25rem}.career-milestone>span{background-color:#6957d5;background-color:var(--accent);border:2px solid #fff;border:2px solid var(--surface-strong);border-radius:50%;box-shadow:0 0 0 1px #6957d54d;flex:0 0 auto;height:.7rem;width:.7rem}.career-milestone p{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.68rem}.career-milestone h3{font-size:1rem;line-height:1.4;margin-top:.3rem}.experience-content ul{grid-gap:.9rem;color:#687176;color:var(--muted);display:grid;gap:.9rem;line-height:1.7;list-style-position:outside}.experience-content li{padding-left:.35rem}.role-summary>p:first-child:not(.role-summary-body){color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.role-summary-body{color:#687176;color:var(--muted);font-size:1rem;line-height:1.8;margin-top:.85rem}.parallel-summary strong,.role-story-body strong,.role-summary-body strong{background:linear-gradient(#0000 68%,#6957d52e 0);color:#202629;color:var(--ink);font-weight:700}.role-story{border-left:2px solid #6957d573;margin-top:2.5rem;padding:.25rem 0 .25rem 1.5rem;position:relative}.role-story:before{border-top:1px solid #6957d573;content:"";left:calc(var(--timeline-gap)*-1 - 1rem);position:absolute;top:.65rem;width:calc(var(--timeline-gap) + 1rem)}.role-story:after{background-color:#6957d5;background-color:var(--accent);border-radius:50%;content:"";height:.55rem;left:-.34rem;position:absolute;top:.38rem;width:.55rem}.role-story>p:first-child{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.role-story-body{color:#202629;color:var(--ink);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.8;margin-top:.85rem;max-width:46rem}.role-story .story-stack{margin-top:1.1rem}.parallel-role{background:linear-gradient(135deg,#6957d517,#0000 65%),#ffffffb8;background:linear-gradient(135deg,#6957d517,#0000 65%),var(--surface);border:1px solid #6957d533;border-radius:1.1rem;border-radius:var(--radius-md);margin-top:2.5rem;padding:clamp(1.25rem,3vw,2rem);position:relative}.parallel-role:before{border-top:1px dashed #6957d58c;content:"";left:calc(var(--timeline-gap)*-1 - 1rem);position:absolute;top:1.75rem;width:calc(var(--timeline-gap) + 1rem)}.parallel-role:after{background-color:#6957d5;background-color:var(--accent);border-radius:50%;content:"";height:.55rem;left:-.3rem;position:absolute;top:1.48rem;width:.55rem}.parallel-role-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.parallel-role-header>p{color:#687176;color:var(--muted);font-family:Source Code Pro,monospace;font-size:.68rem;line-height:1.5;text-align:right}.parallel-badge{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.parallel-role h3{font-size:clamp(1.35rem,2.5vw,1.9rem);letter-spacing:-.03em;margin:1.25rem 0 1rem}.parallel-role h3.has-company{margin-bottom:.4rem}.parallel-company{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.72rem;font-weight:600;line-height:1.5;margin-bottom:1rem}.parallel-summary{color:#687176;color:var(--muted);font-size:.95rem;line-height:1.8}.parallel-role>ul{font-size:.9rem}@media(max-width:760px){.page-shell{padding:2rem 1.2rem;width:min(100% - 2rem,42rem)}.projects-grid{grid-template-columns:1fr}.project-card.featured{grid-column:auto}.project-card,.project-card.featured{min-height:20rem}.experience-item{--timeline-gap:1.25rem;column-gap:1.25rem;grid-template-columns:1.25rem minmax(0,1fr);grid-template-rows:auto auto;row-gap:1.25rem}.timeline-marker{grid-column:1;grid-row:1/span 2}.experience-content,.experience-heading{grid-column:2}.parallel-role-header{align-items:flex-start;flex-direction:column}.parallel-role-header>p{text-align:left}}@media(prefers-reduced-motion:reduce){.experience-content,.experience-heading{opacity:1;transform:none;transition:none}.timeline-marker:before{transform:scaleY(1);transition:none}.experience-item.is-visible .timeline-marker span,.timeline-marker span{transform:translateX(-50%) scale(1);transition:none}}:root{--ink:#202629;--muted:#687176;--accent:#6957d5;--accent-soft:#ebe8fb;--surface:#ffffffb8;--surface-strong:#fff;--line:#2026291f;--page:#f5f6f2;--radius-sm:0.65rem;--radius-md:1.1rem;--radius-lg:1.6rem;--shadow:0 1.5rem 4rem #27283714}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip;scroll-behavior:smooth}@media(min-width:829px){html.home-route{overflow-y:hidden}}#root,.app,body{min-height:100vh;min-height:100dvh}body{-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 8% 5%,#6957d524,#0000 30rem),radial-gradient(circle at 92% 90%,#dba4b829,#0000 34rem),#f5f6f2;background:radial-gradient(circle at 8% 5%,#6957d524,#0000 30rem),radial-gradient(circle at 92% 90%,#dba4b829,#0000 34rem),var(--page);color:#202629;color:var(--ink);font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-width:20rem;overflow-x:hidden}a,button{color:inherit;font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #6957d559;outline-offset:3px}.app{display:flex;flex-direction:column;width:100%}.route-page{min-height:calc(100vh - 4.5rem);min-height:calc(100dvh - 4.5rem)}.eyebrow{color:#6957d5;color:var(--accent);font-family:Source Code Pro,monospace;font-size:.75rem;font-weight:600;letter-spacing:.14em}@media(max-width:828px){.route-page{min-height:calc(100vh - 4rem);min-height:calc(100dvh - 4rem)}}
/*# sourceMappingURL=main.1670bf6c.css.map*/