*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{line-height:inherit}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em}small{font-size:80%}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;background:transparent;border-radius:0}button,[type=button],[type=reset],[type=submit],::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}:-moz-focusring{outline:auto}body{line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0a}html:not(.dark) body{background-color:#f2f0eb}p,h1,h2,h3,h4,h5,h6,span{text-wrap:pretty}*:focus{outline:none}*:focus-visible{outline:2px solid var(--portfolio-primary, #e11d48);outline-offset:2px}.forge-section{padding-block:var(--portfolio-section-py);padding-inline:1.5rem}@media (min-width: 640px){.forge-section{padding-inline:2.5rem}}@media (min-width: 1024px){.forge-section{padding-inline:5rem}}.size-4{width:1rem;height:1rem}.size-3\.5{width:.875rem;height:.875rem}.inline-block{display:inline-block}.forge-about-inner[data-v-444fb764]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-about-inner[data-v-444fb764]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-444fb764]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none;display:block}.forge-section-number[data-v-444fb764]:before{content:attr(data-index)}@media (min-width: 768px){.forge-about-index[data-v-444fb764]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-444fb764]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-444fb764]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-about-body[data-v-444fb764]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:clamp(.8125rem,1.4vw,.9375rem);line-height:1.8;color:var(--ui-text-toned);max-width:42rem}.forge-about-body[data-v-444fb764] p{margin-bottom:1rem}.forge-about-body[data-v-444fb764] p:last-child{margin-bottom:0}.forge-about-body[data-v-444fb764] strong{color:var(--ui-text-highlighted);font-weight:600}.forge-about-body[data-v-444fb764] a{color:var(--portfolio-primary);text-decoration:underline;text-underline-offset:3px}.forge-about-images[data-v-444fb764]{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.forge-about-image-wrap[data-v-444fb764]{flex:1;min-width:150px;max-width:280px}.forge-about-image[data-v-444fb764]{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--portfolio-radius);border:2px solid var(--ui-border-accented);transition:border-color .15s linear}.forge-about-image[data-v-444fb764]:hover{border-color:var(--portfolio-primary)}.forge-certs-inner[data-v-6484cdce]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-certs-inner[data-v-6484cdce]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-6484cdce]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-6484cdce]:before{content:attr(data-index)}@media (min-width: 768px){.forge-certs-index[data-v-6484cdce]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-6484cdce]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-6484cdce]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-certs-list[data-v-6484cdce]{display:flex;flex-direction:column}.forge-cert-row[data-v-6484cdce]{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--ui-border)}.forge-cert-row[data-v-6484cdce]:first-child{border-top:1px solid var(--ui-border)}.forge-cert-main[data-v-6484cdce]{flex:1;min-width:0}.forge-cert-name[data-v-6484cdce]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1rem,2vw,1.25rem);font-weight:400;text-transform:uppercase;letter-spacing:.03em;color:var(--ui-text-highlighted);margin:0 0 .125rem}.forge-cert-link[data-v-6484cdce]{color:inherit;text-decoration:none;transition:color .15s linear}.forge-cert-link[data-v-6484cdce]:hover{color:var(--portfolio-primary)}.forge-cert-issuer[data-v-6484cdce]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;color:var(--ui-text-muted);letter-spacing:.05em}.forge-cert-date[data-v-6484cdce]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.1em;color:var(--portfolio-accent-text);font-weight:600;white-space:nowrap;flex-shrink:0}@media (max-width: 480px){.forge-cert-row[data-v-6484cdce]{flex-direction:column;align-items:flex-start;gap:.375rem}}.forge-contact-inner[data-v-b3346bc3]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-contact-inner[data-v-b3346bc3]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-b3346bc3]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-b3346bc3]:before{content:attr(data-index)}@media (min-width: 768px){.forge-contact-index[data-v-b3346bc3]{position:sticky;top:6rem;align-self:start}}.forge-contact-heading[data-v-b3346bc3]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(2.5rem,7vw,5rem);font-weight:400;text-transform:uppercase;letter-spacing:.02em;color:var(--ui-text-highlighted);line-height:.95;margin:0}.forge-contact-heading-rule[data-v-b3346bc3]{height:6px;background:var(--portfolio-primary);margin-top:1rem;margin-bottom:2.5rem;max-width:200px}.forge-contact-details[data-v-b3346bc3]{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem}.forge-contact-field[data-v-b3346bc3]{display:flex;flex-direction:column;gap:.25rem}.forge-contact-label[data-v-b3346bc3]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.625rem;letter-spacing:.2em;color:var(--ui-text-muted);font-weight:600}.forge-contact-value[data-v-b3346bc3]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.9375rem;color:var(--ui-text-highlighted)}.forge-contact-link[data-v-b3346bc3]{text-decoration:none;transition:color .15s linear}.forge-contact-link[data-v-b3346bc3]:hover{color:var(--portfolio-primary)}.forge-contact-socials[data-v-b3346bc3]{display:flex;flex-wrap:wrap;gap:.5rem}.forge-social-link[data-v-b3346bc3]{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-text-toned);border:1px solid var(--ui-border-accented);border-radius:var(--portfolio-radius-pill);text-decoration:none;transition:all .15s linear}.forge-social-link[data-v-b3346bc3]:hover{color:var(--portfolio-primary);border-color:var(--portfolio-primary);background:color-mix(in srgb,var(--portfolio-primary) 5%,transparent)}.forge-education-inner[data-v-4aeaf724]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-education-inner[data-v-4aeaf724]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-4aeaf724]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-4aeaf724]:before{content:attr(data-index)}@media (min-width: 768px){.forge-education-index[data-v-4aeaf724]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-4aeaf724]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-4aeaf724]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-education-list[data-v-4aeaf724]{display:flex;flex-direction:column}.forge-education-entry[data-v-4aeaf724]{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;padding:1.25rem 0;border-bottom:1px solid var(--ui-border-accented)}.forge-education-entry[data-v-4aeaf724]:first-child{border-top:1px solid var(--ui-border-accented)}.forge-education-main[data-v-4aeaf724]{flex:1}.forge-education-institution[data-v-4aeaf724]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.03em;color:var(--ui-text-highlighted);margin:0 0 .25rem}.forge-education-degree[data-v-4aeaf724]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.8125rem;color:var(--ui-text-toned);margin-bottom:.25rem}.forge-education-location[data-v-4aeaf724]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;color:var(--ui-text-muted);letter-spacing:.05em}.forge-education-description[data-v-4aeaf724]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.8125rem;line-height:1.6;color:var(--ui-text-toned);margin:.5rem 0 0}.forge-education-date[data-v-4aeaf724]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.1em;color:var(--portfolio-primary-text);font-weight:600;white-space:nowrap;text-align:right;flex-shrink:0}.forge-date-sep[data-v-4aeaf724]{color:var(--ui-text-dimmed);margin:0 .125rem}@media (max-width: 640px){.forge-education-entry[data-v-4aeaf724]{flex-direction:column;gap:.5rem}.forge-education-date[data-v-4aeaf724]{text-align:left}}.forge-experience-inner[data-v-acaa822f]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-experience-inner[data-v-acaa822f]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-acaa822f]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-acaa822f]:before{content:attr(data-index)}@media (min-width: 768px){.forge-experience-index[data-v-acaa822f]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-acaa822f]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-acaa822f]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-timeline[data-v-acaa822f]{position:relative;padding-left:2rem}@media (min-width: 768px){.forge-timeline[data-v-acaa822f]{padding-left:2.5rem}}.forge-timeline-line[data-v-acaa822f]{position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(to bottom,var(--portfolio-primary),color-mix(in srgb,var(--portfolio-primary) 30%,transparent))}.forge-timeline-entry[data-v-acaa822f]{position:relative;margin-bottom:2.5rem}.forge-timeline-entry[data-v-acaa822f]:last-child{margin-bottom:0}.forge-timeline-connector[data-v-acaa822f]{position:absolute;left:-2rem;top:.75rem;width:2rem;height:3px;background:var(--portfolio-primary)}@media (min-width: 768px){.forge-timeline-connector[data-v-acaa822f]{left:-2.5rem;width:2.5rem}}.forge-timeline-card[data-v-acaa822f]{padding:1.25rem 0 0;border-top:1px solid var(--ui-border-accented)}.forge-entry-date[data-v-acaa822f]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.12em;color:var(--portfolio-primary-text);font-weight:600;margin-bottom:.5rem}.forge-entry-date-sep[data-v-acaa822f]{margin:0 .25rem;color:var(--ui-text-dimmed)}.forge-entry-company[data-v-acaa822f]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:400;text-transform:uppercase;letter-spacing:.03em;color:var(--ui-text-highlighted);margin:0 0 .25rem}.forge-entry-company-link[data-v-acaa822f]{color:inherit;text-decoration:none;transition:color .15s linear}.forge-entry-company-link[data-v-acaa822f]:hover{color:var(--portfolio-primary)}.forge-entry-position[data-v-acaa822f]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.875rem;color:var(--ui-text-toned);margin-bottom:.25rem}.forge-entry-location[data-v-acaa822f]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;color:var(--ui-text-muted);letter-spacing:.05em;margin-bottom:.75rem}.forge-entry-description[data-v-acaa822f]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.8125rem;line-height:1.7;color:var(--ui-text-toned);margin:0 0 .75rem}.forge-entry-highlights[data-v-acaa822f]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.375rem}.forge-entry-highlight[data-v-acaa822f]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;line-height:1.6;color:var(--ui-text-toned);padding-left:1.5rem;position:relative}.forge-highlight-prefix[data-v-acaa822f]{position:absolute;left:0;color:var(--portfolio-accent-text);font-weight:700}.forge-hero[data-v-8b135c40]{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;position:relative;padding:6rem 1.5rem 3rem;overflow:hidden}@media (min-width: 768px){.forge-hero[data-v-8b135c40]{padding:6rem 3rem 4rem}}@media (min-width: 1024px){.forge-hero[data-v-8b135c40]{padding:6rem 5rem 4rem}}.forge-hero-slash[data-v-8b135c40]{position:absolute;top:-20%;right:-5%;width:40vw;height:160%;background:var(--portfolio-primary);opacity:.04;transform:rotate(-12deg);pointer-events:none}.forge-hero-inner[data-v-8b135c40]{position:relative;z-index:2;max-width:72rem}.forge-hero-topbar[data-v-8b135c40]{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:clamp(.6875rem,1.2vw,.8125rem);letter-spacing:.15em;text-transform:uppercase;color:var(--ui-text-muted)}.forge-hero-tag[data-v-8b135c40]{color:var(--portfolio-primary-text, var(--portfolio-primary));font-weight:700}.forge-hero-divider-dot[data-v-8b135c40]{color:var(--ui-text-dimmed)}.forge-hero-role[data-v-8b135c40]{color:var(--ui-text-toned)}.forge-hero-name[data-v-8b135c40]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(3.5rem,12vw,10rem);font-weight:400;line-height:.9;letter-spacing:-.01em;text-transform:uppercase;color:var(--ui-text-highlighted);margin:0;max-width:none}.forge-hero-rule[data-v-8b135c40]{height:6px;background:var(--portfolio-primary);margin:1.5rem 0 2rem;transform-origin:left center;max-width:320px}@media (min-width: 768px){.forge-hero-rule[data-v-8b135c40]{height:8px;margin:2rem 0 2.5rem}}.forge-hero-bottom[data-v-8b135c40]{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}.forge-hero-subtitle-block[data-v-8b135c40]{flex:1;min-width:240px}.forge-hero-subtitle[data-v-8b135c40]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:clamp(.875rem,1.8vw,1.125rem);line-height:1.7;color:var(--ui-text-toned);max-width:36rem;margin:0}.forge-hero-links[data-v-8b135c40]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.forge-hero-link[data-v-8b135c40]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ui-text-toned);border:1px solid var(--ui-border-accented);text-decoration:none;transition:all .15s linear;border-radius:var(--portfolio-radius-sm)}.forge-hero-link[data-v-8b135c40]:hover{color:var(--portfolio-primary);border-color:var(--portfolio-primary);background:color-mix(in srgb,var(--portfolio-primary) 5%,transparent)}.forge-hero-avatar-wrap[data-v-8b135c40]{flex-shrink:0}.forge-hero-avatar[data-v-8b135c40]{width:80px;height:80px;object-fit:cover;border-radius:var(--portfolio-radius);border:3px solid var(--portfolio-primary)}@media (min-width: 768px){.forge-hero-avatar[data-v-8b135c40]{width:100px;height:100px}}.forge-hero-avatar-fallback[data-v-8b135c40]{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--portfolio-primary) 12%,var(--ui-bg-elevated));color:var(--portfolio-primary);font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:2rem;letter-spacing:.05em;border:3px solid var(--portfolio-primary);border-radius:var(--portfolio-radius)}@media (min-width: 768px){.forge-hero-avatar-fallback[data-v-8b135c40]{width:100px;height:100px;font-size:2.5rem}}.forge-hero-scroll-cue[data-v-8b135c40]{position:absolute;bottom:2rem;right:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}@media (min-width: 768px){.forge-hero-scroll-cue[data-v-8b135c40]{right:3rem}}.forge-hero-scroll-text[data-v-8b135c40]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.625rem;letter-spacing:.3em;color:var(--ui-text-muted);writing-mode:vertical-rl;text-orientation:mixed}.forge-hero-scroll-line[data-v-8b135c40]{width:1px;height:40px;background:linear-gradient(to bottom,var(--ui-text-muted),transparent);animation:forge-scroll-pulse-8b135c40 2s ease-in-out infinite}@keyframes forge-scroll-pulse-8b135c40{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.forge-hero-scroll-line[data-v-8b135c40]{animation:none;opacity:.6}}.forge-mode-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:4px;border-radius:8px;color:var(--ui-text);cursor:pointer;transition:all .2s ease-out}.forge-mode-btn:hover{background:var(--ui-bg-elevated)}.forge-mode-icon{width:16px;height:16px;flex-shrink:0}.forge-mode-icon--dark,.dark .forge-mode-icon--light{display:none}.dark .forge-mode-icon--dark{display:block}.forge-nav[data-v-9eef1c6a]{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:50}@media (max-width: 768px){.forge-nav[data-v-9eef1c6a]{display:none}}.forge-nav-rail[data-v-9eef1c6a]{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:6px 0;background:color-mix(in srgb,var(--ui-bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-right:1px solid var(--ui-border-accented)}.forge-nav-item[data-v-9eef1c6a]{display:flex;align-items:center;gap:0;padding:8px 12px 8px 0;cursor:pointer;background:none;border:none;transition:color .15s linear;position:relative}.forge-nav-indicator[data-v-9eef1c6a]{width:3px;height:100%;position:absolute;left:0;top:0;background:transparent;transition:background .15s linear}.forge-nav-item.active .forge-nav-indicator[data-v-9eef1c6a]{background:var(--portfolio-primary)}.forge-nav-code[data-v-9eef1c6a]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:10px;font-weight:500;letter-spacing:.15em;color:var(--ui-text-muted);padding-left:10px;text-transform:uppercase;transition:color .15s linear}.forge-nav-item:hover .forge-nav-code[data-v-9eef1c6a]{color:var(--ui-text-toned)}.forge-nav-item.active .forge-nav-code[data-v-9eef1c6a]{color:var(--portfolio-primary-text, var(--portfolio-primary));font-weight:700}.forge-nav-separator[data-v-9eef1c6a]{width:100%;height:1px;background:var(--ui-border);margin:4px 0}.forge-nav-mode[data-v-9eef1c6a]{margin-left:6px}@media (prefers-reduced-motion: reduce){.forge-nav-item[data-v-9eef1c6a],.forge-nav-indicator[data-v-9eef1c6a],.forge-nav-code[data-v-9eef1c6a]{transition:none}}.forge-projects-inner[data-v-5399ddeb]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-projects-inner[data-v-5399ddeb]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-5399ddeb]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-5399ddeb]:before{content:attr(data-index)}@media (min-width: 768px){.forge-projects-index[data-v-5399ddeb]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-5399ddeb]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-5399ddeb]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-projects-grid[data-v-5399ddeb]{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 640px){.forge-projects-grid[data-v-5399ddeb]{grid-template-columns:1fr 1fr}.forge-project-card--wide[data-v-5399ddeb]{grid-column:span 2}}.forge-project-card[data-v-5399ddeb]{position:relative;display:flex;flex-direction:column;background:var(--ui-bg-muted);border:1px solid var(--ui-border);border-radius:var(--portfolio-radius);overflow:hidden;transition:border-color .15s linear}.forge-project-card[data-v-5399ddeb]:hover{border-color:var(--portfolio-primary)}.forge-project-accent[data-v-5399ddeb]{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--portfolio-primary);opacity:0;transition:opacity .15s linear}.forge-project-card:hover .forge-project-accent[data-v-5399ddeb]{opacity:1}.forge-project-image-wrap[data-v-5399ddeb]{width:100%;overflow:hidden}.forge-project-image[data-v-5399ddeb]{width:100%;aspect-ratio:16 / 9;object-fit:cover;transition:transform .3s linear}.forge-project-card:hover .forge-project-image[data-v-5399ddeb]{transform:scale(1.03)}.forge-project-body[data-v-5399ddeb]{padding:1.25rem;display:flex;flex-direction:column;flex:1}.forge-project-date[data-v-5399ddeb]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.1em;color:var(--portfolio-accent-text);text-transform:uppercase;margin-bottom:.5rem}.forge-project-title[data-v-5399ddeb]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.03em;color:var(--ui-text-highlighted);margin:0 0 .5rem}.forge-project-description[data-v-5399ddeb]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.8125rem;line-height:1.6;color:var(--ui-text-toned);margin:0 0 1rem;flex:1}.forge-project-tags[data-v-5399ddeb]{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1rem}.forge-project-tag[data-v-5399ddeb]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.05em;padding:.25rem .5rem;background:color-mix(in srgb,var(--portfolio-accent) 10%,transparent);color:var(--portfolio-accent-text);border:1px solid color-mix(in srgb,var(--portfolio-accent) 20%,transparent);border-radius:var(--portfolio-radius-sm)}.forge-project-links[data-v-5399ddeb]{display:flex;gap:.75rem;margin-top:auto}.forge-project-link[data-v-5399ddeb]{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-text-toned);text-decoration:none;transition:color .15s linear}.forge-project-link[data-v-5399ddeb]:hover{color:var(--portfolio-primary)}@media (prefers-reduced-motion: reduce){.forge-project-card:hover .forge-project-image[data-v-5399ddeb]{transform:none}}.forge-skills-inner[data-v-b877796a]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-skills-inner[data-v-b877796a]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-b877796a]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-b877796a]:before{content:attr(data-index)}@media (min-width: 768px){.forge-skills-index[data-v-b877796a]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-b877796a]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-b877796a]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-skills-matrix[data-v-b877796a]{display:flex;flex-direction:column;gap:2rem}.forge-skill-group[data-v-b877796a]{border-top:1px solid var(--ui-border-accented);padding-top:1rem}.forge-skill-category[data-v-b877796a]{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.75rem;font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace)}.forge-skill-prompt[data-v-b877796a]{color:var(--portfolio-primary);font-weight:700;font-size:.875rem}.forge-skill-category-name[data-v-b877796a]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ui-text-highlighted)}.forge-skill-count[data-v-b877796a]{font-size:.6875rem;color:var(--ui-text-muted);letter-spacing:.05em}.forge-skill-items[data-v-b877796a]{display:flex;flex-wrap:wrap;gap:.375rem}.forge-skill-item[data-v-b877796a]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.75rem;letter-spacing:.03em;padding:.3rem .625rem;color:var(--ui-text-toned);border:1px solid var(--ui-border-accented);border-radius:var(--portfolio-radius-sm);background:var(--ui-bg-muted);transition:all .15s linear;cursor:default}.forge-skill-item[data-v-b877796a]:hover{border-color:var(--portfolio-primary);color:var(--portfolio-primary);background:color-mix(in srgb,var(--portfolio-primary) 5%,var(--ui-bg-muted))}.forge-testimonials-inner[data-v-0408d615]{display:grid;grid-template-columns:auto 1fr;gap:2rem;max-width:64rem;margin:0 auto}@media (max-width: 768px){.forge-testimonials-inner[data-v-0408d615]{grid-template-columns:1fr;gap:.5rem}}.forge-section-number[data-v-0408d615]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,7rem);line-height:1;color:color-mix(in srgb,var(--portfolio-primary) 15%,transparent);-webkit-user-select:none;user-select:none}.forge-section-number[data-v-0408d615]:before{content:attr(data-index)}@media (min-width: 768px){.forge-testimonials-index[data-v-0408d615]{position:sticky;top:6rem;align-self:start}}.forge-section-title[data-v-0408d615]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-highlighted);margin:0}.forge-section-rule[data-v-0408d615]{height:3px;width:60px;background:var(--portfolio-primary);margin-top:.75rem;margin-bottom:var(--portfolio-heading-mb)}.forge-testimonials-list[data-v-0408d615]{display:flex;flex-direction:column;gap:3rem}.forge-testimonial[data-v-0408d615]{position:relative;margin:0;padding:0;border:none}.forge-quote-mark[data-v-0408d615]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(4rem,8vw,6rem);line-height:.8;color:var(--portfolio-primary);opacity:.3;margin-bottom:-.5rem;-webkit-user-select:none;user-select:none}.forge-quote-text[data-v-0408d615]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:clamp(1.25rem,3vw,2rem);font-weight:400;line-height:1.3;letter-spacing:.01em;text-transform:uppercase;color:var(--ui-text-highlighted);margin:0 0 1.5rem;max-width:40rem}.forge-quote-author[data-v-0408d615]{display:flex;align-items:center;gap:.75rem}.forge-quote-author-avatar[data-v-0408d615]{width:36px;height:36px;flex-shrink:0;border-radius:var(--portfolio-radius-sm);overflow:hidden;border:2px solid var(--ui-border-accented)}.forge-quote-avatar-img[data-v-0408d615]{width:100%;height:100%;object-fit:cover}.forge-quote-avatar-initials[data-v-0408d615]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--portfolio-primary) 10%,var(--ui-bg-elevated));color:var(--portfolio-primary);font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;font-weight:600;letter-spacing:.05em}.forge-quote-author-name[data-v-0408d615]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.8125rem;font-weight:600;color:var(--ui-text-highlighted);letter-spacing:.05em;text-transform:uppercase}.forge-quote-author-title[data-v-0408d615]{font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);font-size:.6875rem;color:var(--ui-text-muted);letter-spacing:.03em}.forge-portfolio[data-v-7b4b31ac]{--ui-primary: var(--portfolio-primary);--color-primary: var(--portfolio-primary);--ui-bg: #0a0a0a;--ui-bg-muted: #111111;--ui-bg-elevated: #1a1a1a;--ui-bg-accented: #222222;--ui-bg-inverted: #f5f5f0;--ui-text-dimmed: #3a3a3a;--ui-text-muted: #7b7b7b;--ui-text-toned: #999999;--ui-text: #d4d4d0;--ui-text-highlighted: #f5f5f0;--ui-text-inverted: #0a0a0a;--portfolio-primary-text: color-mix(in srgb, var(--portfolio-primary) 80%, white);--portfolio-accent-text: color-mix(in srgb, var(--portfolio-accent) 80%, white);--ui-border: #1f1f1f;--ui-border-muted: #161616;--ui-border-accented: #2a2a2a;--ui-border-inverted: #f5f5f0;background:var(--ui-bg);color:var(--ui-text);font-family:var(--portfolio-font-body, "IBM Plex Mono", monospace);min-height:100dvh;position:relative;overflow-x:hidden;--portfolio-section-py: 4rem;--portfolio-heading-mb: 2rem}@media (min-width: 768px){.forge-portfolio[data-v-7b4b31ac]{--portfolio-section-py: 6rem}}.forge-portfolio.spacing-compact[data-v-7b4b31ac]{--portfolio-section-py: 2.5rem;--portfolio-heading-mb: 1.25rem}@media (min-width: 768px){.forge-portfolio.spacing-compact[data-v-7b4b31ac]{--portfolio-section-py: 4rem}}.forge-portfolio.spacing-spacious[data-v-7b4b31ac]{--portfolio-section-py: 5rem;--portfolio-heading-mb: 2.5rem}@media (min-width: 768px){.forge-portfolio.spacing-spacious[data-v-7b4b31ac]{--portfolio-section-py: 8rem}}.forge-grain[data-v-7b4b31ac]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px}.forge-footer[data-v-7b4b31ac]{padding:2rem 1.5rem 3rem}.forge-footer-rule[data-v-7b4b31ac]{height:2px;background:var(--ui-border-accented);margin-bottom:1.5rem}.forge-footer-inner[data-v-7b4b31ac]{text-align:center}.forge-footer-mark[data-v-7b4b31ac]{font-family:var(--portfolio-font-heading, "Bebas Neue", sans-serif);font-size:1.5rem;color:var(--ui-text-dimmed);letter-spacing:.2em}@media (prefers-reduced-motion: reduce){.forge-portfolio[data-v-7b4b31ac] *,.forge-portfolio[data-v-7b4b31ac] *:before,.forge-portfolio[data-v-7b4b31ac] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.forge-portfolio:not(:is(.dark *)){--ui-bg: #f2f0eb;--ui-bg-muted: #e8e5de;--ui-bg-elevated: #ddd9d0;--ui-bg-accented: #d0cbc0;--ui-bg-inverted: #0a0a0a;--ui-text-dimmed: #c0bbb0;--ui-text-muted: #706b62;--ui-text-toned: #5e594e;--ui-text: #2a2520;--ui-text-highlighted: #0a0a0a;--ui-text-inverted: #f2f0eb;--ui-border: #d8d4cb;--ui-border-muted: #e2dfd8;--ui-border-accented: #c5c0b5;--ui-border-inverted: #0a0a0a;--portfolio-primary-text: color-mix(in srgb, var(--portfolio-primary) 80%, black);--portfolio-accent-text: color-mix(in srgb, var(--portfolio-accent) 40%, black)}.dark .forge-portfolio{--ui-primary: var(--portfolio-primary);--color-primary: var(--portfolio-primary);--ui-bg: #0a0a0a;--ui-bg-muted: #111111;--ui-bg-elevated: #1a1a1a;--ui-bg-accented: #222222;--ui-bg-inverted: #f5f5f0;--ui-text-dimmed: #3a3a3a;--ui-text-muted: #7b7b7b;--ui-text-toned: #999999;--ui-text: #d4d4d0;--ui-text-highlighted: #f5f5f0;--ui-text-inverted: #0a0a0a;--ui-border: #1f1f1f;--ui-border-muted: #161616;--ui-border-accented: #2a2a2a;--ui-border-inverted: #f5f5f0;--portfolio-primary-text: color-mix(in srgb, var(--portfolio-primary) 80%, white);--portfolio-accent-text: color-mix(in srgb, var(--portfolio-accent) 80%, white)}
