:root{--bg: #0a0a0a;--text: #fafafa;--muted: #a3a3a3;--muted-2: #d4d4d4;--border: rgba(38, 38, 38, .7);--border-strong: #2a2a2a;--panel: #111213;--white: #ffffff;--black: #0a0a0a;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--container: 72rem;--gutter: 1rem;--fz-sm: .875rem;--fz-base: 1rem;--fz-lg: 1.125rem;--fz-xl: 1.25rem;--fz-2xl: 1.5rem;--fz-3xl: 1.875rem;--fz-4xl: 2.25rem;--fz-5xl: 3rem;--shadow-soft: 0 1px 0 rgba(255, 255, 255, .02) inset}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:var(--container);margin-inline:auto;padding-inline:1rem}.container.narrow{max-width:48rem}.row{display:flex;gap:1rem}.center{align-items:center}.between{justify-content:space-between}.section-title{font-weight:600;letter-spacing:-.02em;font-size:clamp(1.875rem,2.3vw + 1rem,3rem);margin:0 0 .5rem}.app{position:relative;min-height:100dvh;overflow-x:clip;background:var(--bg);color:var(--text);display:grid;grid-template-rows:auto 1fr auto}.site-spotlight{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(600px circle at var(--site-pointer-x, 50vw) var(--site-pointer-y, -20vh),rgba(255,255,255,.04),transparent 60%),linear-gradient(180deg,rgba(255,255,255,.012),transparent 22rem);transition:background .1s linear}.site-footer{position:relative}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:#0a0a0a66;backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);padding:.75rem 1rem}.brand{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;color:var(--text)}.main-nav{display:none;gap:1.75rem;font-size:var(--fz-sm)}.nav-link{transition:color .2s;text-decoration:none;color:#d4d4d4}.nav-link:hover{color:var(--white)}.cta-ghost{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #2a2a2a;padding:.5rem 1rem;font-size:var(--fz-sm);border-radius:999px;transition:background .2s,color .2s,border-color .2s;text-decoration:none;color:var(--text)}.cta-ghost.desktop-only{margin-left:1rem}.cta-ghost:hover{background:var(--white);color:var(--black);border-color:var(--white)}@media (min-width: 768px){.main-nav{display:flex}.mobile-only{display:none}}@media (max-width: 767px){.desktop-only{display:none}}.site-footer{border-top:1px solid var(--border)}.footer-inner{display:flex;flex-direction:column;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding-block:1.5rem;color:#a3a3a3;font-size:var(--fz-sm)}.footer-links{display:flex;gap:1.5rem}.footer-links a{transition:color .2s;text-decoration:none;color:#a3a3a3}.footer-links a:hover{color:var(--white)}@media (min-width: 768px){.footer-inner{flex-direction:row;padding-block:1rem}}.menu-toggle{display:none;flex-direction:column;justify-content:space-around;width:24px;height:24px;background:transparent;border:none;cursor:pointer;padding:0;z-index:100;box-sizing:content-box}.hamburger-line{width:100%;height:2px;background-color:var(--text);border-radius:2px;transition:all .3s ease-in-out;transform-origin:center}.menu-toggle.is-active .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.is-active .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.menu-toggle.is-active .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;z-index:45;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.mobile-menu-overlay.is-open{opacity:1;visibility:visible}.mobile-nav{display:flex;flex-direction:column;align-items:center;gap:2.5rem;text-align:center}.mobile-nav-link{font-size:2rem;font-weight:500;color:#d4d4d4;text-decoration:none;transition:color .2s}.mobile-nav-link:hover,.mobile-nav-link.active{color:var(--white)}.mobile-nav .cta-ghost{margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem}@media (max-width: 767px){.menu-toggle{display:flex}}@media (min-width: 768px){.menu-toggle{display:none}}.work-card{height:100%;container-type:inline-size}.work-card-media{position:relative;overflow:hidden;background:radial-gradient(circle at top,rgba(255,255,255,.08),transparent 55%),linear-gradient(180deg,#141414,#0f0f0f)}.work-card-image{width:100%;height:100%;object-fit:cover}.work-card-fallback{display:flex;flex-direction:column;min-height:100%;justify-content:center;gap:1.25rem;padding:clamp(1.5rem,8cqi,2.75rem);color:#fafafab8}.work-card-fallback-top{position:absolute;top:clamp(1.25rem,5cqi,2rem);left:clamp(1.5rem,8cqi,2.75rem);display:flex;align-items:center}.work-card-fallback-index{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text, #fafafa)}.work-card-fallback-title{max-width:13ch;color:#fafafabd;font-size:clamp(1.45rem,1.15rem + 4cqi,2.45rem);font-weight:650;line-height:1.03}.work-card-body{display:flex;flex-direction:column;gap:.75rem;flex:1 1 auto}.work-card-meta{flex-wrap:wrap;gap:.375rem;margin-bottom:0}.work-card-meta-item{display:inline-flex;align-items:center;gap:.375rem}.work-card-meta-separator{opacity:.55}.work-list-grid .card-desc{display:block;overflow:visible}.hero{position:relative;overflow:hidden;min-height:85vh}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(60% 60% at 50% -10%,rgba(255,255,255,.07),transparent 60%)}.hero-inner{padding-block:clamp(6rem,15vh,12rem)}.eyebrow,.hero-subtitle,.hero-actions{opacity:0;animation:fadeInUp .6s ease-out forwards}.eyebrow{margin:0 0 1.25rem;text-transform:uppercase;letter-spacing:.2em;color:#a3a3a3;font-size:.875rem;animation-delay:.1s}.hero-title{margin:0;line-height:.92;font-weight:800;letter-spacing:-.04em;font-size:clamp(3rem,13vw,8rem);min-height:1.9em}@media (min-width: 1024px){.hero-title{font-size:8rem}}.gradient-text{display:block;background:linear-gradient(to bottom,#fff,#737373);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-subtitle{margin-top:2rem;max-width:42rem;color:var(--muted-2);font-size:var(--fz-lg);animation-delay:.3s}.hero-actions{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.75rem;animation-delay:.4s}.btn-primary{display:inline-block;background:var(--white);color:var(--black);padding:.75rem 1.25rem;font-size:var(--fz-sm);font-weight:600;border-radius:999px;transition:opacity .2s;cursor:pointer}.btn-primary:hover{opacity:.9}.btn-outline{display:inline-block;border:1px solid #2a2a2a;padding:.75rem 1.25rem;font-size:var(--fz-sm);border-radius:999px;transition:background .2s}.btn-outline:hover{background:#171717}.cursor{display:inline-block;width:5px;height:1em;margin-left:10px;vertical-align:text-bottom;background-color:var(--text)}@keyframes blink{50%{opacity:0}}.cursor.blinking{animation:blink 1s step-end infinite}.skills{border-block:1px solid var(--border);overflow:hidden}.skills-track{padding-block:.75rem;overflow:hidden}@media (min-width: 768px){.skills-track{padding-block:1rem}}.marquee{display:flex;gap:2rem;list-style:none;margin:0;padding:0;white-space:nowrap;color:var(--muted-2);font-size:clamp(.9rem,.4vw + .8rem,1rem);will-change:transform;animation:marquee 28s linear infinite}.marquee:hover{animation-play-state:paused}.skill-item{display:inline-flex;align-items:center;gap:.75rem}.bullet{opacity:.5}.skill{letter-spacing:-.01em}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.highlighted-projects{padding-block:clamp(3rem,8vw,6rem)}.section-header{margin-bottom:clamp(2rem,5vw,3rem);display:flex;flex-direction:column;align-items:flex-start;gap:1rem}@media (min-width: 768px){.section-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}.section-title{font-size:clamp(1.875rem,5vw,2.5rem);font-weight:700;margin:0}.view-all-link{color:var(--muted-2);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:color .2s}.view-all-link:hover{color:var(--text)}.view-all-link span{transition:transform .2s}.view-all-link:hover span{transform:translate(4px)}@media (min-width: 768px){.work-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem}}.card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-2xl);transition:border-color .2s,transform .2s;background:transparent;display:flex;flex-direction:column;text-decoration:none;color:inherit}.highlighted-projects .section-header,.highlighted-projects .card{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.highlighted-projects .section-header.visible,.highlighted-projects .card.visible{opacity:1;transform:translateY(0)}.highlighted-projects .section-header.visible{transition-delay:.1s}.highlighted-projects .work-grid .card.visible:nth-child(1){transition-delay:.2s}.highlighted-projects .work-grid .card.visible:nth-child(2){transition-delay:.3s}.card-media{aspect-ratio:16 / 10;background:#111;border-bottom:1px solid var(--border)}.card-body{padding:1.25rem;flex-grow:1}.card-title{margin:0;font-size:clamp(1.125rem,.8vw + 1rem,1.5rem);font-weight:600}.card-desc{margin:.5rem 0 0;color:var(--muted-2, #a3a3a3);font-size:var(--fz-sm)}.work{padding-block:clamp(2.5rem,7vw,6rem)}.work-head{margin-bottom:clamp(2rem,6vw,4.5rem);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:1rem}.work-head .section-title{opacity:0;animation:fadeInUp .5s ease-out .1s forwards}.work-eyebrow{margin:0 0 .65rem;color:var(--muted, #a3a3a3);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.work-lede{max-width:34rem;margin:0;color:var(--muted-2, #d4d4d4);font-size:var(--fz-base)}@media (min-width: 768px){.work-head{flex-direction:row;align-items:flex-end}.work-lede{text-align:right}}.view-all{color:var(--muted, #a3a3a3);font-size:var(--fz-sm);transition:color .2s}.view-all:hover{color:var(--text, #fff)}.work-grid{display:grid;gap:1.5rem}@media (min-width: 768px){.work-grid:not(.work-list-grid){grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem}}.card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-2xl);transition:border-color .2s,transform .2s;background:transparent;display:flex;flex-direction:column;opacity:0;animation:fadeInUp .5s ease-out forwards}.work-grid .card:nth-child(1){animation-delay:.2s}.work-grid .card:nth-child(2){animation-delay:.3s}.work-grid .card:nth-child(3){animation-delay:.4s}.work-grid .card:nth-child(4){animation-delay:.5s}.card:hover{border-color:var(--border-strong, #3a3a3a);transform:translateY(-4px)}.card-media{aspect-ratio:16 / 10;background:#111;border-bottom:1px solid var(--border);transition:opacity .2s}.card:hover .card-media{opacity:.95}.card-body{padding:1.25rem;flex-grow:1;display:flex;flex-direction:column}@media (min-width: 768px){.card-body{padding:1.5rem}}.card-tags{display:flex;gap:.5rem;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted, #a3a3a3);font-size:11px}.card-title{margin:0;font-size:clamp(1.125rem,.8vw + 1rem,1.5rem);font-weight:600;line-height:1.3}.card-desc{margin:.5rem 0 0;color:var(--muted-2, #a3a3a3);font-size:var(--fz-sm);flex-grow:1}.work-list-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:clamp(1rem,2.5vw,1.5rem);align-items:stretch}.work-list-grid .work-card{min-height:clamp(28rem,42vw,36rem);border-radius:8px;background:linear-gradient(145deg,#ffffff0e,#ffffff03 42%),#ffffff03;box-shadow:var(--shadow-soft),0 1.5rem 4rem #00000038}.work-list-grid .work-card:hover{border-color:#fafafa33;transform:translateY(-.35rem)}.work-list-grid .work-card-media{aspect-ratio:auto;min-height:clamp(15rem,28vw,20rem)}.work-list-grid .work-card-body{padding:clamp(1.25rem,3vw,2rem)}.work-list-grid .card-title{font-size:1.35rem;line-height:1.15}.work-list-grid .card-desc{max-width:42rem;line-height:1.55}@media (min-width: 860px){.work-list-grid .work-card:first-child{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);min-height:clamp(28rem,38vw,36rem)}.work-list-grid .work-card:first-child .work-card-media{min-height:100%;border-right:1px solid var(--border);border-bottom:0}.work-list-grid .work-card:first-child .work-card-body{justify-content:flex-end}.work-list-grid .work-card:first-child .card-title{font-size:1.75rem}}.work-empty{margin:0;padding:2rem 0 0;color:var(--muted);font-size:var(--fz-lg)}@media (min-width: 768px){.card-span-7{grid-column:span 7 / span 7}.card-span-5{grid-column:span 5 / span 5}}.work-case{--case-bg-2: #0f0f0f;--case-card: #141414;--case-card-2: #181818;--case-border: #222222;--case-border-2: #2a2a2a;--case-text: #fafafa;--case-muted: #8a8a8a;--case-muted-2: #5a5a5a;--case-green: #6ad68a;--case-warm: #d68a6a;--case-radius: 8px;--case-maxw: 1120px;--case-nav-h: 64px;--case-font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--case-font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;position:relative;min-height:calc(100dvh - var(--case-nav-h));padding:1.75rem 0 7.5rem;overflow-x:clip;background:var(--bg);color:var(--case-text);font-family:var(--case-font-sans);font-size:15px;line-height:1.55;font-feature-settings:"ss01","cv11"}.work-case>.container{position:relative;z-index:1;max-width:var(--case-maxw);padding-inline:clamp(1.25rem,3vw,2rem)}.work-case-backrow{padding-top:.2rem}.work-case-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--case-muted);font-size:13px;transition:color .15s ease}.work-case-back span:first-child{transition:transform .2s ease}.work-case-back:hover,.work-case-back:focus-visible{color:var(--case-text)}.work-case-back:hover span:first-child,.work-case-back:focus-visible span:first-child{transform:translate(-3px)}.work-case-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding-top:1.5rem}.work-case-content{min-width:0}.work-case-toc{display:none}.work-case-toc-label,.work-case-eyebrow,.work-case-meta-cell p,.work-case-section-number,.work-case-timeline-period,.work-case-metric-delta,.work-case-gallery-index,.work-case-next-label{font-family:var(--case-font-mono)}.work-case-toc-label{margin:0 0 .9rem;color:var(--case-muted-2);font-size:10.5px;letter-spacing:0;text-transform:uppercase}.work-case-toc ul{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.work-case-toc a{position:relative;display:flex;gap:.65rem;align-items:center;padding:.38rem 0 .38rem .9rem;color:var(--case-muted-2);font-size:12.5px;line-height:1.35;transition:color .15s ease}.work-case-toc a:before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:#333;transform:translateY(-50%);transition:width .2s ease,background .2s ease}.work-case-toc a:hover,.work-case-toc a:focus-visible,.work-case-toc a.is-active{color:var(--case-text)}.work-case-toc a.is-active:before{width:10px;background:var(--case-text)}.work-case-toc a span:first-child{font-family:var(--case-font-mono);font-size:11px;color:inherit}.work-case-hero{padding:.5rem 0 3.75rem;border-bottom:1px solid var(--case-border)}.work-case-eyebrow{display:inline-flex;align-items:center;gap:.65rem;margin:0 0 1.35rem;color:var(--case-muted);font-size:11.5px;letter-spacing:0;text-transform:uppercase}.work-case-eyebrow-dot{width:6px;height:6px;border-radius:999px;background:var(--case-green);box-shadow:0 0 10px #6ad68a80}.work-case-hero h1{max-width:18ch;margin:0 0 1.25rem;font-size:clamp(2.125rem,5.2vw,3.5rem);font-weight:600;letter-spacing:0;line-height:1.04}.work-case-lead{max-width:60ch;margin:0 0 2.5rem;color:#c8c8c8;font-size:17px;line-height:1.55}.work-case-metabar{display:grid;grid-template-columns:repeat(var(--meta-count),minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--case-border);border-radius:var(--case-radius);background:var(--case-border)}.work-case-meta-cell{min-width:0;padding:1rem 1.15rem;background:var(--case-card)}.work-case-meta-cell p{margin:0 0 .4rem;color:var(--case-muted-2);font-size:10.5px;letter-spacing:0;text-transform:uppercase}.work-case-meta-cell strong{display:block;color:var(--case-text);font-size:14px;font-weight:600;overflow-wrap:anywhere}.work-case-section{padding:3rem 0;scroll-margin-top:calc(var(--case-nav-h) + 1.5rem)}.work-case-section+.work-case-section{border-top:1px solid var(--case-border)}.work-case-section-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.75rem}.work-case-section-number{color:var(--case-muted-2);font-size:11px;letter-spacing:0;line-height:1}.work-case-section-title{margin:0;font-size:clamp(1.7rem,2vw,1.95rem);font-weight:600;letter-spacing:0;line-height:1.15}.work-case-section-body{min-width:0}.work-case-richtext{display:grid;gap:.9rem}.work-case-richtext p{max-width:none;margin:0;color:#c8c8c8;font-size:15.5px;line-height:1.65}.work-case-timeline-item p,.work-case-next-card p{max-width:68ch;margin:0;color:#c8c8c8;font-size:15.5px;line-height:1.65}.work-case-problem-grid,.work-case-stack-grid,.work-case-metrics,.work-case-gallery{display:grid;gap:.85rem}.work-case-problem-grid{align-items:start}.work-case-panel,.work-case-metric,.work-case-quote,.work-case-next-card,.work-case-slider{border:1px solid var(--case-border);border-radius:var(--case-radius);background:var(--case-card);box-shadow:var(--shadow-soft)}.work-case-panel{padding:1.25rem 1.35rem}.work-case-panel h3,.work-case-timeline-item h3{margin:0 0 .9rem;color:var(--case-text);font-size:15px;font-weight:600;letter-spacing:0}.work-case-list{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.work-case-list li{display:flex;gap:.65rem;align-items:baseline;color:#c8c8c8;font-size:13.5px;line-height:1.45}.work-case-list li:before{content:"";width:4px;height:4px;flex:0 0 auto;border-radius:999px;background:var(--case-muted);transform:translateY(-2px)}.work-case-list-compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.55rem 1.5rem}.work-case-timeline{position:relative;display:grid;gap:0;padding-left:1.45rem}.work-case-timeline:before{content:"";position:absolute;top:.4rem;bottom:.4rem;left:4px;width:1px;background:var(--case-border)}.work-case-timeline-item{position:relative;padding-bottom:1.4rem}.work-case-timeline-item:last-child{padding-bottom:0}.work-case-timeline-item:before{content:"";position:absolute;top:.45rem;left:-1.45rem;width:9px;height:9px;border:1px solid var(--case-muted);border-radius:999px;background:var(--bg)}.work-case-timeline-item.is-done:before{border-color:var(--case-green);background:var(--case-green);box-shadow:0 0 10px #6ad68a59}.work-case-timeline-period{margin:0 0 .45rem;color:var(--case-muted);font-size:11px;letter-spacing:0;text-transform:uppercase}.work-case-gallery{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));grid-auto-flow:dense}.work-case-gallery-item{position:relative;min-width:0;overflow:hidden;padding:0;border:1px solid var(--case-border);border-radius:var(--case-radius);background:var(--case-card-2);cursor:zoom-in;aspect-ratio:4 / 3;transition:border-color .2s ease,transform .2s ease}.work-case-gallery-item:after,.work-case-slide:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.58));opacity:0;transition:opacity .2s ease}.work-case-gallery-item:hover,.work-case-gallery-item:focus-visible{border-color:#3a3a3a;transform:translateY(-2px)}.work-case-gallery-item:hover:after,.work-case-gallery-item:focus-visible:after,.work-case-slide:hover:after{opacity:1}.work-case-gallery-item img,.work-case-slide img{width:100%;height:100%;object-fit:cover}.work-case-gallery-index,.work-case-gallery-caption,.work-case-slide-caption{position:absolute;z-index:1;color:var(--case-text);background:#0a0a0ab8;border:1px solid var(--case-border);border-radius:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.work-case-gallery-index{top:.75rem;left:.75rem;padding:.25rem .45rem;color:var(--case-muted);font-size:11px}.work-case-gallery-caption,.work-case-slide-caption{right:.75rem;bottom:.75rem;max-width:calc(100% - 1.5rem);padding:.35rem .55rem;font-size:12px;overflow-wrap:anywhere}.work-case-slider{position:relative;overflow:hidden}.work-case-slider:focus-visible{outline:1px solid var(--case-text);outline-offset:4px}.work-case-slider-track{display:flex;transition:transform .45s cubic-bezier(.22,.61,.36,1)}.work-case-slide{position:relative;flex:0 0 100%;aspect-ratio:16 / 9;background:var(--case-card-2)}.work-case-slider-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;border-top:1px solid var(--case-border);background:var(--case-bg-2)}.work-case-slider-info{min-width:0;color:#c8c8c8;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work-case-slider-controls,.work-case-slider-nav,.work-case-slider-dots,.work-case-quote-meta{display:flex;align-items:center}.work-case-slider-controls{flex:0 0 auto;gap:1rem}.work-case-slider-dots{gap:6px}.work-case-slider-dot{width:18px;height:4px;padding:0;border:0;border-radius:2px;background:#2a2a2a;cursor:pointer;transition:width .2s ease,background .2s ease}.work-case-slider-dot.is-active{width:28px;background:var(--case-text)}.work-case-slider-nav{gap:.4rem}.work-case-icon-button,.work-case-lightbox-close,.work-case-lightbox-nav{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--case-border);background:var(--case-card-2);color:var(--case-text);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.work-case-icon-button{width:30px;height:30px;border-radius:var(--case-radius)}.work-case-icon-button:hover,.work-case-icon-button:focus-visible,.work-case-lightbox-close:hover,.work-case-lightbox-close:focus-visible,.work-case-lightbox-nav:hover,.work-case-lightbox-nav:focus-visible{border-color:#333;background:#1e1e1e}.work-case-icon-button:hover,.work-case-icon-button:focus-visible{transform:translateY(-1px)}.work-case-stack-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}.work-case-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,11.5rem),1fr))}.work-case-metric{position:relative;overflow:hidden;min-height:9rem;padding:1.25rem}.work-case-metric:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.05),transparent 42%);opacity:0;transition:opacity .2s ease}.work-case-metric:hover:before{opacity:1}.work-case-metric-delta{position:absolute;top:.9rem;right:.9rem;color:var(--case-muted);font-size:10.5px;letter-spacing:0}.work-case-metric-delta.is-up{color:var(--case-green)}.work-case-metric-delta.is-down{color:var(--case-warm)}.work-case-metric-value{position:relative;display:flex;align-items:flex-end;gap:.15rem;margin:0 0 .5rem;font-size:clamp(2.15rem,3vw,2.45rem);font-weight:600;letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums}.work-case-metric-suffix{color:var(--case-muted);font-size:.56em}.work-case-metric p{position:relative;max-width:16rem;margin:0;color:var(--case-muted);font-size:12.5px;line-height:1.45}.work-case-quote{padding:clamp(1.5rem,3vw,2rem);background:linear-gradient(180deg,#121212,#0e0e0e)}.work-case-quote blockquote{max-width:60ch;margin:0 0 1.25rem;color:var(--case-text);font-size:clamp(1.2rem,1vw + 1rem,1.35rem);line-height:1.45;letter-spacing:0}.work-case-quote-meta{gap:.75rem;color:var(--case-muted);font-size:13px}.work-case-quote-meta strong,.work-case-next-card strong{display:block;margin:0 0 .25rem;color:var(--case-text);font-weight:600}.work-case-quote-meta span{color:var(--case-muted)}.work-case-quote-avatar{width:34px;height:34px;flex:0 0 auto;border-radius:999px;object-fit:cover}.work-case-quote-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--case-border-2);background:#222;color:var(--case-text);font-size:12px}.work-case-next{padding-top:3rem}.work-case-next-label{margin:0 0 .9rem;color:var(--case-muted-2);font-size:10.5px;letter-spacing:0;text-transform:uppercase}.work-case-next-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.35rem;transition:border-color .2s ease,background .2s ease,transform .2s ease}.work-case-next-card:hover,.work-case-next-card:focus-visible{border-color:#333;background:#181818;transform:translateY(-2px)}.work-case-next-card>span:last-child{color:var(--case-muted);font-size:1.35rem;line-height:1;transition:transform .2s ease}.work-case-next-card:hover>span:last-child,.work-case-next-card:focus-visible>span:last-child{transform:translate(3px)}.work-case-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,3vw,2rem);background:#050505e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.work-case-lightbox-frame{max-width:min(72rem,100%)}.work-case-lightbox-frame img{max-height:min(78vh,52rem);width:auto;border:1px solid var(--case-border);border-radius:var(--case-radius);object-fit:contain}.work-case-lightbox-caption{max-width:56rem;margin:.85rem auto 0;color:#c8c8c8;font-size:13px;text-align:center}.work-case-lightbox-close,.work-case-lightbox-nav{position:absolute;width:2.75rem;height:2.75rem;border-radius:999px}.work-case-lightbox-close{top:1.25rem;right:1.25rem;font-size:1.5rem}.work-case-lightbox-nav{top:50%;transform:translateY(-50%)}.work-case-lightbox-nav.is-prev{left:1.25rem}.work-case-lightbox-nav.is-next{right:1.25rem}.work-case-state{display:grid;gap:.75rem;padding:4rem 0 6rem}.work-case-state-kicker{margin:0;color:var(--case-muted);font-family:var(--case-font-mono);font-size:10.5px;letter-spacing:0;text-transform:uppercase}.work-case-state h1,.work-case-state p{margin:0}.work-case-reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay, 0ms)}.work-case-reveal.is-visible{opacity:1;transform:translateY(0)}@media (min-width: 700px){.work-case-problem-grid.has-side-panel{grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr);gap:1.75rem}.work-case-gallery-item:first-child:nth-last-child(n+3){grid-column:span 2;grid-row:span 2}}@media (min-width: 980px){.work-case-shell.has-toc{grid-template-columns:180px minmax(0,1fr);gap:4rem}.work-case-shell.has-toc .work-case-toc{position:sticky;top:calc(var(--case-nav-h) + 2rem);display:block;align-self:start}}@media (max-width: 760px){.work-case{padding-top:1.25rem}.work-case-slider-footer,.work-case-next-card{align-items:flex-start;flex-direction:column}.work-case-slider-controls{width:100%;justify-content:space-between}}@media (max-width: 640px){.work-case-metabar{grid-template-columns:repeat(2,minmax(0,1fr))}.work-case-metabar.is-count-1{grid-template-columns:1fr}}@media (max-width: 520px){.work-case-section-head{gap:.75rem}.work-case-metabar{grid-template-columns:1fr}.work-case-lightbox-nav{display:none}}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion: reduce){.work-case *,.work-case *:before,.work-case *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.work-case-reveal{opacity:1;transform:none}}.about{position:relative;padding-block:clamp(2.5rem,5vw,5rem)}.about-shell{display:block}.about-layout,.about-profile,.about-skills{opacity:0;animation:fadeInUp .55s ease-out forwards}.about-layout{animation-delay:.08s;display:grid;gap:2.25rem;align-items:start}.about-profile{animation-delay:.18s}.about-skills{animation-delay:.28s}.about-panel{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.about-profile{display:grid;gap:2rem;min-height:100%}.about-eyebrow,.skills-eyebrow{margin:0;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em}.about-profile-head{display:grid;gap:1.5rem;align-items:center}.about-avatar-shell{width:clamp(7.5rem,20vw,9.5rem);aspect-ratio:1;padding:.32rem;border-radius:50%;background:linear-gradient(145deg,#ffffff29,#ffffff0a)}.about-avatar-frame{width:100%;height:100%;overflow:hidden;border-radius:50%;border:1px solid var(--border);background:var(--panel)}.about-avatar{width:100%;height:100%;object-fit:cover}.about-profile-copy{display:grid;gap:.5rem;align-content:start}.about-name{margin:0;font-size:clamp(2.75rem,6vw,4.75rem);line-height:.95;letter-spacing:-.05em;font-weight:750}.about-position{margin:0;max-width:28rem;color:var(--muted-2);font-size:clamp(1.05rem,1vw + .9rem,1.35rem);line-height:1.5;letter-spacing:-.02em}.about-summary{margin:0;color:var(--muted-2);max-width:62ch;font-size:clamp(1rem,.55vw + .96rem,1.18rem);line-height:1.9}.about-skills{padding-top:1.75rem;border-top:1px solid var(--border)}.about-skills-head{display:grid;gap:.5rem;margin-bottom:1.1rem}.about-skills-title{margin:0;font-weight:600;font-size:clamp(1.25rem,.9vw + 1rem,1.75rem)}.stack-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.stack-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;border-top:1px solid var(--border)}.stack-item:first-child{border-top:0;padding-top:.35rem}.stack-item-main{display:flex;align-items:center;gap:.7rem;min-width:0}.stack-item-name{color:var(--text);font-size:var(--fz-base)}.stack-years{flex-shrink:0;color:var(--muted);background:transparent;border:0;padding:0;font-size:.86rem;letter-spacing:.01em}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8b8b8b}@media (min-width: 768px){.about-profile-head{grid-template-columns:auto minmax(0,1fr);gap:2rem}}@media (min-width: 960px){.about-layout{grid-template-columns:minmax(0,1.45fr) minmax(18rem,.8fr);gap:4rem}.about-skills{padding-top:0;padding-left:2.75rem;border-top:0;border-left:1px solid var(--border)}}@media (max-width: 639px){.stack-item{align-items:flex-start;flex-direction:column}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.contact{padding-block:clamp(2rem,5vw,4rem)}.container.narrow{max-width:768px;margin-inline:auto;padding-inline:1rem}.contact .section-title{text-align:center;margin-bottom:3rem;font-size:clamp(1.875rem,5vw,2.5rem);opacity:0;animation:fadeInUp .5s ease-out .1s forwards}@media (min-width: 768px){.container.narrow{padding-inline:0}}.form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;gap:1.5rem}@media (min-width: 768px){.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.field{position:relative}.form .field,.form .form-actions{opacity:0;animation:fadeInUp .5s ease-out forwards}.form .form-row{animation-delay:.2s}.form .form-row+.field{animation-delay:.3s}.form .form-actions{animation-delay:.4s}.input,.textarea{width:100%;background:transparent;color:var(--text);border:1px solid var(--border, #2a2a2a);border-radius:12px;padding:.9rem 1rem;font-size:1rem;outline:none;font:inherit;transition:border-color .2s}.input::placeholder,.textarea::placeholder{color:transparent}.input:focus,.textarea:focus{border-color:var(--border-strong, #6b7280)}.label{position:absolute;left:.75rem;top:-.7rem;background:var(--bg);padding:0 .25rem;font-size:.75rem;color:var(--muted, #a3a3a3);transition:transform .2s,color .2s,top .2s,font-size .2s;pointer-events:none}.input:placeholder-shown+.label,.textarea:placeholder-shown+.label{top:.85rem;left:1rem;font-size:1rem;color:var(--muted-2, #9ca3af)}.input:focus+.label,.textarea:focus+.label{top:-.7rem;left:.75rem;font-size:.75rem;color:var(--muted, #9ca3af)}.error-message{color:#ef4444;background-color:#f8717120;padding:.75rem 1rem;border-radius:8px;opacity:0;animation:fadeInUp .4s ease-out forwards}.form-actions{display:flex;justify-content:flex-start;padding-top:.5rem}@media (min-width: 768px){.form-actions{justify-content:flex-end}.form-actions .btn-primary{width:auto}}.success-message{text-align:center;padding:clamp(2rem,5vw,3rem);border:1px solid var(--border, #2a2a2a);border-radius:12px;opacity:0;animation:fadeInUp .5s ease-out .1s forwards}.success-message h3{font-size:clamp(1.25rem,5vw,1.5rem);margin:0 0 .5rem}.success-message p{color:var(--muted-2, #9ca3af);margin:0 0 1.5rem;max-width:45ch;margin-inline:auto}.btn-sendmore{display:inline-block;padding:.75rem 1.25rem;font-size:var(--fz-sm);border-radius:999px;transition:all .2s ease-in-out;text-decoration:none;border:1px solid transparent;-webkit-font-smoothing:antialiased;cursor:pointer}.btn-sendmore{border-color:var(--border, #2a2a2a);background:var(--white);color:var(--black, #9ca3af)}.btn-sendmore:hover{background:var(--border, #2a2a2a);border-color:var(--border, #2a2a2a);color:var(--text, #fff)}
