:root{color-scheme:dark;--color-background:#111110;--color-surface:#1b1a18;--color-panel:#201e1b;--color-text:#f3eee6;--color-accent:#e6a16d;--color-copper:#b9754e;--color-sand:#d6bd9d;--color-secondary:#b7afa4;--color-divider:#39342f;--font-heading:"Sora", "Avenir Next", "Segoe UI", Arial, sans-serif;--font-body:"Source Sans 3", "Segoe UI", Arial, sans-serif;--content-width:1200px;--header-height:80px;--radius-card:22px}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 20px)}body{isolation:isolate;background:var(--color-background);color:var(--color-text);font:1rem/1.65 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}::selection{color:var(--color-background);background:var(--color-accent)}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px;border-radius:8px}[tabindex="-1"]:focus:not(:focus-visible){outline:none}h1,h2,h3,h4,p,figure,ol,ul{margin:0}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.055em;text-wrap:balance;font-weight:600;line-height:1.08}p{text-wrap:pretty}img,svg{display:block}.container{width:min(var(--content-width),calc(100% - 7rem));margin-inline:auto}.accent{color:var(--color-accent)}.eyebrow,.detail-label{letter-spacing:.13em;text-transform:uppercase;font-size:.71rem;font-weight:600;line-height:1.6}.detail-label{color:var(--color-secondary)}.section-index{color:var(--color-accent);font-variant-numeric:tabular-nums;margin-right:.48rem}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--color-text);color:var(--color-background);border-radius:10px;padding:.8rem 1rem;position:fixed;top:.75rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:30;background:#111110f7;border:0;position:sticky;top:0}.header-inner{height:calc(var(--header-height) - 1px);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;display:grid;position:relative}.identity{justify-self:start;align-items:center;gap:1.1rem;min-width:0;display:flex}.brand{white-space:nowrap;flex-shrink:0;align-items:center;gap:.65rem;font-size:.92rem;font-weight:650;display:inline-flex}.brand-symbol{font:600 1.9rem/1 var(--font-heading);letter-spacing:-.12em}.brand-symbol span{color:var(--color-accent)}.local-time{color:var(--color-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;font-size:.76rem;display:inline-flex}.time-dot,.code-status{background:var(--color-copper);border-radius:50%;flex:0 0 7px;width:7px;height:7px;position:relative}.time-dot:after{content:"";border:1px solid var(--color-accent);opacity:.7;border-radius:50%;position:absolute;inset:-4px}.desktop-navigation{border:1px solid var(--color-divider);background:var(--color-surface);border-radius:999px;justify-self:center;align-items:center;gap:3px;padding:5px;display:flex}.site-header nav a{min-height:38px;color:var(--color-secondary);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 15px;font-size:.86rem;font-weight:550;transition:color .17s,background .17s,border-color .17s,transform .17s;display:inline-flex}.site-header nav a:hover{color:var(--color-text);background:#29241f;transform:translateY(-1px)}.site-header nav a[aria-current]{color:var(--color-text);background:#b9754e30;border-color:#e6a16d5c}.resume-link{min-height:44px;color:var(--color-text);letter-spacing:.025em;border:1px solid #e6a16dad;border-radius:999px;justify-content:center;justify-self:end;align-items:center;gap:.7rem;padding:0 17px;font-size:.77rem;font-weight:650;transition:transform .18s,background .18s,color .18s;display:inline-flex}.resume-link>span:last-child{color:var(--color-accent);font-size:1rem}.resume-link:hover{color:var(--color-background);background:var(--color-accent);transform:translateY(-2px)scale(1.02)}.resume-link:hover>span:last-child{color:inherit}.mobile-menu{display:none;position:relative}.mobile-menu summary{border:1px solid var(--color-divider);min-width:72px;min-height:42px;color:var(--color-text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;font-size:.82rem;list-style:none;display:flex}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary>.mobile-menu-plus{color:var(--color-accent);font-size:1.08rem;transition:transform .18s}.mobile-menu[open] summary>.mobile-menu-plus{transform:rotate(45deg)}.mobile-menu-icon,.mobile-menu-backdrop{display:none}.site-header .mobile-menu nav{border:1px solid var(--color-divider);background:#1b1a18;border-radius:20px;flex-direction:column;align-items:stretch;gap:3px;width:min(290px,100vw - 32px);padding:12px;display:flex;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 18px 40px #0006}.site-header .mobile-menu nav a{border-radius:12px;justify-content:flex-start;min-height:46px;padding:0 14px;font-size:.9rem}.chapter{scroll-margin-top:0;position:relative}.chapter-inner{width:min(var(--content-width),calc(100% - 7rem));margin-inline:auto;padding-block:clamp(70px,9vh,110px)}.hero{min-height:calc(100svh - var(--header-height));background:radial-gradient(at 80% 42%,#492d201b,#0000 48%);overflow:hidden}.hero-inner{min-height:calc(100svh - var(--header-height) - 1px);grid-template-columns:1fr 1fr;align-content:center;align-items:center;gap:22px clamp(44px,7vw,105px);padding-block:44px 25px;display:grid}.hero-main{max-width:560px}.hero-eyebrow{color:var(--color-sand);align-items:center;gap:.75rem;margin-bottom:23px;display:flex}.accent-rule{background:var(--color-accent);flex:0 0 24px;width:24px;height:1px}.hero h1{letter-spacing:-.075em;font-size:clamp(3.5rem,6.3vw,6.2rem);line-height:.99}.hero-role{color:var(--color-accent);font:500 clamp(1.22rem,2.4vw,1.75rem)/1.3 var(--font-heading);letter-spacing:-.035em;margin-top:13px}.hero-intro{max-width:480px;color:var(--color-secondary);margin-top:24px;font-size:clamp(1rem,1.35vw,1.13rem);line-height:1.75}.hero-intro>span{color:var(--color-text)}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px;display:flex}.button{border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:1.1rem;min-height:52px;padding:0 20px;font-size:.87rem;font-weight:650;transition:transform .19s cubic-bezier(.2,.75,.25,1),box-shadow .19s,background .19s,color .19s,border-color .19s;display:inline-flex}.button:hover{transform:translateY(-3px)scale(1.025);box-shadow:0 12px 25px #0005}.button:active{transform:translateY(-1px)scale(.98)}.button-primary{background:var(--color-accent);color:#20150f}.button-primary:hover{background:#efb383}.button-secondary{color:var(--color-text);background:#ffffff03;border-color:#5a493a}.button-secondary:hover{border-color:var(--color-accent);background:#b9754e2b}.hero-code{border-radius:var(--radius-card);background:linear-gradient(140deg,#24201c,#191815 65%,#211b17);border:1px solid #584636;min-width:0;padding:0 25px 17px;position:relative;overflow:hidden;box-shadow:0 30px 85px #0005}.code-header{height:51px;color:var(--color-secondary);font:500 .76rem/1 var(--font-body);border-bottom:1px solid #ffffff12;align-items:center;gap:13px;display:flex}.code-lights{gap:5px;display:inline-flex}.code-lights i{background:#85583f;border-radius:50%;width:7px;height:7px}.code-lights i:nth-child(2){background:#b78556}.code-lights i:nth-child(3){background:#8b806d}.code-line-number{color:#786d61;font-variant-numeric:tabular-nums;margin-left:auto}.code-body{padding:23px 0 20px;font:500 clamp(.73rem,1.05vw,.93rem)/2.15 Cascadia Code,SFMono-Regular,Consolas,monospace;overflow:auto}.code-row{white-space:pre;color:#e9e2d8;width:max-content;max-width:100%}.code-row:first-child{animation:.36s ease-out 70ms both code-in}.code-row:nth-child(2){animation:.36s ease-out .145s both code-in}.code-row:nth-child(3){animation:.36s ease-out .22s both code-in}.code-row:nth-child(4){animation:.36s ease-out .295s both code-in}.code-row:nth-child(5){animation:.36s ease-out .37s both code-in}.code-row:nth-child(6){animation:.36s ease-out .445s both code-in}@keyframes code-in{0%{opacity:.18;transform:translate(9px)}to{opacity:1;transform:translate(0)}}.code-comment{color:#a58c72}.code-keyword{color:#e6a16d}.code-string,.code-value{color:#d6bd9d}.code-indent{padding-left:2.3em}.code-cursor{color:var(--color-accent);margin-left:6px}@media (prefers-reduced-motion:no-preference){.code-cursor{animation:1s step-end infinite cursor-blink}}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.hero-code figcaption{color:var(--color-secondary);align-items:center;gap:9px;font-size:.71rem;display:flex}.hero-code .code-status{background:#91a281;box-shadow:0 0 13px #91a2818c}.chapter-cue{color:#b1a89b;grid-column:1/-1;justify-content:space-between;align-items:center;min-height:36px;margin-top:5px;font-size:.72rem;display:flex}.chapter-cue>span:last-child{color:var(--color-accent);font-size:1.05rem}.section-heading{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:48px;display:flex}h2{font-size:clamp(2.9rem,5vw,4.8rem)}.section-heading .eyebrow{margin-bottom:17px}.section-intro{max-width:360px;color:var(--color-secondary);font-size:.98rem;line-height:1.75}.trajectory>.chapter-inner{min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;display:flex}.trajectory-track{padding-top:12px}.timeline{position:relative}.timeline:before,.timeline-progress{content:"";background:var(--color-divider);border-radius:3px;width:100%;height:2px;position:absolute;top:9px;left:0}.timeline-progress{z-index:1;background:linear-gradient(90deg,var(--color-copper),var(--color-accent));transform:scaleX(var(--journey-progress,1));transform-origin:0;transition:transform 90ms linear}.timeline-entries{grid-template-columns:1fr 1fr;gap:clamp(50px,8vw,110px);padding:0;list-style:none;display:grid;position:relative}.timeline-entry{padding-top:41px;position:relative}.timeline-marker{z-index:2;width:20px;height:20px;position:absolute;top:0;left:0}.timeline-marker-core{border:1px solid var(--color-accent);background:var(--color-background);border-radius:50%;transition:background .24s,transform .24s;position:absolute;inset:5px}.timeline-marker-halo{border:1px solid var(--color-accent);opacity:0;border-radius:50%;transition:opacity .25s,transform .25s;position:absolute;inset:-4px;transform:scale(.7)}.timeline-entry.is-active .timeline-marker-core{background:var(--color-accent);transform:scale(1.18)}.timeline-entry.is-active .timeline-marker-halo{opacity:.6;transform:scale(1)}.timeline-date{color:var(--color-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:0 .3em;font-size:.85rem;display:flex}.current-label{color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;margin-left:.5rem;font-size:.66rem}.timeline-content{padding-top:25px;position:relative}.trajectory-art{width:72px;height:72px;color:var(--color-sand);background:linear-gradient(145deg,#291e18,#1e1b18);border:1px solid #514335;border-radius:21px;place-items:center;transition:transform .24s,border-color .24s,background .24s;display:grid;position:absolute;top:16px;right:2px}.trajectory-art svg{stroke:currentColor;stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round;width:41px;height:41px}.timeline-entry.is-active .trajectory-art{border-color:var(--color-accent);background:linear-gradient(145deg,#38251b,#211d19);transform:translateY(-3px)rotate(-2deg)}.trajectory-art-anfip{color:var(--color-accent)}.entry-category{color:var(--color-secondary);padding-right:90px;font-size:.75rem}.timeline-content h3{margin:10px 88px 15px 0;font-size:clamp(2.1rem,3.4vw,3rem);transition:color .22s}.timeline-entry.is-active h3{color:var(--color-accent)}.timeline-content>p:not(.entry-category){max-width:470px;color:var(--color-secondary);font-size:.96rem;line-height:1.75}.entry-detail,.module-progression{border-top:1px solid var(--color-divider);margin-top:24px;padding-top:16px}.entry-detail p{margin-top:4px;font-size:.92rem}.module-progression{max-width:440px}.module-subtrack{margin-top:14px;position:relative}.module-subtrack:before,.module-progress{content:"";background:var(--color-divider);border-radius:2px;height:2px;position:absolute;top:5px;left:0;right:0}.module-progress{background:var(--color-accent);width:100%;transform:scaleX(var(--module-progress,1));transform-origin:0;transition:transform .12s linear;right:auto}.timeline-substeps{grid-template-columns:1fr 1fr;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.timeline-substeps li{padding-top:19px;position:relative}.timeline-substeps li:before{content:"";border:1px solid var(--color-secondary);background:var(--color-background);border-radius:50%;width:8px;height:8px;transition:background .2s,border-color .2s,transform .2s;position:absolute;top:2px;left:0}.timeline-substeps li.is-highlighted:before{border-color:var(--color-accent);background:var(--color-accent);transform:scale(1.2)}.timeline-substeps a{border-radius:5px;padding:3px 0;font-size:.9rem;transition:color .17s;display:inline-block}.timeline-substeps a:hover{color:var(--color-accent)}.timeline-substeps a>span{color:var(--color-secondary);font-size:.76rem;display:block}.timeline.motion-reduced .timeline-progress,.timeline.motion-reduced .module-progress{transform:none!important}.projects>.project-showcase{flex-direction:column;padding-block:clamp(75px,10vh,118px);display:flex}.project-toolbar{order:1}.project-viewport{order:2}.carousel-enabled .project-toolbar{order:3}.projects-heading{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:35px;display:flex}.projects-heading .eyebrow{margin-bottom:17px}.projects-heading h2{font-size:clamp(3rem,5.3vw,5rem)}.project-index{border-bottom:1px solid var(--color-divider);flex-wrap:wrap;gap:9px;margin-bottom:20px;padding:12px 0 29px;display:flex}.project-index-link{border:1px solid var(--color-divider);min-height:39px;color:var(--color-secondary);background:var(--color-surface);border-radius:999px;align-items:center;gap:8px;padding:0 13px;font-size:.76rem;transition:transform .18s,border-color .18s,color .18s,background .18s;display:inline-flex}.project-index-link>span:first-child{color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:.65rem}.project-index-link:hover{border-color:var(--color-accent);color:var(--color-text);background:#29231e;transform:translateY(-2px)}.index-arrow{opacity:.7;transition:transform .18s}.project-index-link:hover .index-arrow{transform:translate(2px,-2px)}.project-panel{scroll-margin-top:calc(var(--header-height) + 22px)}.project-feature{border-bottom:1px solid var(--color-divider);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(42px,7vw,100px);padding:clamp(46px,6.2vw,82px) 0;display:grid}.project-feature:first-child{border-top:0}.project-copy{min-width:0}.project-title-row{display:contents}.project-media-navigation{width:100%;min-width:0}.project-media-navigation>button{display:none}.project-category{color:var(--color-secondary);align-items:center;gap:12px;font-size:.77rem;display:flex}.project-number{border:1px solid color-mix(in srgb,var(--project-tone),transparent 38%);width:33px;height:33px;color:var(--project-tone);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:.7rem;display:inline-grid}.project-copy h3{letter-spacing:-.065em;margin-top:17px;font-size:clamp(2.3rem,4vw,4rem)}.project-narrative{grid-template-columns:1fr;gap:14px;margin-top:20px;display:grid}.project-narrative h4,.project-technologies h4{color:var(--project-tone,var(--color-secondary));letter-spacing:.105em;text-transform:uppercase;margin-bottom:5px;font-size:.69rem;font-weight:650;line-height:1.6}.project-narrative p{max-width:490px;color:var(--color-secondary);font-size:.95rem;line-height:1.75}.project-technologies{margin-top:20px}.technology-list{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.technology-list li{color:#ddd4c8;border:1px solid #474139;border-radius:999px;padding:4px 11px;font-size:.75rem;transition:border-color .17s,background .17s,transform .17s}.technology-list li:hover{border-color:var(--project-tone);background:#302720;transform:translateY(-2px)}.disclosure-note{border-left:2px solid var(--project-tone);background:linear-gradient(90deg,color-mix(in srgb,var(--project-tone),transparent 92%),transparent);max-width:490px;color:var(--color-secondary);border-radius:0 10px 10px 0;align-items:flex-start;gap:9px;margin-top:18px;padding:10px 13px;font-size:.76rem;display:flex}.disclosure-note>span{color:var(--project-tone)}.repository-link{min-height:44px;color:var(--color-text);border:1px solid #594536;border-radius:999px;align-items:center;gap:8px;margin-top:13px;padding:0 13px;font-size:.8rem;transition:transform .17s,border-color .17s,background .17s;display:inline-flex}.repository-link:hover{border-color:var(--color-accent);background:#32271f;transform:translateY(-2px)}.project-art{isolation:isolate;aspect-ratio:1.35;border-radius:var(--radius-card);background:radial-gradient(ellipse at 76% 27%,color-mix(in srgb,var(--project-tone),transparent 84%),transparent 53%),linear-gradient(140deg,#24211d,#191816 70%);border:1px solid #51483e;width:100%;min-width:0;transition:transform .26s cubic-bezier(.2,.75,.25,1),border-color .22s,box-shadow .26s;position:relative;overflow:hidden;box-shadow:0 27px 60px #0003}.project-art:hover{border-color:color-mix(in srgb,var(--project-tone),#51483e 45%);transform:translateY(-5px)scale(1.012);box-shadow:0 34px 72px #0005}.project-art img{object-fit:contain;width:100%;height:100%;padding:clamp(24px,4vw,54px)}.project-art.project-art-image{place-items:center;padding:clamp(12px,1.6vw,24px);display:grid}.project-browser{background:#141416;border:1px solid #69513e;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 18px 40px #0005}.project-browser-bar{background:#211f1c;border-bottom:1px solid #ffffff0d;align-items:center;gap:12px;height:32px;padding-inline:12px;display:flex}.browser-lights{flex:none;gap:4px;display:flex}.browser-lights i{background:#956848;border-radius:50%;width:6px;height:6px}.browser-lights i:nth-child(2){background:#b58b61}.browser-lights i:nth-child(3){background:#8f9277}.browser-title{color:var(--color-secondary);text-align:center;flex:1;padding-right:26px;font-size:.7rem}.project-art .project-browser img{width:100%;height:auto;padding:0;display:block}.project-art figcaption{z-index:2;color:#bcb1a2;text-align:right;pointer-events:none;font-size:.64rem;position:absolute;bottom:12px;left:15px;right:15px}.module-art,.editorial-art{place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.art-kicker{z-index:2;color:var(--color-secondary);letter-spacing:.13em;text-transform:uppercase;font-size:.64rem;font-weight:600;position:absolute;top:21px;left:23px}.art-orbits{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.art-orbits span{border:1px solid color-mix(in srgb,var(--project-tone),transparent 82%);border-radius:50%;width:280px;height:280px;position:absolute;transform:translate(80px,-30px)}.art-orbits span:nth-child(2){width:380px;height:380px;transform:translate(80px,-30px)}.art-orbits span:nth-child(3){width:490px;height:490px;transform:translate(80px,-30px)}.art-relationship{z-index:1;grid-template-columns:minmax(115px,1fr) 70px minmax(155px,1.2fr);align-items:center;width:min(88%,470px);display:grid;position:relative}.art-node{background:#211e1aee;border:1px solid #645440;border-radius:18px;flex-direction:column;justify-content:center;gap:5px;min-height:101px;padding:15px 16px;display:flex;box-shadow:0 13px 30px #0004}.art-node>span{color:var(--color-secondary);font-size:.67rem}.art-node>strong{color:#e5c69f;font:500 clamp(.9rem,1.45vw,1.08rem)/1.45 var(--font-heading)}.art-node-module{border-color:color-mix(in srgb,var(--project-tone),#564a3c 35%);background:linear-gradient(140deg,#2a211b,#1f1c18);min-height:116px}.art-node-module>strong{color:var(--project-tone)}.module-integration{--integration-gap:50px;z-index:1;width:min(88%,470px);padding-top:46px;position:relative}.module-integration .art-relationship,.art-management{grid-template-columns:minmax(0,1fr) var(--integration-gap) minmax(0,1.2fr);align-items:center;width:100%;display:grid}.module-integration .art-node{min-width:0;min-height:90px;padding:12px 14px}.module-integration .art-node>strong{font-size:1.05rem}.art-api-link{background:linear-gradient(var(--project-tone),#92714f);grid-column:3;justify-self:center;width:1px;height:40px;position:relative}.art-api-link:before,.art-api-link:after{content:"";border-color:var(--project-tone);border-style:solid;width:7px;height:7px;position:absolute;left:-3px;transform:rotate(45deg)}.art-api-link:before{border-width:1px 0 0 1px;top:0}.art-api-link:after{border-width:0 1px 1px 0;bottom:0}.art-api-link>span{width:135px;color:var(--color-sand);text-align:right;font-size:.72rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.module-integration .art-node-management{background:linear-gradient(140deg,#303026,#211f1a);border-color:#9a7954;grid-column:3;min-height:72px}.art-link{background:linear-gradient(90deg,#76573b,var(--project-tone));height:2px;position:relative}.art-link:after{content:"";border-top:1px solid var(--project-tone);border-right:1px solid var(--project-tone);width:9px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)rotate(45deg)}.art-link i{background:var(--project-tone);opacity:0;border-radius:50%;width:7px;height:7px;position:absolute;top:-3px;left:0}.project-art:hover .art-link i{opacity:1;animation:.6s ease-out both point-travel}@keyframes point-travel{0%{left:0}to{left:calc(100% - 7px)}}.art-caption{color:var(--color-secondary);letter-spacing:.04em;font-size:.7rem;position:absolute;bottom:34px}.editorial-art{justify-items:start;padding:35px}.editorial-art:before{content:"";aspect-ratio:1;border:1px solid color-mix(in srgb,var(--project-tone),transparent 68%);width:min(72%,330px);box-shadow:0 0 0 32px color-mix(in srgb,var(--project-tone),transparent 94%),0 0 0 70px color-mix(in srgb,var(--project-tone),transparent 97%);border-radius:50%;position:absolute;top:10%;right:-30px}.editorial-art>strong{max-width:85%;font:550 clamp(1.6rem,3.5vw,3rem)/1.18 var(--font-heading);letter-spacing:-.06em;position:relative}.art-composition{width:170px;height:170px;position:absolute;top:24%;right:15%;transform:rotate(-24deg)}.art-composition>span{border:1px solid var(--project-tone);opacity:.55;border-radius:28px;width:98px;height:98px;position:absolute;transform:rotate(22deg)}.art-composition>span:nth-child(2){opacity:.8;border-radius:50%;top:34px;left:34px}.art-composition>span:nth-child(3){background:color-mix(in srgb,var(--project-tone),transparent 85%);border-radius:24px 50%;top:68px;left:70px}.art-composition>i{background:var(--project-tone);width:8px;height:8px;box-shadow:60px 15px 0 color-mix(in srgb,var(--project-tone),white 16%),27px 72px 0 #f0d6af;border-radius:50%;position:absolute;top:47px;left:47px}.editorial-art-institution .art-composition{top:19%;right:20%;transform:rotate(34deg)}.editorial-art-institution:before{border-radius:32px;transform:rotate(18deg)}.editorial-art .art-caption{bottom:19px}.contact-inner{min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;padding-bottom:24px;display:flex}.contact h2{margin-top:25px;font-size:clamp(2.65rem,5.1vw,5.3rem)}.contact-intro{max-width:490px;color:var(--color-secondary);margin-top:22px}.contact-copy-row{width:min(610px,100%);margin-top:28px}.email-copy-label{color:var(--color-sand);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:650;display:block}.email-copy-control{background:#1e1b18;border:1px solid #57483a;border-radius:17px;align-items:center;gap:10px;max-width:100%;padding:7px;transition:border-color .17s,box-shadow .17s;display:flex}.email-copy-control:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 4px #e6a16d1c}.email-copy-control input{min-width:0;color:var(--color-text);letter-spacing:-.02em;background:0 0;border:0;outline:0;flex:1;padding:8px 10px;font-size:clamp(.87rem,1.6vw,1.27rem)}.email-copy-control input:focus{outline:0}.copy-button{color:#f2c29c;background:#34261d;border:1px solid #79553b;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 16px;font-size:.79rem;transition:transform .18s,background .18s,color .18s;display:inline-flex}.copy-button:hover{background:var(--color-accent);color:#21170f;transform:translateY(-2px)scale(1.03)}.copy-button:active{transform:scale(.97)}.copy-status{min-height:1.5em;color:var(--color-sand);margin-top:5px;font-size:.76rem}.contact-links{flex-wrap:wrap;gap:10px;margin-top:11px;display:flex}.contact-pill{color:#ded4c6;border:1px solid #4c443a;border-radius:999px;align-items:center;gap:12px;min-height:43px;padding:0 15px;font-size:.79rem;transition:transform .18s,border-color .18s,color .18s,background .18s;display:inline-flex}.contact-pill:hover{border-color:var(--color-accent);color:var(--color-text);background:#2a211a;transform:translateY(-2px)}.contact.chapter{border-bottom:0}.site-footer{color:var(--color-secondary);background:linear-gradient(#201b151f,#0000);border-top:1px solid #62503e;position:relative}.site-footer:before{content:"";background:var(--color-accent);width:80px;height:1px;position:absolute;top:-1px;left:50%;transform:translate(-50%);box-shadow:0 0 16px #e6a16d66}.footer-inner{justify-content:space-between;align-items:center;gap:24px;padding:30px 112px 30px 0;display:flex}.footer-copyright{width:100%;font-size:.88rem;line-height:1.8}.footer-year{color:var(--color-sand);font-variant-numeric:tabular-nums;font-size:.88rem}.footer-copyright strong{color:var(--color-text);font-weight:500}.footer-separator{color:var(--color-accent)}.footer-rights{color:var(--color-secondary);font-size:.85rem}.back-to-top{z-index:25;min-height:48px;color:var(--color-text);background:#28211bf5;border:1px solid #a47852;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-size:.85rem;font-weight:600;transition:background .18s,border-color .18s;display:inline-flex;position:fixed;bottom:24px;right:28px;box-shadow:0 5px 22px #0005}.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--color-accent);background:#3b2c20}.back-to-top .action-icon{flex-basis:20px;width:20px;height:20px}.reveal{opacity:1;transform:none}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(15px)}.motion-ready .reveal{transition:opacity .48s cubic-bezier(.2,.65,.25,1),transform .48s cubic-bezier(.2,.65,.25,1)}.project-list .reveal:nth-child(2n){transition-delay:55ms}.pointer-halo{z-index:45;border:1px solid color-mix(in srgb,var(--color-accent),white 12%);opacity:0;pointer-events:none;will-change:transform;border-radius:50%;width:34px;height:34px;transition:opacity .16s,transform .12s cubic-bezier(.16,.75,.25,1),border-color .16s,width .16s,height .16s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)scale(.75)}.pointer-halo:after{content:"";border:1px solid #f1c49a77;border-radius:50%;position:absolute;inset:9px}.pointer-active .pointer-halo{opacity:.73;transform:translate(-50%,-50%)scale(1)}.pointer-over-control .pointer-halo{border-color:var(--color-sand);opacity:.46;width:26px;height:26px}.pointer-glow{z-index:40;opacity:0;pointer-events:none;mix-blend-mode:screen;will-change:transform;background:radial-gradient(circle,#c07b4f1f 0%,#a5664011 25%,#0000 69%);border-radius:50%;width:380px;height:380px;transition:opacity .24s,transform 90ms linear;position:fixed;top:0;left:0;transform:translate(-500px,-500px)}.pointer-active .pointer-glow{opacity:1}@media (width>=761px) and (hover:hover) and (pointer:fine){.pointer-halo,.pointer-glow{display:block}}@media (width<=1050px){.container,.chapter-inner{width:calc(100% - 4rem)}.header-inner{grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem}.desktop-navigation{gap:0}.site-header nav a{padding-inline:10px;font-size:.8rem}.resume-link{padding-inline:13px}.hero-inner{column-gap:40px}.hero h1{font-size:clamp(3.45rem,6vw,5.5rem)}.hero-code{padding-inline:19px}.timeline-entries{gap:50px}.trajectory-art{width:64px;height:64px}.timeline-content h3{margin-right:72px}.project-index{gap:7px}.project-index-link{padding-inline:11px}.project-feature{gap:45px}.project-art{aspect-ratio:1.2}}@media (width<=760px){:root{--header-height:73px;--radius-card:20px}.container,.chapter-inner{width:calc(100% - 2.5rem)}.header-inner{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.identity{gap:9px}.brand{gap:5px;font-size:.79rem}.brand-symbol{font-size:1.55rem}.local-time{gap:6px;font-size:.69rem}.time-dot{flex-basis:6px;width:6px;height:6px}.desktop-navigation{display:none}.mobile-menu{display:block}.mobile-menu summary{min-width:64px;min-height:40px;font-size:.75rem}.resume-link{gap:5px;min-height:40px;padding-inline:11px;font-size:.7rem}.resume-link>span:first-child{font-size:0}.resume-link>span:first-child:after{content:"CV";font-size:.75rem}.hero{min-height:calc(100svh - var(--header-height))}.hero-inner{min-height:calc(100svh - var(--header-height) - 1px);grid-template-columns:1fr;align-content:center;row-gap:27px;padding-block:38px 16px}.hero-main{max-width:570px}.hero-eyebrow{letter-spacing:.085em;gap:8px;margin-bottom:18px;font-size:.58rem}.accent-rule{flex-basis:18px;width:18px}.hero h1{font-size:clamp(3.12rem,11.4vw,4.8rem)}.hero-role{margin-top:8px;font-size:1.16rem}.hero-intro{margin-top:16px;font-size:.94rem;line-height:1.65}.hero-actions{gap:9px;margin-top:20px}.button{border-radius:14px;gap:.7rem;min-height:46px;padding-inline:15px;font-size:.77rem}.hero-code{border-radius:17px;width:100%;max-width:530px;padding-inline:16px}.code-header{height:42px}.code-body{padding-block:12px 11px;font-size:.69rem;line-height:1.85}.hero-code figcaption{font-size:.62rem}.chapter-cue{margin-top:-7px;font-size:.67rem}.chapter-inner{padding-block:58px}.section-heading{margin-bottom:33px;display:block}.section-heading .eyebrow{margin-bottom:13px}h2{font-size:clamp(2.55rem,10vw,3.7rem)}.section-intro{margin-top:15px;font-size:.89rem}.trajectory>.chapter-inner{min-height:auto}.timeline:before,.timeline-progress{transform-origin:top;width:2px;height:100%;top:0;left:7px;transform:scaleY(var(--journey-progress,1))!important}.timeline-entries{display:block}.timeline-entry{padding:0 0 39px 36px}.timeline-entry:last-child{padding-bottom:5px}.timeline-marker{top:2px;left:-2px}.timeline-date{font-size:.76rem}.timeline-content{padding-top:17px}.trajectory-art{border-radius:16px;width:54px;height:54px;top:11px;right:0}.trajectory-art svg{width:34px;height:34px}.entry-category{padding-right:62px;font-size:.67rem}.timeline-content h3{margin:8px 61px 13px 0;font-size:1.9rem}.timeline-content>p:not(.entry-category){padding-right:2px;font-size:.88rem}.entry-detail,.module-progression{margin-top:19px}.module-subtrack:before,.module-progress{width:2px;height:100%;transform:scaleY(var(--module-progress,1));transform-origin:top;inset:0 auto 0 3px}.timeline-substeps{display:block}.timeline-substeps li{padding:0 0 10px 20px}.timeline-substeps li:last-child{padding-bottom:0}.timeline-substeps li:before{top:12px;left:0}.projects>.project-showcase{padding-block:59px 40px}.projects-heading{margin-bottom:22px;display:block}.projects-heading .eyebrow{margin-bottom:13px}.projects-heading h2{font-size:clamp(2.8rem,10vw,3.8rem)}.project-index{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--color-copper) var(--color-surface);flex-wrap:nowrap;gap:7px;margin-inline:-2px;padding:8px 2px 20px;overflow-x:auto}.project-index-link{flex:none;min-height:38px;padding-inline:11px;font-size:.71rem}.project-index-link:focus-visible{scroll-margin-inline:12px}.project-feature{grid-template-columns:minmax(0,1fr);gap:23px;padding:39px 0 43px}.project-copy h3{margin-top:12px;font-size:clamp(2rem,8.3vw,3rem)}.project-category{gap:9px;font-size:.71rem}.project-number{width:29px;height:29px}.project-narrative{gap:11px;margin-top:14px}.project-narrative h4,.project-technologies h4{font-size:.65rem}.project-narrative p{font-size:.87rem;line-height:1.68}.project-technologies{margin-top:15px}.technology-list{gap:5px}.technology-list li{padding:3px 9px;font-size:.7rem}.disclosure-note{margin-top:13px;padding:8px 11px;font-size:.71rem}.repository-link{min-height:40px;margin-top:8px;font-size:.76rem}.project-art{aspect-ratio:1.27;border-radius:19px;min-height:235px}.project-art img{padding:25px}.project-art figcaption{font-size:.59rem;bottom:9px;left:10px;right:10px}.art-kicker{font-size:.58rem;top:16px;left:17px}.art-relationship{grid-template-columns:minmax(100px,1fr) 40px minmax(135px,1.2fr);width:calc(100% - 28px)}.art-node{border-radius:14px;min-height:83px;padding:10px}.art-node-module{min-height:94px}.art-node>strong{font-size:.82rem}.art-node>span{font-size:.61rem}.art-link{height:1px}.art-orbits span{width:230px;height:230px;transform:translate(50px,-20px)}.art-orbits span:nth-child(2){width:320px;height:320px;transform:translate(50px,-20px)}.art-orbits span:nth-child(3){width:410px;height:410px;transform:translate(50px,-20px)}.art-caption{font-size:.61rem;bottom:28px}.editorial-art{padding:24px}.editorial-art>strong{font-size:clamp(1.45rem,6.5vw,2.25rem)}.art-composition{width:135px;height:135px;top:27%;right:9%}.art-composition>span{border-radius:23px;width:77px;height:77px}.art-composition>span:nth-child(2){top:28px;left:28px}.art-composition>span:nth-child(3){top:54px;left:57px}.art-composition>i{top:37px;left:37px}.contact-inner{min-height:calc(100svh - var(--header-height));padding-block:59px 18px}.contact h2{margin-top:17px;font-size:clamp(2.75rem,10.7vw,4.4rem)}.contact-intro{margin-top:17px;font-size:.88rem}.contact-copy-row{margin-top:23px}.email-copy-control{border-radius:14px;gap:3px;padding:5px}.email-copy-control input{padding-inline:8px;font-size:clamp(.78rem,3.7vw,1.06rem)}.copy-button{border-radius:10px;gap:7px;min-height:41px;padding-inline:12px;font-size:.73rem}.copy-status{font-size:.7rem}.contact-links{gap:7px}.contact-pill{gap:8px;min-height:40px;padding-inline:11px;font-size:.72rem}.site-footer{font-size:.75rem}.footer-inner{padding-block:24px 90px}.back-to-top{min-height:44px;padding-inline:14px;font-size:.8rem;bottom:18px;right:20px}.pointer-halo,.pointer-glow{display:none}}@media (width<=360px){.container,.chapter-inner{width:calc(100% - 2rem)}.identity{gap:6px}.local-time{font-size:.64rem}.brand{font-size:.72rem}.resume-link{padding-inline:8px}.mobile-menu summary{min-width:59px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.pointer-halo,.pointer-glow{display:none}.code-row{opacity:1!important;transform:none!important}.timeline-progress,.module-progress{transform:none!important}}@media print{.site-header,.pointer-halo,.pointer-glow,.hero-actions,.chapter-cue,.project-index,.copy-button,.back-to-top{display:none!important}.chapter,.chapter-inner{min-height:0!important}.reveal{opacity:1!important;transform:none!important}.project-feature{break-inside:avoid}}:root{--header-height:96px}.site-header{border-bottom:0}.header-inner.container{width:calc(100% - 64px);max-width:none;height:var(--header-height)}.identity{gap:24px}.brand{gap:11px;font-size:1.13rem}.brand-symbol{color:var(--color-accent);letter-spacing:-.13em;font:600 1.5rem/1 monospace}.local-time{color:var(--color-text);gap:11px;font-size:.96rem}.time-dot{background:#edb789;box-shadow:0 0 12px #e6a16d55}.time-dot:after{animation:3s ease-in-out infinite clock-pulse}@keyframes clock-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:.65;transform:scale(1.4)}}.site-header nav a{min-height:42px;padding-inline:17px;font-size:.96rem}.resume-link{background:var(--color-accent);color:#25190f;border-color:#f4bd91;gap:15px;min-height:52px;padding:0 22px;font-size:1rem;box-shadow:0 5px 24px #e6a16d20}.resume-link:hover{background:#f4c49e;box-shadow:0 8px 26px #e6a16d33}.action-icon{flex:0 0 24px}@media (prefers-reduced-motion:no-preference){.action-icon{transition:transform .2s}:is(a,button):is(:hover,:focus-visible):not([aria-disabled=true]) .action-icon[data-icon=external]{transform:translate(3px,-3px)}:is(a,button):is(:hover,:focus-visible):not([aria-disabled=true]) .action-icon[data-icon=download]{transform:translateY(3px)}:is(a,button):is(:hover,:focus-visible):not([aria-disabled=true]) .action-icon[data-icon=up]{transform:translateY(-3px)}:is(a,button):is(:hover,:focus-visible):not([aria-disabled=true]) .action-icon[data-icon=previous]{transform:translate(-3px)}:is(a,button):is(:hover,:focus-visible):not([aria-disabled=true]) .action-icon[data-icon=next]{transform:translate(3px)}}.eyebrow,.detail-label{letter-spacing:.09em;font-size:.82rem}.button{min-height:54px;font-size:1rem}.trajectory-art{background:#eee8df;width:100px;height:110px;padding:9px;overflow:hidden}.trajectory-art img{object-fit:contain;width:100%;height:100%}.timeline-entry.is-active .trajectory-art{background:#f3ede4}.timeline-content h3{margin-right:115px}.entry-category{padding-right:115px;font-size:.9rem}.timeline-date,.timeline-substeps li a>span{font-size:.9rem}.timeline-content>p:not(.entry-category){font-size:1.03rem}.current-label{font-size:.8rem}.project-category{color:#d6c5b3;font-size:1rem}.project-number{width:37px;height:37px;font-size:.9rem}.project-narrative h4,.project-technologies h4{letter-spacing:.065em;font-size:.82rem}.project-narrative p{font-size:1.04rem;line-height:1.65}.technology-list{gap:8px}.technology-list li{color:#f6d9bc;background:#e6a16d12;border:1px solid #a67e595e;border-radius:10px;padding:5px 12px;font-size:.94rem}.disclosure-note{font-size:.88rem}.repository-link{background:#33271e;border-color:#b0835e;gap:12px;min-height:50px;padding:0 18px;font-size:1rem;font-weight:600}.github-mark{filter:invert()}.project-index{border:0;gap:6px;margin:0;padding:0}.project-index-link{min-height:45px;padding-inline:14px;font-size:.88rem}.project-index-link>span:first-child{font-size:.85rem}.project-index-link[aria-current]{color:#24190f;background:#eed6bb;border-color:#eed6bb}.project-index-link[aria-current]>span{color:#834a25}.project-mobile-navigation,.project-mobile-counter{display:none}.project-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin-top:24px;display:flex}.project-controls{align-items:center;gap:12px;display:flex}.project-controls button{width:46px;height:46px;color:var(--color-text);background:#30241d;border:1px solid #80624c;border-radius:50%;place-items:center;transition:transform .18s,background .18s;display:grid}.project-controls button:hover{background:#533925;transform:scale(1.08)}.project-controls button[aria-disabled=true]{opacity:.45}.project-counter{min-width:62px;color:var(--color-secondary);font-variant-numeric:tabular-nums;font-size:.9rem}.project-counter>span{color:var(--color-text)}.carousel-progress{display:none}.project-art{background:radial-gradient(at 75% 25%,#a96f3d38,#0000 65%),linear-gradient(140deg,#322820,#1b1916 70%);border-color:#7f634a}.project-art .sr-only{clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-art img.project-organization-mark{background:#fff;border-radius:8px;width:58px;height:74px;padding:5px;position:absolute;top:18px;right:20px}.project-art img.project-institution-mark{opacity:.8;width:180px;height:210px;padding:0;position:absolute;top:14%;right:7%}.editorial-art-institution .art-composition{display:none}.editorial-art-institution>strong{align-self:end;margin-bottom:35px}.art-kicker{max-width:65%;font-size:.8rem}.art-node>span{font-size:.8rem}.art-node>strong{font-size:1.13rem}.project-art:hover .art-link i{animation:none}.project-panel.is-current .art-link i{opacity:1;box-shadow:0 0 16px var(--project-tone);transform:translate(30px)}.contact-options{grid-template-columns:1fr 1fr;gap:14px;max-width:900px;margin-top:35px;display:grid}.contact-card{background:linear-gradient(130deg,#30251d,#201c18);border:1px solid #69513e;border-radius:20px;align-items:center;gap:16px;min-width:0;min-height:100px;padding:20px 24px;font-size:1.1rem;font-weight:600;transition:transform .2s,border-color .2s;display:flex}a.contact-card:hover,.contact-email:focus-within{border-color:var(--color-accent);transform:translateY(-3px)}.contact-card>img{object-fit:contain}.contact-card>span{flex:1}.contact-card small{color:var(--color-secondary);margin-top:3px;font-size:.9rem;font-weight:400;display:block}.contact-card>.action-icon{color:var(--color-sand)}.contact-email{display:block}.contact-email button{text-align:left;background:0 0;border:0;align-items:center;gap:15px;width:100%;min-height:30px;padding:0;font-size:1.1rem;font-weight:600;display:flex}.contact-email button:hover{color:var(--color-accent)}.contact-email input{width:100%;min-width:0;color:var(--color-secondary);background:0 0;border:0;border-radius:3px;margin-top:5px;padding:0;font-size:.92rem;display:block}.contact-email input:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.copy-status{font-size:.9rem}.pointer-halo,.pointer-over-control .pointer-halo{background:#f2c69b;border:0;width:8px;height:8px;transition:opacity .12s;box-shadow:0 0 13px #e6a16d80}.pointer-halo:after{display:none}.pointer-active .pointer-halo,.pointer-active.pointer-over-control .pointer-halo{opacity:.85}@media (width>=1100px) and (height>=780px){.project-showcase.carousel-enabled{min-height:calc(100svh - var(--header-height));background:var(--color-background);flex-direction:column;justify-content:center;padding-block:12px 20px;display:flex}.carousel-enabled .projects-heading{align-items:center;gap:40px;margin:0 0 20px}.carousel-enabled .projects-heading .eyebrow{margin-bottom:7px}.carousel-enabled .projects-heading h2{font-size:2.7rem}.carousel-enabled .project-viewport{overflow:clip}.carousel-enabled .project-list{will-change:transform;align-items:stretch;gap:48px;display:flex}.carousel-enabled .project-feature{border:0;flex:0 0 100%;gap:55px;width:100%;padding:8px 0 18px}.carousel-enabled .project-copy h3{margin-top:12px;font-size:clamp(2.5rem,3.6vw,3.7rem)}.carousel-enabled .project-narrative{gap:10px;margin-top:15px}.carousel-enabled .project-narrative p{line-height:1.55}.carousel-enabled .project-art{aspect-ratio:1.4;transition:transform .26s cubic-bezier(.2,.75,.25,1),border-color .22s,box-shadow .26s}.carousel-enabled .project-art:hover{transform:translateY(-4px)}.carousel-enabled .project-art>:is(.module-art,.editorial-art,.project-browser){transition:transform .26s cubic-bezier(.2,.75,.25,1)}.carousel-enabled .project-art:hover>:is(.module-art,.editorial-art,.project-browser){transform:scale(1.012)}.carousel-enabled .project-toolbar{flex-wrap:nowrap;justify-content:space-between;gap:18px;margin-top:8px;padding:14px 0 16px;position:relative}.carousel-enabled .project-index{flex-wrap:wrap;gap:5px}.carousel-enabled .project-index-link{min-height:42px;padding-inline:10px;font-size:.9rem}.carousel-enabled .carousel-progress{background:#443629;height:2px;display:block;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.carousel-progress>span{background:var(--color-accent);width:100%;height:100%;transform:scaleX(var(--carousel-progress,0));transform-origin:0;transition:transform .55s cubic-bezier(.65,0,.35,1);display:block}}@media (width<=1199px){.identity{gap:15px}.brand{font-size:1rem}.brand-symbol{font-size:1.3rem}.site-header nav a{padding-inline:11px;font-size:.87rem}.resume-link{padding-inline:16px}}@media (width>=761px) and (width<=999px){.desktop-navigation{display:none}.mobile-menu{grid-area:1/2;justify-self:end;display:block}.resume-link{grid-area:1/3}.header-inner{grid-template-columns:1fr auto auto}}@media (width<=760px){:root{--header-height:90px}.header-inner.container{gap:10px;width:calc(100% - 32px)}.identity{gap:3px;display:grid}.brand{gap:8px;font-size:1rem}.brand-symbol{font-size:1.2rem}.local-time{gap:10px;margin-left:36px;font-size:.85rem}.resume-link{gap:8px;min-height:46px;padding-inline:12px}.resume-link>span:first-child:after{font-size:.9rem}.resume-link .action-icon{flex-basis:21px;width:21px;height:21px}.mobile-menu summary{min-height:46px;font-size:.85rem}.hero-eyebrow{font-size:.7rem}.button{padding-inline:15px;font-size:.9rem}.code-body,.hero-code figcaption{font-size:.75rem}.trajectory-art{width:75px;height:88px;padding:5px}.timeline-content h3{margin-right:85px}.entry-category{padding-right:85px;font-size:.82rem}.timeline-date{font-size:.86rem}.timeline-content>p:not(.entry-category){font-size:1rem}.project-category{font-size:.93rem}.project-narrative p{font-size:1rem}.project-narrative h4,.project-technologies h4{font-size:.8rem}.technology-list li{padding:5px 10px;font-size:.88rem}.disclosure-note{font-size:.85rem}.repository-link{min-height:50px;font-size:1rem}.project-toolbar{justify-content:flex-start}.project-index{flex-wrap:wrap;margin:0;padding:0;overflow:visible}.project-index-link{min-height:44px;font-size:.85rem}.project-art img.project-organization-mark{width:43px;height:55px;top:12px;right:13px}.art-kicker{font-size:.7rem}.art-node>strong{font-size:.9rem}.art-node>span{font-size:.75rem}.project-art img.project-institution-mark{width:135px;height:150px;top:12%}.contact-options{grid-template-columns:1fr;gap:12px;margin-top:27px}.contact-card{min-height:96px;padding:18px 20px}.contact-card small,.contact-email input{font-size:.9rem}.section-intro,.contact-intro{font-size:1rem}.pointer-halo,.pointer-glow{display:none}}@media (prefers-reduced-motion:reduce){.time-dot:after{animation:none}.pointer-halo,.pointer-glow{display:none}}@media (width>=761px){.desktop-navigation{padding:3px}.site-header .desktop-navigation a{min-height:40px}.resume-link{gap:11px;min-height:48px;padding-inline:17px;font-size:.94rem}}.experience-stack{border-top:1px solid var(--color-divider);flex-wrap:wrap;gap:7px;margin-top:20px;padding:20px 0 0;list-style:none;display:flex}.experience-stack li{color:#e4c9af;background:#e6a16d0c;border:1px solid #69513e;border-radius:9px;padding:4px 10px;font-size:.88rem;line-height:1.6}.trajectory-pinned.chapter-inner{min-height:calc(100svh - var(--header-height));background:var(--color-background);justify-content:flex-start;padding-block:24px 35px}.trajectory-pinned .section-heading{margin-bottom:36px}.trajectory-pinned h2{font-size:clamp(2.7rem,4.1vw,3.8rem)}.trajectory-pinned .timeline-progress{transition:none}.trajectory-pinned .timeline-content{transition:transform .25s}.trajectory-pinned .timeline-entry.is-active .timeline-content{transform:translateY(-4px)}@media (width<=760px){:root{--header-height:80px}html.phone-menu-open{overflow:hidden}.phone-menu-open .site-header{background:var(--color-background)}.header-inner.container{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;width:calc(100% - 2.5rem)}.identity{gap:5px}.brand{letter-spacing:-.025em;gap:8px;font-size:1rem}.brand-symbol{flex-shrink:0;font-size:1.2rem;display:block}.local-time{display:none}.resume-link{min-height:44px;color:var(--color-accent);box-shadow:none;background:#e6a16d12;border-color:#e6a16d55;border-radius:14px;gap:6px;padding-inline:11px}.resume-link>span:first-child:after{font-size:.78rem}.resume-link .action-icon{flex-basis:18px;width:18px;height:18px}.mobile-menu{justify-self:end;position:static}.mobile-menu summary{background:var(--color-surface);border-radius:14px;width:44px;min-width:44px;min-height:44px}.mobile-menu summary>.mobile-menu-label,.mobile-menu summary>.mobile-menu-plus{display:none}.mobile-menu-icon{width:20px;height:16px;display:block;position:relative}.mobile-menu-icon>span{background:currentColor;border-radius:2px;width:100%;height:2px;transition:transform .18s,opacity .18s;position:absolute;left:0}.mobile-menu-icon>span:first-child{top:0}.mobile-menu-icon>span:nth-child(2){top:7px}.mobile-menu-icon>span:nth-child(3){top:14px}.mobile-menu[open] summary{color:var(--color-accent);border-color:#e6a16d80}.mobile-menu[open] .mobile-menu-icon>span:first-child{transform:translateY(7px)rotate(45deg)}.mobile-menu[open] .mobile-menu-icon>span:nth-child(2){opacity:0}.mobile-menu[open] .mobile-menu-icon>span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu[open] .mobile-menu-backdrop{z-index:1;inset:var(--header-height) 0 0;background:#0009;animation:.22s ease-out both mobile-backdrop-in;display:block;position:fixed}.site-header .mobile-menu nav{z-index:2;top:var(--header-height);width:100%;max-height:calc(100dvh - var(--header-height));overscroll-behavior:contain;border:0;border-bottom:1px solid var(--color-divider);background:var(--color-background);box-shadow:none;border-radius:0;gap:4px;padding:12px 20px 24px;position:fixed;inset-inline:0;overflow-y:auto}.mobile-menu[open] nav{animation:.22s cubic-bezier(.2,.75,.25,1) both mobile-navigation-in}.site-header .mobile-menu nav a{border-radius:10px;justify-content:flex-start;min-height:52px;padding-inline:16px;font-size:1.05rem}@keyframes mobile-navigation-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes mobile-backdrop-in{0%{opacity:0}to{opacity:1}}.hero-inner{align-content:start;padding-top:28px}.hero-actions{gap:10px}.hero-actions .button{gap:10px;padding-inline:14px}.hero-actions .action-icon{flex-basis:20px;width:20px;height:20px}.experience-stack{gap:6px;margin-top:18px;padding-top:17px}.experience-stack li{padding:4px 8px;font-size:.83rem}.project-art-module{min-height:320px}.module-integration{--integration-gap:30px;width:calc(100% - 30px);padding-top:42px}.module-integration .art-node{min-height:86px;padding:10px}.module-integration .art-node>strong{font-size:.9rem}.module-integration .art-node-management{min-height:66px}.art-api-link>span{width:118px;font-size:.68rem}.footer-inner{flex-direction:column;gap:20px;padding:28px 0 92px}.footer-copyright{text-align:left}}@media (width<=360px){.header-inner.container{width:calc(100% - 2rem)}}@media (width<=760px){.projects{overflow-x:clip}.projects>.project-showcase{min-width:0;padding-block:48px 34px}.projects-heading{margin-bottom:15px}.projects-heading-copy{min-width:0}.projects-heading-meta{justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px;display:flex}.projects-heading .eyebrow{letter-spacing:.1em;margin:0;font-size:.68rem}.project-mobile-navigation{align-items:center;gap:7px;display:flex}.project-mobile-navigation button{width:32px;height:32px;color:var(--color-text);background:#211c18;border:1px solid #75583f;border-radius:50%;place-items:center;padding:0;transition:border-color .18s,background .18s,opacity .18s;display:grid}.project-mobile-navigation button:disabled{opacity:.4}.project-mobile-navigation button:not(:disabled):active{background:#3b2a1e}.project-mobile-navigation .action-icon{width:16px;height:16px}.project-mobile-counter{min-width:48px;color:var(--color-secondary);font-variant-numeric:tabular-nums;text-align:center;font-size:.75rem;display:block}.project-mobile-counter>span{color:var(--color-accent)}.projects-heading h2{font-size:clamp(2.35rem,9.2vw,3.2rem)}.projects>.project-showcase>.project-toolbar{display:none}.projects>.project-showcase.mobile-carousel-enabled .project-viewport{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;min-width:0;overflow:auto hidden}.projects>.project-showcase.mobile-carousel-enabled .project-viewport::-webkit-scrollbar{display:none}.mobile-carousel-enabled .project-list{align-items:stretch;gap:15px;width:100%;min-width:0;display:flex}.mobile-carousel-enabled .project-feature{scroll-snap-align:start;scroll-snap-stop:always;border:0;flex:0 0 100%;grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;width:100%;min-width:0;padding:5px 0 12px}.mobile-carousel-enabled .project-title-row{align-items:center;gap:8px;display:flex}.mobile-carousel-enabled .project-title-row h3{flex:auto;min-width:0}.mobile-carousel-enabled .project-copy h3{margin-top:10px;font-size:clamp(1.85rem,7.6vw,2.45rem)}.mobile-carousel-enabled .project-category{gap:8px;font-size:.76rem;line-height:1.45}.mobile-carousel-enabled .project-number{flex:0 0 29px;width:29px;height:29px;font-size:.7rem}.mobile-carousel-enabled .project-narrative{gap:10px;margin-top:13px}.mobile-carousel-enabled .project-narrative h4,.mobile-carousel-enabled .project-technologies h4{margin-bottom:3px;font-size:.68rem}.mobile-carousel-enabled .project-narrative p{font-size:.9rem;line-height:1.6}.mobile-carousel-enabled .project-technologies{margin-top:13px}.mobile-carousel-enabled .technology-list{gap:5px}.mobile-carousel-enabled .technology-list li{padding:3px 8px;font-size:.75rem}.mobile-carousel-enabled .disclosure-note{margin-top:11px;padding:8px 10px;font-size:.74rem}.mobile-carousel-enabled .repository-link{min-height:42px;margin-top:8px;font-size:.82rem}.mobile-carousel-enabled .project-art{aspect-ratio:1.48;border-radius:17px;min-height:205px}.mobile-carousel-enabled .project-art-module{min-height:250px}.mobile-carousel-enabled .project-media-navigation{display:block}.mobile-carousel-enabled .project-art:hover{border-color:#7f634a;transform:none;box-shadow:0 27px 60px #0003}.mobile-carousel-enabled .project-art:hover .art-link i{opacity:0;animation:none}.mobile-carousel-enabled .project-art img{padding:19px}.mobile-carousel-enabled .project-art.project-art-image{padding:10px}.mobile-carousel-enabled .project-browser{border-radius:10px}.mobile-carousel-enabled .project-browser-bar{height:27px}.mobile-carousel-enabled .project-art img.project-organization-mark{object-fit:contain;width:40px;height:51px;padding:5px;top:10px;right:11px}.mobile-carousel-enabled .project-art img.project-institution-mark{width:115px;height:130px;top:12%}.mobile-carousel-enabled .art-kicker{font-size:.55rem;top:14px;left:14px}.mobile-carousel-enabled .module-integration{--integration-gap:14px;width:calc(100% - 22px);padding-top:38px}.mobile-carousel-enabled .module-integration .art-node{min-height:76px;padding:8px}.mobile-carousel-enabled .module-integration .art-node>strong{font-size:.78rem}.mobile-carousel-enabled .module-integration .art-node-management{min-height:58px}.mobile-carousel-enabled .art-api-link>span{width:108px;font-size:.62rem}.mobile-carousel-enabled .art-orbits span{width:190px;height:190px;transform:translate(43px,-16px)}.mobile-carousel-enabled .art-orbits span:nth-child(2){width:270px;height:270px;transform:translate(43px,-16px)}.mobile-carousel-enabled .art-orbits span:nth-child(3){width:350px;height:350px;transform:translate(43px,-16px)}.mobile-carousel-enabled .editorial-art{padding:20px}.mobile-carousel-enabled .editorial-art>strong{font-size:clamp(1.35rem,5.8vw,1.8rem)}.mobile-carousel-enabled .art-composition{width:112px;height:112px;top:25%;right:8%}.mobile-carousel-enabled .art-composition>span{border-radius:19px;width:66px;height:66px}.mobile-carousel-enabled .art-composition>span:nth-child(2){top:23px;left:23px}.mobile-carousel-enabled .art-composition>span:nth-child(3){top:46px;left:47px}.mobile-carousel-enabled .art-composition>i{top:31px;left:31px}}@media (width<=360px){.mobile-carousel-enabled .module-integration .art-node{padding:6px}.mobile-carousel-enabled .module-integration .art-node>strong{font-size:.69rem}}.profile-inner[data-astro-cid-ykkw727v]{min-height:calc(100svh - var(--header-height));padding-block:32px 48px}.profile-section-label[data-astro-cid-ykkw727v]{color:var(--color-text);margin-bottom:28px}.profile-layout[data-astro-cid-ykkw727v]{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:clamp(40px,6vw,88px);display:grid}.profile-story[data-astro-cid-ykkw727v],.profile-technical[data-astro-cid-ykkw727v]{min-width:0}.profile-story[data-astro-cid-ykkw727v] h2[data-astro-cid-ykkw727v]{letter-spacing:-.065em;font-size:clamp(3.3rem,4.6vw,4.7rem);line-height:1.08}.profile-greeting[data-astro-cid-ykkw727v]{color:var(--color-secondary);letter-spacing:-.045em;margin-bottom:10px;font-size:.65em;font-weight:400;line-height:1.1;display:block}.profile-bio[data-astro-cid-ykkw727v]{color:var(--color-text);margin-top:26px;font-size:1.08rem;line-height:1.8}.profile-perspective[data-astro-cid-ykkw727v]{color:var(--color-secondary);margin-top:17px;font-size:1rem;line-height:1.75}.profile-background[data-astro-cid-ykkw727v]{border-top:1px solid var(--color-divider);grid-template-columns:1fr 1fr;gap:25px;margin:30px 0 0;padding-top:23px;display:grid}.profile-background[data-astro-cid-ykkw727v] dt[data-astro-cid-ykkw727v]{color:var(--color-accent);letter-spacing:.11em;text-transform:uppercase;margin-bottom:9px;font-size:.7rem;font-weight:600}.profile-background[data-astro-cid-ykkw727v] dd[data-astro-cid-ykkw727v]{color:var(--color-text);margin:0;font-size:.94rem;line-height:1.5}.profile-background[data-astro-cid-ykkw727v] dd[data-astro-cid-ykkw727v]>span[data-astro-cid-ykkw727v]{color:var(--color-secondary);margin-top:6px;font-size:.82rem;display:block}.profile-technical[data-astro-cid-ykkw727v]{background:radial-gradient(at 100% 0,#b67c4538,#0000 65%),linear-gradient(135deg,#27221c,#181715);border:1px solid #a1775280;border-radius:24px;padding:28px 30px 8px;position:relative;box-shadow:0 20px 50px #0003,inset 0 1px #edc29b12}.profile-technical[data-astro-cid-ykkw727v]:before{content:"";background:var(--color-accent);width:80px;height:1px;position:absolute;top:-1px;left:30px}.profile-technical-heading[data-astro-cid-ykkw727v]{padding-bottom:26px}.profile-technical-heading[data-astro-cid-ykkw727v] .eyebrow[data-astro-cid-ykkw727v]{color:var(--color-accent);font-size:.73rem}.profile-technical-heading[data-astro-cid-ykkw727v] h3[data-astro-cid-ykkw727v]{letter-spacing:-.045em;max-width:15em;margin-top:12px;font-size:clamp(1.8rem,2.3vw,2.2rem);line-height:1.2}.profile-skill-group[data-astro-cid-ykkw727v]{border-top:1px solid #a1775240;grid-template-columns:42px minmax(0,1fr);column-gap:16px;padding-block:22px;display:grid}.profile-skill-number[data-astro-cid-ykkw727v]{color:#f2c49f;width:42px;height:42px;font:500 1rem/1 var(--font-heading);font-variant-numeric:tabular-nums;letter-spacing:-.025em;background:linear-gradient(135deg,#e6a16d24,#e6a16d08);border:1px solid #c78d5e;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 4px #e6a16d06}.profile-skill-content[data-astro-cid-ykkw727v]{min-width:0}.profile-skill-content[data-astro-cid-ykkw727v] h4[data-astro-cid-ykkw727v]{font-family:var(--font-heading);letter-spacing:-.025em;margin-top:1px;font-size:1.12rem;font-weight:600;line-height:1.4}.profile-skill-content[data-astro-cid-ykkw727v]>p[data-astro-cid-ykkw727v]{color:var(--color-secondary);margin-top:6px;font-size:.9rem;line-height:1.6}.profile-stack[data-astro-cid-ykkw727v]{flex-wrap:wrap;gap:8px;margin-top:14px;padding:0;list-style:none;display:flex}.profile-stack[data-astro-cid-ykkw727v] li[data-astro-cid-ykkw727v]{background:#e6a16d07;border:1px solid #a177523d;border-radius:9px;align-items:center;gap:8px;padding:7px 10px;font-size:.86rem;line-height:1.4;transition:top .18s,border-color .18s,background .18s,box-shadow .18s;display:inline-flex;position:relative;top:0}.profile-stack-mark[data-astro-cid-ykkw727v]{flex:0 0 22px;place-items:center;width:22px;height:22px;display:grid;position:relative;overflow:hidden}.profile-stack-mark[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{object-fit:contain;width:22px;height:22px}.profile-stack-mark--javascript[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{width:50px;height:auto;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.profile-stack-mark--wordmark[data-astro-cid-ykkw727v]{flex-basis:66px;width:66px}.profile-stack-mark--wordmark[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{filter:grayscale()contrast(8)invert();mix-blend-mode:screen;width:96px;height:54px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.profile-stack-mark--sql-server[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{width:40px;height:auto;position:absolute;top:0;left:-14px}@media (width>=761px){.profile-story[data-astro-cid-ykkw727v]{align-self:center}.profile-bio[data-astro-cid-ykkw727v],.profile-perspective[data-astro-cid-ykkw727v]{text-align:justify;text-wrap:wrap}}@media (hover:hover) and (pointer:fine){.profile-stack[data-astro-cid-ykkw727v] li[data-astro-cid-ykkw727v]:hover{background:#e6a16d1a;border-color:#e6a16da6;top:-2px;box-shadow:0 5px 16px #0004,inset 0 0 0 1px #e6a16d0a}}@media (prefers-reduced-motion:reduce){.profile-stack[data-astro-cid-ykkw727v] li[data-astro-cid-ykkw727v]{transition:none}.profile-stack[data-astro-cid-ykkw727v] li[data-astro-cid-ykkw727v]:hover{top:0}}@media (width>=761px) and (width<=1050px){.profile-layout[data-astro-cid-ykkw727v]{grid-template-columns:1fr 1fr;gap:32px}.profile-story[data-astro-cid-ykkw727v] h2[data-astro-cid-ykkw727v]{font-size:3.1rem}.profile-technical[data-astro-cid-ykkw727v]{padding-inline:24px}.profile-background[data-astro-cid-ykkw727v]{grid-template-columns:1fr;gap:18px}}@media (width<=760px){.profile-inner[data-astro-cid-ykkw727v]{padding-block:30px 42px}.profile-section-label[data-astro-cid-ykkw727v]{margin-bottom:23px}.profile-layout[data-astro-cid-ykkw727v]{grid-template-columns:minmax(0,1fr);gap:27px}.profile-story[data-astro-cid-ykkw727v] h2[data-astro-cid-ykkw727v]{font-size:clamp(2.7rem,10.5vw,4.2rem)}.profile-bio[data-astro-cid-ykkw727v]{margin-top:22px;font-size:1rem;line-height:1.75}.profile-perspective[data-astro-cid-ykkw727v]{font-size:.95rem}.profile-background[data-astro-cid-ykkw727v]{gap:18px;margin-top:25px;padding-top:20px}.profile-background[data-astro-cid-ykkw727v] dd[data-astro-cid-ykkw727v]{font-size:.87rem}.profile-background[data-astro-cid-ykkw727v] dd[data-astro-cid-ykkw727v]>span[data-astro-cid-ykkw727v]{font-size:.78rem}.profile-technical[data-astro-cid-ykkw727v]{background:radial-gradient(at 100% 0,#b67c4528,#0000 68%),linear-gradient(145deg,#24201b,#181715);border-radius:18px;padding:21px 17px 3px}.profile-technical-heading[data-astro-cid-ykkw727v]{padding-bottom:17px}.profile-technical-heading[data-astro-cid-ykkw727v] .eyebrow[data-astro-cid-ykkw727v]{letter-spacing:.1em;font-size:.67rem}.profile-technical-heading[data-astro-cid-ykkw727v] h3[data-astro-cid-ykkw727v]{margin-top:9px;font-size:1.55rem}.profile-skill-group[data-astro-cid-ykkw727v]{grid-template-columns:32px minmax(0,1fr);column-gap:10px;padding-block:16px}.profile-skill-number[data-astro-cid-ykkw727v]{width:32px;height:32px;font-size:.86rem}.profile-skill-content[data-astro-cid-ykkw727v]{display:contents}.profile-skill-content[data-astro-cid-ykkw727v] h4[data-astro-cid-ykkw727v]{align-self:center;margin-top:0;font-size:1rem}.profile-skill-content[data-astro-cid-ykkw727v]>p[data-astro-cid-ykkw727v]{grid-column:1/-1;margin-top:8px;font-size:.85rem;line-height:1.55}.profile-stack[data-astro-cid-ykkw727v]{gap:6px}.profile-skill-content[data-astro-cid-ykkw727v] .profile-stack[data-astro-cid-ykkw727v]{grid-column:1/-1;margin-top:11px}.profile-stack[data-astro-cid-ykkw727v] li[data-astro-cid-ykkw727v]{border-radius:8px;gap:7px;padding:5px 8px;font-size:.77rem}.profile-stack-mark[data-astro-cid-ykkw727v]{flex-basis:22px;width:22px;height:22px}.profile-stack-mark[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{width:22px;height:22px}.profile-stack-mark--javascript[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{width:50px;height:auto}.profile-stack-mark--sql-server[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{width:40px;height:auto}.profile-stack-mark--wordmark[data-astro-cid-ykkw727v]{background:#fff;border-radius:4px;flex-basis:64px;width:64px;height:21px}.profile-stack-mark--wordmark[data-astro-cid-ykkw727v] img[data-astro-cid-ykkw727v]{filter:none;mix-blend-mode:normal;width:61px;height:auto;max-height:18px;top:50%;left:50%;transform:translate(-50%,-50%)}}@media (width<=400px){.profile-background[data-astro-cid-ykkw727v]{grid-template-columns:1fr;gap:20px}}
