:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f2f2f3;background:#111214;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid #e6ad56;outline-offset:4px}::selection{background:#e6ad56;color:#111214}.shell{max-width:1450px;margin:auto;display:grid;grid-template-columns:260px minmax(0,1fr);gap:74px;padding:36px 58px}.rail{position:sticky;top:35px;height:calc(100vh - 70px);min-height:600px;background:#1a1b1e;border:1px solid #ffffff12;border-radius:22px;padding:32px 23px;display:flex;flex-direction:column}.identity{display:flex;align-items:center;gap:13px}.avatar{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:14px;background:#30291f;color:#e6ad56;font-size:20px;font-weight:800}.identity strong{display:block;font-size:15px;white-space:nowrap}.identity small{display:block;color:#a1a3a8;margin-top:5px;font-size:12px}.rail-content{display:flex;flex:1;flex-direction:column}.rail-caption,.eyebrow,.timeline-date,.scroll-hint,.visual-index,.kind{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em}.rail-caption{color:#777a80;font-size:10px;margin:68px 0 18px 11px}.rail nav{display:grid;gap:6px}.rail nav a{font-size:13px;color:#a1a3a8;border-left:2px solid transparent;padding:12px 15px;transition:color .2s,background .2s,border-color .2s;border-radius:0 7px 7px 0}.rail nav a:hover,.rail nav a.active{color:#e6ad56;background:#e6ad560e;border-color:#e6ad56}.rail-bottom{margin-top:auto}.socials{display:flex;gap:22px;color:#a1a3a8;margin-bottom:26px}.socials a:hover{color:#e6ad56}.resume-link{display:flex;align-items:center;justify-content:space-between;border:1px solid #ffffff20;border-radius:10px;padding:13px 15px;font-size:13px}.resume-link:hover{border-color:#e6ad56;color:#e6ad56}.menu-toggle{display:none}.content{min-width:0;max-width:970px}.section{scroll-margin-top:38px;padding:82px 0 56px}.hero{min-height:92vh;display:flex;flex-direction:column;justify-content:center;padding-top:20px}.eyebrow{font-size:11px;font-weight:600;color:#e6ad56;margin:0 0 22px}.dot{display:inline-block;width:7px;height:7px;background:#e6ad56;border-radius:50%;margin-right:10px;box-shadow:0 0 15px #e6ad5655}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(49px,6vw,80px);max-width:760px;line-height:1.09;letter-spacing:-.065em;margin-bottom:28px}h1 em,.contact h2 em{font-style:normal;color:#e6ad56}.lead{font-size:17px;color:#b5b6b9;line-height:1.85;max-width:680px}.hero-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}.button{display:inline-flex;gap:20px;align-items:center;border:1px solid #ffffff20;border-radius:11px;padding:15px 19px;font-size:13px;font-weight:600;transition:transform .2s,border-color .2s}.button:hover{transform:translateY(-2px);border-color:#e6ad56}.button.primary{background:#e6ad56;color:#171717;border-color:#e6ad56}.scroll-hint{align-self:flex-start;display:flex;gap:12px;align-items:center;margin-top:100px;color:#777a80;font-size:10px}.section-head{margin-bottom:36px}.section h2{font-size:clamp(32px,4vw,49px);letter-spacing:-.045em;line-height:1.2;margin-bottom:15px}.accent{color:#e6ad56}.section-head>p:last-child{max-width:650px;color:#a1a3a8;line-height:1.75}.project-card,.skill-card,.open-source-card{background:#1c1d20;border:1px solid #ffffff12;border-radius:17px;overflow:hidden;transition:transform .24s,border-color .24s}.project-card:hover,.skill-card:hover{border-color:#e6ad5660;transform:translateY(-2px)}.project-visual{background:radial-gradient(ellipse at 68% 48%,#3b3023,#222327,#191a1d 80%);min-height:156px;position:relative;display:flex;align-items:center;justify-content:center}.project-card.featured .project-visual{min-height:250px}.visual-mark{font-weight:800;font-size:56px;letter-spacing:-.08em;color:#e6ad56;opacity:.8}.featured .visual-mark{font-size:94px}.visual-index{position:absolute;top:16px;left:17px;font-size:9px;color:#a1a3a8}.visual-corner{position:absolute;bottom:12px;right:18px;color:#e6ad56}.project-body{padding:23px}.featured .project-body{padding:29px}.project-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-heading h3{font-size:21px;letter-spacing:-.025em;margin-bottom:12px}.kind{color:#e6ad56;font-size:9px;background:#e6ad5614;border:1px solid #e6ad5630;padding:7px 9px;border-radius:20px}.project-body>p{color:#b2b3b8;font-size:13px;line-height:1.8}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{font-size:10px;color:#bfc1c6;background:#2a2b30;border:1px solid #ffffff0b;padding:7px 10px;border-radius:6px}.project-actions{display:flex;flex-wrap:wrap;gap:20px;margin-top:23px}.project-actions a,.open-source-card a{display:inline-flex;align-items:center;gap:5px;color:#e6ad56;font-size:12px}.project-actions a:hover,.open-source-card a:hover{text-decoration:underline}.pipeline{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:25px;padding:17px;background:#121316;border:1px solid #ffffff12;border-radius:10px;color:#e1e1e3;font-size:12px}.pipeline b{color:#e6ad56;font-weight:400}.details-button{border:0;background:transparent;color:#a1a3a8;display:flex;align-items:center;gap:9px;padding:0;margin-top:25px;font-size:12px;cursor:pointer}.details-button:hover{color:#e6ad56}.details-button svg{transition:transform .2s}.details-button svg.rotated{transform:rotate(180deg)}.details{border-top:1px solid #ffffff12;margin-top:15px;padding-top:16px;color:#aaaeb5;font-size:12px;line-height:1.8}.project-grid,.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:17px}.subhead{margin:42px 0 20px;font-size:19px}.skill-card{padding:24px}.skill-card h3{font-size:15px;margin-bottom:18px}.timeline{border-top:1px solid #ffffff16}.timeline article{display:grid;grid-template-columns:175px 1fr;gap:25px;padding:29px 0;border-bottom:1px solid #ffffff16}.timeline-date{font-size:11px;color:#e6ad56}.timeline h3{font-size:17px;margin-bottom:7px}.timeline p{color:#b2b3b8;line-height:1.7;font-size:13px;margin-bottom:5px}.timeline .muted{color:#85878f}.open-source-card{padding:30px;display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.open-source-card svg{color:#e6ad56;flex:none}.open-source-card p{flex:1;min-width:210px;color:#b2b3b8;font-size:14px;line-height:1.7}.contact{padding-bottom:100px}.contact h2{max-width:680px}.contact>p:not(.eyebrow){color:#b5b6b9;line-height:1.8}footer{border-top:1px solid #ffffff16;padding:25px 0 35px;color:#85878f;font-size:12px}@media (max-width:1060px){.shell{grid-template-columns:205px minmax(0,1fr);gap:35px;padding:25px}.rail{padding:25px 17px}.identity{gap:8px}.avatar{width:42px;height:42px;font-size:16px}.identity strong{font-size:12px}.identity small{font-size:10px}}@media (max-width:760px){.shell{display:block;padding:90px 19px 0}.rail{position:fixed;z-index:20;top:0;left:0;right:0;height:auto;min-height:0;border-radius:0;padding:12px 19px;background:#18191bef;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.identity{width:100%}.identity strong{font-size:14px}.identity small{font-size:11px}.menu-toggle{display:block;margin-left:auto;background:none;border:0;color:#f2f2f3;cursor:pointer}.rail-content{display:none}.rail.menu-open .rail-content{display:flex}.rail-caption{margin:20px 0 10px}.rail nav{gap:0}.rail-bottom{margin-top:20px}.socials{margin-bottom:17px}.content{max-width:100%}.hero{min-height:75vh}.section{scroll-margin-top:90px;padding:65px 0 35px}.hero h1{font-size:clamp(45px,10vw,64px)}.lead{font-size:15px}.scroll-hint{margin-top:65px}.project-grid,.skills-grid{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:9px}.project-card.featured .project-visual{min-height:190px}.section-head{margin-bottom:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}.project-card{transition:transform .24s,border-color .24s,box-shadow .24s}.project-card:hover{transform:translateY(-3px);box-shadow:0 18px 48px #00000038}.project-visual,.project-card.featured .project-visual{position:relative;display:block;min-height:0;aspect-ratio:16 / 9;overflow:hidden;isolation:isolate;background:#141517;border-bottom:1px solid #ffffff10}.project-visual svg{display:block;width:100%;height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transform:scale(1.002);transition:transform .45s cubic-bezier(.2,.7,.2,1)}.project-card:hover .project-visual svg{transform:scale(1.018)}.visual-sheen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 15%,#ffffff08 45%,transparent 66%);transform:translate(-110%);transition:transform .65s ease}.project-card:hover .visual-sheen{transform:translate(110%)}.visual-disclaimer{position:absolute;right:14px;bottom:12px;z-index:2;padding:5px 8px;border:1px solid #ffffff14;border-radius:999px;background:#111214d9;color:#a1a3a8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;font-weight:700;letter-spacing:.1em;line-height:1;text-transform:uppercase;box-shadow:0 5px 18px #00000038}.avatar{color:transparent;background-color:#211e1a;background-image:url(/assets/my-avatar-C_hoHd-2.png);background-position:center 42%;background-size:148%;background-repeat:no-repeat;border:1px solid #e6ad5638;box-shadow:inset 0 0 0 1px #00000024,0 8px 22px #00000030}.pv-panel{fill:#17181b;stroke:#ffffff12;stroke-width:2}.pv-card{fill:#1c1d20;stroke:#ffffff12;stroke-width:1.5}.pv-well{fill:#111214;stroke:#ffffff10;stroke-width:1.5}.pv-rule{stroke:#ffffff12;stroke-width:1.5}.pv-grid-line{stroke:#ffffff0e;stroke-width:1}.pv-dot{fill:#3a3b40}.pv-dot-hot,.pv-accent,.pv-status{fill:#e6ad56}.pv-warn{fill:#c98652}.pv-icon{fill:#3a3b40}.pv-track{fill:#2c2e32}.pv-accent-soft{fill:#e6ad5614;stroke:#e6ad5630;stroke-width:1.5}.pv-pill{fill:#282a2e;stroke:#ffffff12;stroke-width:1}.pv-icon-box{fill:#282a2e;stroke:#ffffff12;stroke-width:1.5}.pv-button{fill:#e6ad56}.pv-title{fill:#f2f2f3;font-size:14px;font-weight:700}.pv-eyebrow,.pv-label,.pv-micro{fill:#85878d;font-size:9px;font-weight:650;letter-spacing:1.15px}.pv-label{font-size:10px}.pv-heading{fill:#f2f2f3;font-size:16px;font-weight:650}.pv-copy{fill:#a1a3a8;font-size:11px}.pv-copy-bright{fill:#e8e8ea}.pv-metric{fill:#f2f2f3;font-size:28px;font-weight:700}.pv-metric-sm{fill:#f2f2f3;font-size:23px;font-weight:700}.pv-terminal{fill:#e8e8ea;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.pv-muted{fill:#8e9096}.pv-amber{fill:#e6ad56}.pv-button-copy{fill:#17181b;font-size:9px;font-weight:800;letter-spacing:.8px}.pv-accent-stroke{fill:none;stroke:#e6ad56;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pv-flow{fill:none;stroke:#6b6d73;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.pv-chart-fill{fill:#e6ad560d}.pv-chart{fill:none;stroke:#e6ad56;stroke-width:2.5;stroke-linecap:round}@media (min-width: 1280px){.project-card.featured{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(325px,.85fr);align-items:stretch}.project-card.featured .project-visual{height:100%;min-height:410px;aspect-ratio:auto;border-right:1px solid #ffffff10;border-bottom:0}.project-card.featured .project-body{display:flex;flex-direction:column;justify-content:center;padding:28px}.project-card.featured .project-actions{margin-top:28px}}@media (prefers-reduced-motion: reduce){.project-visual svg,.visual-sheen{transition:none}}:root{--bg: #111214;--surface: #17181b;--card: #1c1d20;--elevated: #282a2e;--border: #ffffff12;--accent: #e6ad56;--accent-hover: #f0be72;--text: #f2f2f3;--muted: #a1a3a8}body{overflow-x:hidden}.shell{position:relative}.shell:before{content:"";position:fixed;z-index:-1;width:520px;height:520px;right:-220px;top:15vh;border-radius:50%;background:#e6ad5608;filter:blur(90px);pointer-events:none}.hero-copy{animation:hero-enter .7s cubic-bezier(.2,.7,.2,1) both}.scroll-hint{animation:hero-enter .7s .16s cubic-bezier(.2,.7,.2,1) both}@keyframes hero-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .38s ease,transform .38s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--reveal-order, 0) * 70ms)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.button svg,.project-actions svg,.detail-links svg{transition:transform .2s ease}.button:hover svg,.project-github:hover svg,.detail-links a:hover svg{transform:translate(2px,-2px)}.project-card.featured{display:block}.project-summary,.project-slot{min-width:0}.project-slot.expanded{grid-column:1 / -1}.project-card.project-open{border-color:#e6ad5652;transform:none;box-shadow:0 20px 55px #00000042}.project-heading h3{scroll-margin-top:100px}.kind{white-space:nowrap}.project-body>p{min-height:46px}.featured .project-body>p{min-height:0}.pipeline span{display:inline-flex;align-items:center;gap:9px}.project-actions{align-items:center;gap:10px}.project-github,.explore-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:9px;padding:0 13px;font-size:11px;font-weight:700}.project-github{color:#171717!important;background:var(--accent);text-decoration:none!important;transition:background .2s,transform .2s}.project-github:hover{background:var(--accent-hover);transform:translateY(-1px)}.explore-button{border:1px solid #ffffff1d;background:#242529;color:var(--text);cursor:pointer;transition:color .2s,border-color .2s,background .2s}.explore-button:hover{color:var(--accent-hover);border-color:#e6ad565c;background:#282a2e}.explore-button svg{transition:transform .25s ease}.explore-button svg.rotated{transform:rotate(180deg)}.project-details-shell{display:grid;grid-template-rows:0fr;overflow:hidden;border-top:1px solid transparent;transition:grid-template-rows .34s cubic-bezier(.2,.7,.2,1),border-color .25s}.project-details-shell.expanded{grid-template-rows:1fr;border-color:var(--border)}.project-details-inner{min-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s .34s}.project-details-shell.expanded .project-details-inner{opacity:1;visibility:visible;transition:opacity .28s .08s ease,visibility 0s}.project-details-content{padding:32px;background:#17181b}.case-study-intro{max-width:760px;margin-bottom:28px}.detail-kicker,.stack-label,.detail-heading-row>span,.media-provenance,.skill-index{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em}.detail-kicker{margin-bottom:10px;color:var(--accent);font-size:9px;font-weight:700}.case-overview{margin:0;color:#d6d7da;font-size:16px;line-height:1.75}.case-narrative{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.case-narrative article,.detail-block{border:1px solid var(--border);border-radius:13px;background:#1c1d20;padding:20px}.case-narrative article>span{display:block;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;margin-bottom:13px}.case-narrative h4,.detail-block h4{margin:0 0 12px;color:var(--text);font-size:13px;letter-spacing:-.01em}.case-narrative p,.detail-block p{margin:0;color:var(--muted);font-size:12px;line-height:1.75}.detail-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:14px;margin-top:14px}.capability-list,.limitations ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.capability-list li{display:flex;align-items:flex-start;gap:9px;color:#c9cacf;font-size:11px;line-height:1.55}.capability-list svg{flex:none;margin-top:1px;color:var(--accent)}.stack-groups{display:grid;gap:15px}.stack-label{display:block;margin-bottom:7px;color:#7f8187;font-size:8px}.workflow-block,.project-media{margin-top:14px}.detail-workflow{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:3px 0 5px;scrollbar-width:thin}.workflow-step{display:flex;min-width:0;align-items:center}.workflow-step>span{display:grid;width:25px;height:25px;flex:none;place-items:center;margin-right:8px;border:1px solid #e6ad5640;border-radius:50%;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.workflow-step strong{color:#dddde0;font-size:10px;font-weight:600;white-space:nowrap}.workflow-step b{margin:0 11px;color:var(--accent);font-weight:400}.detail-workflow-long{flex-wrap:wrap;row-gap:12px}.detail-workflow-long .workflow-step b{margin-right:8px}.detail-heading-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.detail-heading-row>span{color:#7f8187;font-size:8px}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.media-grid figure{min-width:0;margin:0}.media-frame{overflow:hidden;aspect-ratio:16/10;border:1px solid #ffffff12;border-radius:10px;background:#111214}.media-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:top center;transition:transform .3s ease}.media-frame:hover img{transform:scale(1.015)}.media-grid figcaption{margin-top:9px;color:#8f9197;font-size:9px;line-height:1.55}.media-provenance{display:inline-block;margin-right:7px;padding:3px 5px;border:1px solid #ffffff12;border-radius:4px;font-size:7px;text-transform:uppercase}.media-provenance.genuine{color:#bdcfac;border-color:#9abe7a30}.media-provenance.rehearsal{color:var(--accent);border-color:#e6ad5630}.media-empty{display:flex;align-items:center;gap:13px;min-height:78px;border:1px dashed #ffffff18;border-radius:10px;padding:15px;color:#777a80}.media-empty strong{display:block;margin-bottom:4px;color:#cacbd0;font-size:11px}.detail-grid-footer{grid-template-columns:1.35fr .65fr}.limitations h4{display:flex;align-items:center;gap:8px}.limitations h4 svg{color:var(--accent)}.limitations li{position:relative;padding-left:13px;color:#9ea0a6;font-size:10px;line-height:1.6}.limitations li:before{content:"";position:absolute;left:0;top:.65em;width:4px;height:4px;border-radius:50%;background:var(--accent)}.detail-links{display:grid;gap:7px}.detail-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #ffffff0e;padding:8px 0;color:var(--accent);font-size:11px}.detail-links a:hover{color:var(--accent-hover)}.skill-card{position:relative;min-height:135px}.skill-index{position:absolute;right:20px;top:20px;color:#55575d;font-size:9px}.timeline{border-top:0}.timeline article{position:relative;grid-template-columns:35px 155px 1fr;gap:20px;padding:0 0 36px;border:0}.timeline article:not(:last-child):before{content:"";position:absolute;left:14px;top:30px;bottom:5px;width:1px;background:#ffffff14}.timeline-marker{position:relative;z-index:1;display:grid;width:29px;height:29px;place-items:center;border:1px solid #e6ad5642;border-radius:50%;background:#191a1d;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}.timeline h3{font-size:18px}.timeline .muted{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-bottom:14px}.timeline .muted strong{color:#aeb0b5;font-weight:600}.timeline .muted span{color:#73757b;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;letter-spacing:.05em}.timeline ul{display:grid;gap:14px;margin:0;padding:0;color:#b2b3b8;font-size:12px;line-height:1.65;list-style:none}.timeline li{position:relative;padding-left:15px}.timeline li:before{content:"";position:absolute;left:0;top:.7em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.timeline li>div:first-child strong{color:#e1e1e3;font-weight:650}.experience-tech{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.experience-tech span{border:1px solid #ffffff0d;border-radius:5px;background:#242529;padding:3px 6px;color:#96989e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;line-height:1.25}@media (min-width: 900px){.project-slot.expanded .project-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);align-items:stretch}.project-slot.expanded .project-visual{height:100%;min-height:340px;aspect-ratio:auto;border-right:1px solid #ffffff10;border-bottom:0}.project-slot.expanded .project-body{display:flex;flex-direction:column;justify-content:center;padding:28px}}@media (min-width: 1280px){.project-card.featured .project-summary{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(325px,.85fr);align-items:stretch}}@media (max-width: 760px){.project-body>p{min-height:0}.project-details-content{padding:22px 18px}.case-narrative,.detail-grid,.media-grid{grid-template-columns:1fr}.detail-workflow{flex-wrap:wrap;row-gap:12px}.detail-grid-footer{grid-template-columns:1fr}.timeline article{grid-template-columns:29px 1fr;gap:12px}.timeline-date{grid-column:2;margin-top:-31px;margin-bottom:4px}.timeline article>div:last-child{grid-column:2}.rail.menu-open{max-height:100vh;overflow-y:auto}.kind{max-width:145px;overflow:hidden;text-overflow:ellipsis}}@media (prefers-reduced-motion: reduce){.hero-copy,.scroll-hint{animation:none}[data-reveal]{opacity:1;transform:none}.project-details-shell,.project-details-inner,.media-frame img{transition:none}}
