﻿@font-face{font-family:"Inter";src:url("../ASSETS/FONTS/Inter-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Inter Fallback";src:local("Arial");size-adjust:107.6%;ascent-override:89.8%;descent-override:22.4%;line-gap-override:0%}@font-face{font-family:"Jetbrains";src:url("../ASSETS/FONTS/JetBrainsMono-VariableFont_wght.woff2") format("woff2");font-weight:100 800;font-style:normal;font-display:swap}@font-face{font-family:"Jersey10";src:url("../ASSETS/FONTS/Jersey10-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}img[src$="/ApacheKafka.svg"]{filter:invert(1)}img[src$="/GitHub.svg"]{filter:invert(1)}img[src$="/Socket_io.svg"]{filter:invert(1)}img[src$="/Zap.svg"]{filter:invert(1)}img[src$="/Express.svg"]{filter:invert(1)}img[src$="/Next_js.svg"]{filter:invert(1)}img[src$="/UE5.svg"]{filter:invert(1)}img[src$="/Kong.svg"]{filter:brightness(2.2) saturate(1.1)}img[src$="/Terraform.svg"]{filter:brightness(2.2) saturate(1.1)}img[src$="/Bash.svg"]{filter:brightness(2.2) saturate(1.1)}img[src$="/Java.svg"]{filter:brightness(2.2) saturate(1.1)}img[src$="/Envoy.svg"]{filter:brightness(2.2) saturate(1.1)}img[src$="/Helm.svg"]{filter:brightness(4) saturate(1.2)}:root{--bg: #0c0d0f;--surface: #131519;--surface-raised: #1a1d22;--surface-hover: #20242a;--bg-alt: #0f1115;--wash-1: 125 170 200;--wash-2: 150 160 190;--text: #ecebe6;--text-2: #a3a6ad;--text-3: #8a8e96;--accent: #1db4aa;--accent-strong: #3fcdc3;--accent-ink: #04161a;--accent-wash: rgba(29, 180, 170, .1);--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .18);--danger: #ff9a9a;--success: #7be0a8;--focus: #ffffff;--font-sans: 'Inter', 'Inter Fallback', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;--font-mono: 'Jetbrains', ui-monospace, SFMono-Regular, Menlo, monospace;--font-pixel: 'Jersey10', ui-monospace, monospace;--fs-display: clamp(3.25rem, 1.9rem + 7vw, 7.5rem);--fs-h2: clamp(2.5rem, 1.7rem + 3.6vw, 4.5rem);--fs-h3: clamp(1.5rem, 1.3rem + .9vw, 2rem);--fs-h4: clamp(1.2rem, 1.1rem + .45vw, 1.45rem);--fs-lead: clamp(1.3rem, 1.1rem + .9vw, 1.75rem);--fs-body: 1.125rem;--fs-small: 1rem;--fs-meta: .875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--section-y: clamp(3rem, 2rem + 4vw, 6rem);--gutter: clamp(1.25rem, 1rem + 2vw, 2.5rem);--content-max: 1360px;--measure: 62ch;--header-h: 4.5rem;--radius-sm: 6px;--radius: 12px;--radius-lg: 20px;--ease: cubic-bezier(.2, .7, .2, 1);--dur-1: 150ms;--dur-2: 250ms;--dur-3: 600ms;--z-header: 100;--z-skip: 200;color-scheme:dark}*,*::before,*::after{box-sizing:border-box;padding:0;margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-4))}body{-webkit-font-smoothing:antialiased;min-height:100vh;background-color:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.65;text-rendering:optimizeLegibility}h1,h2,h3{font-weight:600;line-height:1.1;letter-spacing:-0.02em;text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:none}img,video{max-width:100%;height:auto;display:block}ul,ol{list-style:none}button{font:inherit;color:inherit;background:none;border:0;appearance:none;cursor:pointer}address{font-style:normal}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.container{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.main-content{overflow-x:clip}.visually-hidden{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:var(--z-skip);padding:var(--space-2) var(--space-4);background:var(--text);color:var(--bg);border-radius:var(--radius-sm);font-weight:600;transform:translateY(-200%)}.skip-link:focus{transform:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.75rem;padding:.65rem 1.25rem;border:1px solid rgba(0,0,0,0);border-radius:var(--radius);font-size:var(--fs-small);font-weight:600;line-height:1.2;text-align:center;transition:background-color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.button:active{transform:translateY(1px)}.button[disabled]{opacity:.55;cursor:not-allowed;transform:none}.button-primary{background:var(--accent);color:var(--accent-ink)}.button-primary:hover:not([disabled]){background:var(--accent-strong)}.button-secondary{border-color:var(--line-strong);color:var(--text)}.button-secondary:hover{background:var(--surface-hover);border-color:var(--text-3)}.button-ghost{border-color:var(--line);color:var(--text-2)}.button-ghost:hover{color:var(--text);border-color:var(--line-strong)}.button-compact{min-height:2.75rem;padding:.5rem 1rem}.site-header{position:sticky;top:0;z-index:var(--z-header);background:rgba(12,13,15,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.site-header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--header-h);max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.wordmark{display:inline-flex;align-items:center;min-height:2.75rem;font-family:var(--font-pixel);font-size:1.75rem;line-height:1;letter-spacing:.04em;color:var(--text)}.wordmark .wordmark-dot{color:var(--accent)}.site-nav ul{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2)}.site-nav a:not(.button){position:relative;display:inline-flex;align-items:center;min-height:2.75rem;padding:0 var(--space-3);font-size:var(--fs-small);font-weight:500;color:var(--text-2);transition:color var(--dur-1) var(--ease)}.site-nav a:not(.button)::after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:.55rem;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-2) var(--ease)}.site-nav a:not(.button):hover,.site-nav a:not(.button)[aria-current=true]{color:var(--text)}.site-nav a:not(.button):hover::after,.site-nav a:not(.button)[aria-current=true]::after{transform:scaleX(1)}.nav-toggle{display:none;align-items:center;gap:var(--space-3);min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--fs-small);font-weight:500}.nav-toggle .nav-toggle-icon{position:relative;width:1rem;height:2px;background:currentColor;transition:background-color var(--dur-1) var(--ease)}.nav-toggle .nav-toggle-icon::before,.nav-toggle .nav-toggle-icon::after{content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:transform var(--dur-2) var(--ease)}.nav-toggle .nav-toggle-icon::before{top:-5px}.nav-toggle .nav-toggle-icon::after{top:5px}.nav-toggle[aria-expanded=true] .nav-toggle-icon{background:rgba(0,0,0,0)}.nav-toggle[aria-expanded=true] .nav-toggle-icon::before{transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-icon::after{transform:translateY(-5px) rotate(-45deg)}@media(max-width: 899px){.site-header-inner{flex-wrap:wrap}.js .nav-toggle{display:inline-flex}.js .site-nav{display:none;flex-basis:100%;padding-bottom:var(--space-4)}.js .site-nav[data-open]{display:block}.js .site-nav ul{flex-direction:column;align-items:stretch}.js .site-nav a:not(.button){width:100%;padding-inline:0}.js .site-nav a:not(.button)::after{left:0;right:auto;width:2rem}.js .site-nav .button{width:100%;margin-top:var(--space-2)}}.section{padding-block:var(--section-y)}.section,.hero{position:relative}.hero{isolation:isolate;overflow:clip}#top::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:78%;top:30%;width:min(70vmax,900px);aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 11%, transparent), transparent)}#top::after{content:"";position:absolute;inset:-48px 0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse 60% 75% at 78% 40%, #000, transparent 78%)}.flow{position:relative;isolation:isolate;overflow:clip}.flow-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}.flow-glow{--size: 72vmax;position:fixed;width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(closest-side, rgb(var(--glow)/var(--glow-a)), transparent);transform:translate3d(calc((var(--p, 0.5) - 0.5) * var(--dx)), calc((var(--p, 0.5) - 0.5) * var(--dy)), 0) scale(calc(1 + (var(--p, 0.5) - 0.5) * var(--ds)));will-change:transform}.flow-glow-a{--glow: var(--wash-1);--glow-a: .17;--dx: -200px;--dy: 340px;--ds: .22;top:-22vmax;right:-18vmax}.flow-glow-b{--glow: var(--wash-2);--glow-a: .12;--dx: 280px;--dy: -220px;--ds: -.18;top:30vh;left:-26vmax}.flow-glow-c{--glow: var(--wash-1);--glow-a: .14;--dx: -260px;--dy: -300px;--ds: .26;right:4vw;bottom:-34vmax}.flow-grain{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;opacity:.05}.section-grid{display:grid;gap:var(--space-6)}@media(min-width: 900px){.section-grid{grid-template-columns:minmax(0, 4fr) minmax(0, 8fr);gap:var(--space-8)}}.section-head{display:flex;flex-direction:column;gap:var(--space-3);align-self:start}@media(min-width: 900px){.section-head{position:sticky;top:calc(var(--header-h) + var(--space-6))}}.section-head h2{font-size:var(--fs-h2)}.section-head-wide{margin-bottom:var(--space-7);position:static}.section-hint{color:var(--text-2);font-size:var(--fs-h4);max-width:34ch;line-height:1.5}.prose-lead{font-size:var(--fs-lead);line-height:1.5;color:var(--text);max-width:var(--measure);letter-spacing:-0.01em}.prose{margin-top:var(--space-5);color:var(--text-2);max-width:var(--measure)}.hero{padding-block:clamp(3rem,2rem + 6vw,7rem) var(--section-y)}.hero-grid{display:grid;gap:var(--space-7);align-items:center}@media(min-width: 900px){.hero-grid{grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);gap:var(--space-8)}}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}.hero-copy h1{font-size:var(--fs-h2);letter-spacing:-0.035em;line-height:.98}.hero-sub{font-size:clamp(1.5rem,1.1rem + 1.8vw,2.5rem);font-weight:500;letter-spacing:-0.02em;line-height:1.2;color:var(--text-2)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.hero-portrait{position:relative;justify-self:center;width:min(100%,320px);padding:var(--space-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:calc(8px - var(--tx, 0)*5px) calc(8px - var(--ty, 0)*5px) 0 color-mix(in srgb, var(--accent) 16%, transparent),calc(16px - var(--tx, 0)*10px) calc(16px - var(--ty, 0)*10px) 0 color-mix(in srgb, var(--accent) 7%, transparent);transform:perspective(1000px) rotateX(calc(var(--ty, 0) * -5deg)) rotateY(calc(var(--tx, 0) * 7deg));transition:transform 350ms var(--ease),box-shadow 350ms var(--ease)}@media(min-width: 900px){.hero-portrait{justify-self:end;width:min(100%,380px)}}.hero-portrait::before,.hero-portrait::after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--accent)}.hero-portrait::before{top:-6px;left:-6px;border-right:0;border-bottom:0}.hero-portrait::after{bottom:-6px;right:-6px;border-left:0;border-top:0}.hero-portrait .portrait-media{position:relative;overflow:hidden;border-radius:var(--radius)}.hero-portrait img{width:100%;aspect-ratio:1;border-radius:var(--radius);image-rendering:pixelated;background:var(--surface-raised)}.hero-portrait .portrait-sheen{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at calc(var(--mx, 0.3) * 100%) calc(var(--my, 0.2) * 100%), rgba(255, 255, 255, 0.28), transparent 50%);mix-blend-mode:soft-light;opacity:var(--sheen, 0);transition:opacity 400ms var(--ease)}.hero-portrait .portrait-scan{position:absolute;left:0;right:0;top:-20%;height:18%;pointer-events:none;background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 30%, transparent), transparent);mix-blend-mode:screen;opacity:0;animation:scan 8s ease-in-out 2.5s infinite}.hero-portrait .portrait-pixel{position:absolute;width:10px;height:10px;background:var(--accent);opacity:.75;pointer-events:none;animation:pixel-float 9s ease-in-out infinite alternate}.hero-portrait .portrait-pixel-1{top:-22px;right:14%}.hero-portrait .portrait-pixel-2{bottom:22%;left:-20px;width:8px;height:8px;animation-duration:11s;animation-delay:-3s;opacity:.55}.hero-portrait .portrait-pixel-3{top:36%;right:-26px;width:6px;height:6px;animation-duration:7s;animation-delay:-5s;opacity:.45}.hero-portrait .portrait-pixel-4{bottom:-24px;left:28%;width:6px;height:6px;animation-duration:10s;animation-delay:-1s;opacity:.6}.hero-portrait::before{animation:tick-a 6s ease-in-out infinite alternate}.hero-portrait::after{animation:tick-b 6s ease-in-out infinite alternate}.project-group+.project-group{margin-top:var(--space-9)}.projects-grid{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,72vw,290px);gap:var(--space-5);padding:8px 4px 12px;margin-inline:-4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line-strong) rgba(0,0,0,0)}.projects-grid>.project{scroll-snap-align:start}@media(max-width: 1199px){.projects-grid>.project[data-reveal]{animation:none}}@media(min-width: 1200px){.projects-grid{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4, minmax(0, 1fr));padding:0;margin-inline:0;overflow:visible}}.project{aspect-ratio:1;container-type:inline-size;overflow:hidden;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);transition:border-color var(--dur-2) var(--ease),background-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.project:hover,.project:focus-within{border-color:var(--accent);background:var(--surface-raised);transform:translateY(-3px)}.project-trigger,.site-link{display:flex;flex-direction:column;width:100%;height:100%;text-align:left;border-radius:inherit}.project-trigger .project-media,.site-link .project-media{position:relative;display:grid;place-items:center;flex:1;min-height:0;container-type:size;background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--text) 7%, var(--surface-raised)), var(--surface-raised) 72%);border-bottom:1px solid var(--line);overflow:hidden}.project-trigger .project-thumbnail,.site-link .project-thumbnail{position:relative;width:auto;height:calc((min(100cqw,100cqh) - 2*var(--space-3))*.77);aspect-ratio:1;border-radius:var(--radius-lg);box-shadow:0 18px 40px rgba(0,0,0,.45);transition:transform var(--dur-3) var(--ease)}.project-trigger:hover .project-thumbnail,.site-link:hover .project-thumbnail{transform:scale(1.03)}.project-trigger .project-body,.site-link .project-body{display:grid;gap:var(--space-2);flex:none;padding:var(--space-3) var(--space-4) var(--space-4)}.project-trigger .project-head,.site-link .project-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.project-trigger .project-title,.site-link .project-title{font-size:clamp(1.5rem,5.35cqw,2.5rem);font-weight:600;letter-spacing:-0.02em;line-height:1.15}.project-trigger .project-pitch,.site-link .project-pitch{color:var(--text-2);font-size:clamp(.9rem,3cqw,1.15rem);line-height:1.4;min-height:2.8em}.project-trigger .project-arrow,.site-link .project-arrow{flex-shrink:0;display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--line-strong);border-radius:50%;color:var(--accent);transition:background-color var(--dur-2) var(--ease),color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.project-trigger:hover .project-arrow,.project-trigger:focus-visible .project-arrow,.site-link:hover .project-arrow,.site-link:focus-visible .project-arrow{background:var(--accent);color:var(--accent-ink);transform:translateX(3px)}.site-link .site-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform var(--dur-3) var(--ease)}.site-link:hover .site-preview{transform:scale(1.04)}.site-link .site-preview-left{object-position:left top}.project-dialog{position:fixed;inset:0;margin:auto;width:min(95vw,1260px);max-height:90vh;overflow-y:auto;padding:0;background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:0 24px 80px rgba(0,0,0,.6);overscroll-behavior:contain}.project-dialog::backdrop{background:rgba(5,6,7,.78)}.project-dialog[open]{animation:dialog-in var(--dur-2) var(--ease)}.project-dialog .dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface);border-bottom:1px solid var(--line)}@media(min-width: 900px){.project-dialog .dialog-header{padding:var(--space-5) var(--space-7)}}.project-dialog .dialog-heading{display:flex;align-items:center;gap:var(--space-4);min-width:0}.project-dialog .dialog-logo{flex-shrink:0;display:block}.project-dialog .dialog-logo:empty{display:none}.project-dialog .dialog-logo img{display:block;width:52px;height:52px;border-radius:var(--radius);background:var(--surface-raised)}@media(min-width: 900px){.project-dialog .dialog-logo img{width:60px;height:60px}}.project-dialog .dialog-title{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.5rem);line-height:1.1}.project-dialog .dialog-close{flex-shrink:0;width:2.75rem;height:2.75rem;font-size:1.5rem;line-height:1;border:1px solid var(--line-strong);border-radius:var(--radius);transition:background-color var(--dur-1) var(--ease)}.project-dialog .dialog-close:hover{background:var(--surface-hover)}.project-dialog .dialog-body{display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--space-4) var(--space-8);padding:var(--space-5)}@media(min-width: 900px){.project-dialog .dialog-body{grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);padding:var(--space-6) var(--space-7) var(--space-7)}}.project-dialog .dialog-body .project-description{grid-column:1/-1;margin-bottom:var(--space-3);font-size:var(--fs-lead);line-height:1.5;letter-spacing:-0.01em;max-width:78ch}.project-dialog .dialog-body h3{font-size:var(--fs-h4);color:var(--text);padding-top:var(--space-4);border-top:1px solid var(--line)}.project-dialog .dialog-body .project-features{display:flex;flex-direction:column;gap:var(--space-4)}.project-dialog .dialog-body .project-features li{color:var(--text-2)}.project-dialog .dialog-body .project-features strong{display:block;font-weight:600;color:var(--text)}.project-dialog .dialog-body .stack-list{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--space-2)}.project-dialog .dialog-body .stack-list li{display:flex;align-items:center;gap:var(--space-2);padding:.3rem .8rem .3rem .6rem;border:1px solid var(--line-strong);border-radius:999px;font-size:var(--fs-small);color:var(--text-2)}.project-dialog .dialog-body .stack-list img{width:24px;height:24px;object-fit:contain;flex-shrink:0}.project-dialog .dialog-body .stack-list img[src$=".webp"]{border-radius:5px}.project-dialog .dialog-body .project-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-3)}@media(min-width: 900px){.project-dialog .dialog-body h3:nth-of-type(1){grid-column:1;grid-row:2}.project-dialog .dialog-body .project-features{grid-column:1;grid-row:3}.project-dialog .dialog-body h3:nth-of-type(2){grid-column:2;grid-row:2}.project-dialog .dialog-body .stack-list{grid-column:2;grid-row:3}.project-dialog .dialog-body .project-links{grid-row:4}}body:has(dialog[open]){overflow:hidden}.skills-grid{border-top:1px solid var(--line)}.skills-row{display:grid;gap:var(--space-3);padding-block:var(--space-5);border-bottom:1px solid var(--line)}@media(min-width: 900px){.skills-row{grid-template-columns:minmax(0, 4fr) minmax(0, 8fr);gap:var(--space-8)}}.skills-label{font-size:var(--fs-h4);font-weight:600;letter-spacing:-0.01em;color:var(--text)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:.35rem .85rem .35rem .6rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;font-size:var(--fs-small);transition:border-color var(--dur-1) var(--ease),opacity var(--dur-3) var(--ease) var(--d, 0s),transform var(--dur-3) var(--ease) var(--d, 0s)}.chip:hover{border-color:var(--line-strong)}.chip img{width:24px;height:24px;object-fit:contain;flex-shrink:0}.chip img[src$=".webp"]{border-radius:5px}.values-grid{display:grid;gap:var(--space-7) var(--space-8)}@media(min-width: 900px){.values-grid{grid-template-columns:repeat(2, minmax(0, 1fr));align-items:start}}.values-col h3{font-size:var(--fs-h3);padding-bottom:var(--space-3)}.values-list{border-top:1px solid var(--line)}.value-item{display:grid;grid-template-columns:30px minmax(0, 1fr);column-gap:var(--space-3);row-gap:var(--space-2);align-items:center;padding-block:var(--space-4);border-bottom:1px solid var(--line)}.value-item h4{font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);font-weight:600;letter-spacing:-0.01em;line-height:1.2}.value-item .value-body{grid-column:2;font-size:var(--fs-small);line-height:1.5;color:var(--text-2)}.value-icon{width:30px;height:30px;background:var(--accent);-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}.value-icon[data-icon=Adaptability]{--icon: url('../ASSETS/ICONS/TRAITS/Adaptability.svg')}.value-icon[data-icon=Collaboration]{--icon: url('../ASSETS/ICONS/TRAITS/Collaboration.svg')}.value-icon[data-icon=Communication]{--icon: url('../ASSETS/ICONS/TRAITS/Communication.svg')}.value-icon[data-icon=Foundation]{--icon: url('../ASSETS/ICONS/TRAITS/Foundation.svg')}.value-icon[data-icon=Impetus]{--icon: url('../ASSETS/ICONS/TRAITS/Impetus.svg')}.value-icon[data-icon=Leadership]{--icon: url('../ASSETS/ICONS/TRAITS/Leadership.svg')}.value-icon[data-icon=Mindset]{--icon: url('../ASSETS/ICONS/TRAITS/Mindset.svg')}.value-icon[data-icon=Mission]{--icon: url('../ASSETS/ICONS/TRAITS/Mission.svg')}.value-icon[data-icon=Passion]{--icon: url('../ASSETS/ICONS/TRAITS/Passion.svg')}.value-icon[data-icon=Philosophy]{--icon: url('../ASSETS/ICONS/TRAITS/Philosophy.svg')}.value-icon[data-icon=ProblemSolving]{--icon: url('../ASSETS/ICONS/TRAITS/ProblemSolving.svg')}.value-icon[data-icon=Resourcefulness]{--icon: url('../ASSETS/ICONS/TRAITS/Resourcefulness.svg')}.experience-list{display:flex;flex-direction:column;gap:var(--space-5)}.experience-entry{padding:var(--space-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.experience-role{font-size:var(--fs-h3)}.experience-meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--accent);margin:var(--space-1) 0 var(--space-3)}.experience-outcomes{display:flex;flex-direction:column;gap:var(--space-2);list-style:square inside;color:var(--text-2)}.contact-form{display:flex;flex-direction:column;gap:var(--space-5);max-width:640px}.contact-form .form-field{display:flex;flex-direction:column;gap:var(--space-2)}.contact-form label{font-size:var(--fs-small);font-weight:600}.contact-form input,.contact-form textarea{width:100%;padding:.8rem 1rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}.contact-form input:hover,.contact-form textarea:hover{border-color:var(--text-3)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-3);font-style:italic;opacity:1;transition:opacity var(--dur-1) var(--ease)}.contact-form input:focus::placeholder,.contact-form textarea:focus::placeholder{opacity:0}.contact-form input[aria-invalid=true],.contact-form textarea[aria-invalid=true]{border-color:var(--danger)}.contact-form textarea{resize:vertical;min-height:9rem}.contact-form .field-hint{align-self:flex-end;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-3)}.contact-form .field-error{font-size:var(--fs-small);color:var(--danger)}.contact-form .form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.contact-form .form-status{min-height:1.5rem;font-size:var(--fs-small)}.contact-form .form-status[data-state=success]{color:var(--success)}.contact-form .form-status[data-state=error]{color:var(--danger)}.contact-form .form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-links{display:grid;gap:var(--space-3);margin-top:var(--space-6)}.social-link{display:flex;align-items:center;gap:var(--space-4);min-height:4.25rem;padding:var(--space-3) var(--space-5);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--fs-h4);font-weight:500;line-height:1.2;color:var(--text);transition:background-color var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.social-link img,.social-link .doc-icon{flex-shrink:0;width:36px;height:36px;object-fit:contain}.social-link .doc-icon{color:var(--accent)}.social-link::after{content:"↗";content:"↗"/"";margin-left:auto;font-size:1.3em;color:var(--accent);transition:transform var(--dur-2) var(--ease)}.social-link:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-2px)}.social-link:hover::after{transform:translate(2px, -2px)}.file-tag{padding:.1rem .55rem;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--font-mono);font-size:var(--fs-meta);font-weight:400;color:var(--text-3)}.site-footer{padding-block:var(--space-7)}.footer-grid{display:grid;gap:var(--space-5) var(--space-6)}@media(min-width: 900px){.footer-grid{grid-template-columns:1fr auto;align-items:center}}.footer-grid .footer-nav ul{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5)}.footer-grid .footer-nav a{display:inline-flex;align-items:center;min-height:2.75rem;font-size:var(--fs-small);color:var(--text-2);transition:color var(--dur-1) var(--ease)}.footer-grid .footer-nav a:hover{color:var(--text)}.footer-grid .footer-copy{grid-column:1/-1;padding-top:var(--space-5);border-top:1px solid var(--line);font-size:var(--fs-meta);color:var(--text-3)}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:100vh;padding:var(--space-4);text-align:center}.not-found h1{font-family:var(--font-pixel);font-weight:400;font-size:8rem;line-height:.9;color:var(--accent)}.not-found p{color:var(--text-2)}@keyframes dialog-in{from{transform:translateY(8px) scale(0.98);opacity:0}to{transform:none;opacity:1}}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes scan{0%,55%{transform:translateY(0);opacity:0}62%{opacity:1}92%{opacity:1}100%{transform:translateY(660%);opacity:0}}@keyframes pixel-float{to{transform:translate3d(7px, -11px, 0)}}@keyframes tick-a{to{transform:translate(-3px, -3px)}}@keyframes tick-b{to{transform:translate(3px, 3px)}}@keyframes blocks-in{from{box-shadow:0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(0,0,0,0)}}@keyframes glow-travel{from{transform:translate3d(calc(var(--dx) * -0.5), calc(var(--dy) * -0.5), 0) scale(calc(1 - var(--ds) * 0.5))}to{transform:translate3d(calc(var(--dx) * 0.5), calc(var(--dy) * 0.5), 0) scale(calc(1 + var(--ds) * 0.5))}}@supports(animation-timeline: scroll()){@media(prefers-reduced-motion: no-preference){.flow-glow{animation:glow-travel linear both;animation-timeline:scroll(root)}}}@keyframes aurora{from{transform:translate3d(-8%, -6%, 0) scale(1)}to{transform:translate3d(10%, 8%, 0) scale(1.2)}}@keyframes grid-pan{from{transform:translate3d(0, -28px, 0)}to{transform:translate3d(0, 28px, 0)}}#top::before{animation:aurora 26s ease-in-out infinite alternate}@supports(animation-timeline: view()){@media(prefers-reduced-motion: no-preference){#top::after{animation:grid-pan linear both;animation-timeline:view();animation-range:cover}}}.hero-copy>*{animation:rise var(--dur-3) var(--ease) both}.hero-copy>:nth-child(2){animation-delay:90ms}.hero-copy>:nth-child(3){animation-delay:180ms}.hero-copy>:nth-child(4){animation-delay:270ms}.hero-copy>:nth-child(5){animation-delay:360ms}.hero-portrait{animation:blocks-in 700ms var(--ease) 300ms backwards}[data-reveal]:nth-child(1){--d: 0ms}[data-reveal]:nth-child(2){--d: 90ms}[data-reveal]:nth-child(3){--d: 180ms}[data-reveal]:nth-child(4){--d: 270ms}[data-reveal]:nth-child(5){--d: 360ms}[data-reveal]:nth-child(6){--d: 450ms}[data-reveal]:nth-child(7){--d: 540ms}[data-reveal]:nth-child(8){--d: 630ms}[data-reveal]:nth-child(9){--d: 720ms}[data-reveal]:nth-child(10){--d: 810ms}[data-reveal]:nth-child(11){--d: 900ms}[data-reveal]:nth-child(12){--d: 990ms}.projects-grid>:nth-child(2){--d: 90ms}.projects-grid>:nth-child(3){--d: 180ms}.projects-grid>:nth-child(4){--d: 270ms}.js [data-reveal].is-pending{opacity:0;transform:translateY(14px)}.js [data-reveal].is-in{transition:opacity var(--dur-3) var(--ease) var(--d, 0s),transform var(--dur-3) var(--ease) var(--d, 0s)}.js .skills-row.is-pending .chip{opacity:0;transform:translateY(8px)}@keyframes reveal{from{opacity:0;transform:translateY(14px)}}@supports(animation-timeline: view()){@media(prefers-reduced-motion: no-preference){[data-reveal]{animation:reveal linear backwards;animation-timeline:view();animation-range:entry 0% entry 35%}.chip{animation:reveal linear backwards;animation-timeline:view();animation-range:entry var(--r, 0%) entry calc(35% + var(--r, 0%))}}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:220ms}::view-transition-group(project-thumb){animation-duration:380ms;animation-timing-function:cubic-bezier(0.2, 0.7, 0.2, 1)}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;transition-delay:0s !important}.js [data-reveal].is-pending,.js .skills-row.is-pending .chip{opacity:1;transform:none}}/*# sourceMappingURL=main.css.map */
