:root{--bg:#111;--surface:#171717;--surface-2:#1d1d1d;--text:#f4f4f2;--muted:#9b9b97;--quiet:#858581;--line:#f4f4f22b;--line-strong:#f4f4f26b;--sidebar:clamp(320px, 27vw, 380px);--pad:clamp(24px, 4vw, 64px);--radius-sm:3px;--radius-md:12px;--fast:.16s;--normal:.32s;--slow:.72s;--ease:cubic-bezier(.22, 1, .36, 1);--display:"Arial Narrow", "Helvetica Neue", Arial, sans-serif;--reflection-color:#ffffffd1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:auto;scroll-padding-top:20px}body{background:var(--bg);min-width:320px;color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--text);color:var(--bg)}::-webkit-scrollbar{background:var(--bg);width:5px}::-webkit-scrollbar-thumb{background:#555}:focus-visible{outline:2px solid var(--text);outline-offset:4px}.redirect-page{text-align:center;background:var(--bg);place-content:center;gap:18px;min-height:100dvh;padding:28px;display:grid}.redirect-page p{color:var(--muted);letter-spacing:.16em;margin:0;font-size:10px;font-weight:700}.redirect-page h1{max-width:720px;font:900 clamp(42px, 8vw, 92px)/.88 var(--display);letter-spacing:-.06em;text-transform:uppercase;margin:0 0 12px}.redirect-page a{border-bottom:1px solid var(--line-strong);color:var(--muted);transition:color var(--fast);justify-self:center;padding:7px 0;font-size:12px}.redirect-page a:hover{color:var(--text)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}[data-intro]{animation:intro-reveal .78s var(--ease) both}.profile-topline[data-intro]{animation-delay:30ms}.portrait-frame[data-intro]{animation-delay:.11s}.role[data-intro]{animation-delay:.19s}.identity h1[data-intro]{animation-delay:.27s}.intro[data-intro]{animation-delay:.36s}.stack-list[data-intro]{animation-delay:.44s}.section-nav[data-intro]{animation-delay:.52s}.resume-button[data-intro]{animation-delay:.6s}.wavy-text{vertical-align:bottom;max-width:100%;display:inline-block;position:relative}.wavy-word{white-space:nowrap;display:inline-block;position:relative}.wavy-character,.wavy-space{will-change:transform;display:inline-block}.wavy-text:after{content:attr(data-text);z-index:2;pointer-events:none;color:#0000;-webkit-text-stroke:0;background:linear-gradient(105deg, transparent 28%, var(--reflection-color) 47%, transparent 64%);opacity:0;animation:text-reflection 5.2s var(--ease) 1.1s infinite;background-position:160% 0;background-size:280% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.wavy-text:hover .wavy-character{animation:character-wave .72s var(--ease) both;animation-delay:calc(var(--character-index) * 24ms)}.wavy-text:hover:after{opacity:.9;animation-duration:1.1s}}.skip-link{z-index:100;background:var(--text);color:var(--bg);transition:transform var(--fast);padding:12px 16px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.scroll-progress{z-index:80;transform-origin:0;background:var(--text);height:2px;position:fixed;top:0;left:0;right:0}.interactive-background{z-index:0;width:var(--sidebar);pointer-events:none;opacity:.7;height:100dvh;position:fixed;top:0;left:0;overflow:hidden;-webkit-mask-image:linear-gradient(#000 45%,#0000 94%);mask-image:linear-gradient(#000 45%,#0000 94%)}.interactive-background:before{content:"";background:radial-gradient(circle at 50% 35%,#ffffff14,#0000 40%),linear-gradient(#ffffff09 1px,#0000 1px) 0 0/36px 36px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/36px 36px;position:absolute;inset:0}.interactive-background canvas{opacity:.8;width:100%;height:100%}.portfolio-shell{z-index:1;grid-template-columns:var(--sidebar) minmax(0, 1fr);display:grid;position:relative}.profile-rail{border-right:1px solid var(--line);background:#111111c2;min-width:0}.profile-inner{flex-direction:column;min-height:100dvh;padding:clamp(20px,3.1vh,34px) clamp(22px,2.6vw,38px);display:flex;position:sticky;top:0;container-type:inline-size}.profile-topline{color:var(--muted);letter-spacing:.18em;justify-content:space-between;align-items:center;gap:18px;margin-bottom:clamp(20px,3vh,36px);font-size:9px;font-weight:700;display:flex}.locale-switcher{border:1px solid var(--line);border-radius:999px;align-items:center;padding:3px;display:flex;position:relative}.locale-switcher a{width:38px;height:25px;color:var(--muted);border-radius:999px;place-items:center;font-size:9px;display:grid;position:relative}.locale-switcher a>span:last-child{z-index:1;position:relative}.locale-switcher a[aria-current=page]{color:var(--bg)}.locale-active{border-radius:inherit;background:var(--text);inset:0;z-index:0!important;position:absolute!important}.portrait-frame{aspect-ratio:1;border:1px solid var(--line-strong);background:var(--surface-2);align-self:flex-start;width:clamp(128px,13vw,180px);margin-bottom:clamp(22px,3vh,34px);position:relative;overflow:hidden}.portrait-frame:after{content:"";pointer-events:none;border:8px solid #1111112e;position:absolute;inset:0}.portrait-frame img{-o-object-fit:cover;object-fit:cover;filter:grayscale()contrast(1.06);width:100%;height:100%;transition:filter var(--slow) var(--ease), transform var(--slow) var(--ease)}.portrait-frame:hover img{filter:grayscale(.75)contrast(1.08);transform:scale(1.025)}.portrait-index{z-index:2;background:var(--bg);letter-spacing:.12em;padding:4px 6px;font-size:8px;position:absolute;bottom:7px;right:8px}.identity{position:relative}.role{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:700}.identity h1{max-width:100%;font:900 clamp(45px, 18cqi, 56px)/.76 var(--display);letter-spacing:-.07em;text-transform:uppercase;margin:0}.identity h1>.wavy-text{width:max-content;display:block}.identity h1 .outlined{color:#0000;-webkit-text-stroke:1px var(--text);text-shadow:6px 6px 18px #ffffff17}.intro{color:#c1c1bd;max-width:290px;margin:clamp(18px,2.4vh,26px) 0 0;font-size:12px;line-height:1.55}.stack-list{color:var(--quiet);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:6px 12px;margin:clamp(17px,2.5vh,28px) 0;padding:0;font-size:8px;font-weight:700;list-style:none;display:flex}.stack-list li:before{content:"·";color:var(--text);margin-right:6px}.section-nav{border-top:1px solid var(--line);margin-top:auto;display:grid}.section-nav a{border-bottom:1px solid var(--line);min-height:33px;color:var(--muted);letter-spacing:.13em;text-transform:uppercase;transition:color var(--fast), padding var(--normal) var(--ease);align-items:center;gap:12px;font-size:9px;display:flex}.section-nav a span{color:var(--quiet);font-variant-numeric:tabular-nums}.section-nav a:hover{color:var(--text);padding-left:7px}.resume-button{border:1px solid var(--line-strong);background:var(--text);min-height:52px;color:var(--bg);letter-spacing:.12em;text-transform:uppercase;transition:background var(--normal), color var(--normal), transform var(--normal) var(--ease);justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding:0 18px;font-size:10px;font-weight:800;display:flex}.resume-button:hover{color:var(--text);background:0 0;transform:translateY(-2px)}.resume-button span:last-child{transition:transform var(--normal) var(--ease);font-size:18px}.resume-button:hover span:last-child{transform:translate(3px,-3px)}.resume-mobile{display:none}.content{background:var(--bg);min-width:0}.section{min-height:min(760px,100dvh);padding:clamp(78px, 10vw, 150px) var(--pad);border-bottom:1px solid var(--line);position:relative}.section-header{grid-template-columns:38px minmax(0,1fr);align-items:start;gap:clamp(12px,2vw,30px);margin-bottom:clamp(48px,7vw,96px);display:grid;overflow:visible}.section-header>span{color:var(--quiet);letter-spacing:.14em;padding-top:8px;font-size:9px}.section-header h2{max-width:930px;font:900 clamp(43px, 7.5vw, 112px)/.9 var(--display);letter-spacing:-.07em;text-transform:uppercase;text-wrap:balance;margin:0;overflow:visible}.section-title-text{-moz-column-gap:.2em;isolation:isolate;max-width:100%;transition:filter var(--normal) var(--ease), letter-spacing var(--normal) var(--ease);flex-wrap:wrap;column-gap:.2em;margin:-.14em -.055em -.18em;padding:.14em .055em .18em;display:inline-flex;overflow:visible}.section-title-text .wavy-word{display:inline-flex;overflow:visible}.section-title-text .wavy-space{display:none}.section-title-text:after{content:"";z-index:-1;opacity:0;transform-origin:0;height:.12em;transition:opacity var(--normal), transform .7s var(--ease);background:currentColor;animation:none;inset:auto -.02em .1em;transform:scaleX(0)}.section-title-text .wavy-word:after{content:attr(data-word);z-index:2;pointer-events:none;color:#0000;background:linear-gradient(105deg, transparent 20%, var(--reflection-color) 45%, transparent 70%);opacity:0;background-position:150% 0;background-size:320% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.section-header h2:after{content:"";background:var(--text);width:min(180px,28vw);height:1px;margin-top:22px;display:block}.section-header p{max-width:460px;color:var(--muted);margin:24px 0 0;font-size:14px;line-height:1.55}.about-section{flex-direction:column;justify-content:center;min-height:100dvh;display:flex}.about-layout{grid-template-columns:minmax(0,1.35fr) minmax(210px,.65fr);gap:clamp(45px,9vw,130px);padding-left:clamp(50px,6vw,68px);display:grid}.about-copy p{letter-spacing:-.025em;max-width:710px;margin:0;font-size:clamp(19px,2.1vw,30px);line-height:1.42}.about-copy p+p{color:var(--muted);margin-top:25px}.profile-facts{margin:0}.profile-facts div{border-top:1px solid var(--line);padding:17px 0}.profile-facts div:last-child{border-bottom:1px solid var(--line)}.profile-facts dt{color:var(--quiet);letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px;font-size:9px}.profile-facts dd{color:#cececa;margin:0;font-size:12px;line-height:1.7}.profile-facts a{border-bottom:1px solid var(--line-strong)}.scroll-cue{right:var(--pad);color:var(--quiet);letter-spacing:.13em;text-transform:uppercase;writing-mode:vertical-rl;font-size:8px;position:absolute;bottom:28px}.experience-section{min-height:0}.experience-list{margin-left:clamp(18px,3vw,40px);position:relative}.timeline-line{background:var(--text);transform-origin:top;width:1px;position:absolute;top:0;bottom:0;left:7px}.experience-card{grid-template-columns:48px minmax(150px,.6fr) minmax(260px,1.25fr);gap:clamp(18px,3vw,45px);padding:0 0 clamp(70px,9vw,120px);display:grid;position:relative}.experience-card:last-child{padding-bottom:0}.experience-card:before{content:"";border:2px solid var(--text);background:var(--bg);width:7px;height:7px;box-shadow:0 0 0 7px var(--bg);transition:background var(--normal), box-shadow var(--normal);border-radius:50%;position:absolute;top:1px;left:3px}.experience-card:hover:before{background:var(--text);box-shadow:0 0 0 7px var(--bg), 0 0 24px #ffffff59}.experience-number{color:var(--quiet);padding-left:28px;font-size:9px}.experience-meta time{color:var(--muted);letter-spacing:.12em;font-size:9px}.experience-meta h3{font:800 clamp(26px, 3vw, 42px)/.95 var(--display);letter-spacing:-.045em;text-transform:uppercase;margin:17px 0 6px}.experience-meta p{color:var(--muted);margin:0;font-size:12px}.experience-card ul{color:#c1c1bd;margin:0;padding:0;font-size:13px;line-height:1.55;list-style:none}.experience-card li{padding:0 0 13px 19px;position:relative}.experience-card li:before{content:"—";color:var(--quiet);position:absolute;left:0}.language-section{background:var(--surface);min-height:0}.language-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-left:clamp(50px,6vw,68px);display:grid}.language-grid p{background:var(--surface);min-height:190px;font:800 clamp(20px, 2.5vw, 34px)/1.1 var(--display);letter-spacing:-.03em;text-transform:uppercase;align-content:space-between;margin:0;padding:clamp(24px,4vw,48px);display:grid}.language-grid p>span{color:var(--quiet);letter-spacing:.15em;font:700 10px/1 Arial}.language-grid a{border-bottom:1px solid var(--line-strong);color:var(--muted);letter-spacing:.1em;justify-self:start;font:700 9px/1.7 Arial}.skills-section{min-height:0}.skills-chart{border-top:1px solid var(--line);margin-left:clamp(50px,6vw,68px)}.skill-row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:88px;color:var(--text);text-align:left;cursor:default;background:0 0;grid-template-columns:minmax(160px,.55fr) minmax(230px,1fr);align-items:center;gap:30px;padding:16px 0;display:grid;position:relative;overflow:hidden}.skill-heading{justify-content:space-between;align-items:baseline;gap:15px;display:flex}.skill-heading strong{font:800 clamp(17px, 2vw, 26px)/1 var(--display);letter-spacing:-.025em;text-transform:uppercase}.skill-heading>span{color:var(--quiet);text-transform:uppercase;flex:none;font-size:9px}.skill-track{border:1px solid var(--line);background-image:linear-gradient(90deg, transparent calc(25% - 1px), var(--line) 25%, transparent calc(25% + 1px), transparent calc(50% - 1px), var(--line) 50%, transparent calc(50% + 1px), transparent calc(75% - 1px), var(--line) 75%, transparent calc(75% + 1px));height:28px;position:relative;overflow:hidden}.skill-fill{width:var(--skill-width);background:var(--text);transition:width 1s var(--ease), background var(--normal);position:absolute;inset:0 auto 0 0}.skill-value{z-index:1;color:var(--muted);mix-blend-mode:difference;font-size:9px;position:absolute;top:8px;right:8px}.skill-detail{color:var(--quiet);letter-spacing:.08em;opacity:0;text-transform:uppercase;transition:opacity var(--normal), transform var(--normal);font-size:8px;position:absolute;bottom:2px;right:0;transform:translateY(4px)}.skill-row:hover .skill-fill,.skill-row:focus-visible .skill-fill{background:#c9c9c5}.skill-row:hover .skill-detail,.skill-row:focus-visible .skill-detail{opacity:1;transform:translateY(0)}.contact-section{--reflection-color:#111111c7;background:var(--text);min-height:100dvh;color:var(--bg);flex-direction:column;justify-content:center;display:flex}.contact-section .section-header>span,.contact-section .section-header p{color:#666}.contact-section .section-header h2:after{background:var(--bg)}.contact-list{border-top:1px solid #11111140;margin-left:clamp(50px,6vw,68px)}.contact-list a{min-height:80px;transition:padding var(--normal) var(--ease), background var(--normal);border-bottom:1px solid #11111140;grid-template-columns:minmax(90px,.3fr) 1fr 30px;align-items:center;gap:20px;display:grid}.contact-list a>span{color:#676764;letter-spacing:.13em;text-transform:uppercase;font-size:9px}.contact-list strong{overflow-wrap:anywhere;min-width:0;font:800 clamp(18px, 2.4vw, 34px)/1 var(--display);letter-spacing:-.035em}.contact-list i{transition:transform var(--normal) var(--ease);font-size:20px;font-style:normal}.contact-list a:hover{background:#1111110d;padding:0 14px}.contact-list a:hover i{transform:translate(4px,-4px)}.contact-section :focus-visible{outline-color:var(--bg)}.site-footer{min-height:90px;padding:20px var(--pad);color:var(--quiet);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:25px;font-size:8px;display:flex}@keyframes intro-reveal{0%{opacity:0;filter:blur(5px);transform:translateY(22px)}to{opacity:1;filter:blur();transform:none}}@keyframes reveal-up{0%{opacity:0;filter:blur(6px);transform:translateY(30px)}to{opacity:1;filter:blur();transform:none}}@keyframes reveal-left{0%{opacity:0;filter:blur(5px);transform:translate(-30px)}to{opacity:1;filter:blur();transform:none}}@keyframes reveal-right{0%{opacity:0;filter:blur(5px);transform:translate(30px)}to{opacity:1;filter:blur();transform:none}}@keyframes reveal-scale{0%{opacity:0;filter:blur(5px);transform:scale(.94)}to{opacity:1;filter:blur();transform:none}}@keyframes reveal-title{0%{opacity:0;filter:blur(5px);transform:translateY(.32em)scaleY(.94)}to{opacity:1;filter:blur();transform:none}}@keyframes character-wave{0%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-.12em)rotate(-1.4deg)}68%{transform:translateY(.055em)rotate(.8deg)}}@keyframes section-title-wave{0%,to{transform:translate(0,0)rotate(0)scale(1)}24%{transform:translateY(-.16em)rotate(-1.8deg)scaleY(1.035)}52%{transform:translateY(.045em)rotate(1deg)scaleY(.985)}76%{transform:translateY(-.035em)rotate(-.35deg)scale(1.01)}}@keyframes word-reflection{0%{opacity:0;background-position:150% 0}22%{opacity:.95}72%,to{opacity:0;background-position:-90% 0}}@keyframes text-reflection{0%,68%{opacity:0;background-position:160% 0}74%{opacity:.82}92%,to{opacity:0;background-position:-80% 0}}@supports (animation-timeline:view()){[data-reveal]{animation:linear both reveal-up;animation-timeline:view();animation-range:entry 2% entry 34%}[data-reveal=left]{animation-name:reveal-left}[data-reveal=right]{animation-name:reveal-right}[data-reveal=scale]{animation-name:reveal-scale}[data-reveal=title]{animation-name:reveal-title;animation-range:entry entry 30%}}@media (hover:hover) and (pointer:fine){.section-title-text:hover{filter:drop-shadow(0 .1em .22em #ffffff24);letter-spacing:-.055em}.contact-section .section-title-text:hover{filter:drop-shadow(0 .1em .2em #1111112e)}.section-title-text:hover:after{opacity:.1;transform:scaleX(1)}.section-title-text:hover .wavy-character{animation:.9s cubic-bezier(.2,.8,.2,1) both section-title-wave;animation-delay:calc(var(--character-index) * 34ms)}.section-title-text:hover .wavy-word:after{animation:word-reflection 1.05s var(--ease) both}.section-title-text:hover .wavy-word:nth-child(2):after{animation-delay:.12s}.section-title-text:hover .wavy-word:nth-child(3):after{animation-delay:.24s}}@media (max-height:780px) and (min-width:901px){.profile-inner{padding-top:18px;padding-bottom:18px}.profile-topline{margin-bottom:18px}.portrait-frame{width:112px;margin-bottom:18px}.identity h1{font-size:47px}.intro{margin-top:14px}.stack-list{margin:14px 0}.section-nav a{min-height:28px}.resume-button{min-height:45px}}@media (max-width:1100px){:root{--sidebar:320px}.experience-card{grid-template-columns:35px minmax(0,1fr)}.experience-card ul{grid-column:2}}@media (max-width:900px){.interactive-background{opacity:.45;width:100%;height:720px;position:absolute}.portfolio-shell{display:block}.profile-rail{border-right:0;border-bottom:1px solid var(--line)}.profile-inner{min-height:100dvh;padding:24px var(--pad) 55px;position:relative}.portrait-frame{width:clamp(140px,25vw,190px);margin-top:clamp(35px,8vh,80px)}.identity h1{font-size:clamp(68px,12.5vw,112px)}.identity{max-width:700px}.intro{max-width:440px;font-size:14px}.stack-list{max-width:650px}.section-nav{border:0;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.section-nav a{border-top:1px solid var(--line)}.resume-desktop{width:min(100%,320px)}.section{min-height:0}.about-section,.contact-section{min-height:760px}}@media (max-width:680px){:root{--pad:22px}.interactive-background{display:none}.profile-inner{min-height:100dvh}.profile-topline{margin-bottom:16px}.portrait-frame{width:138px;margin-top:28px}.identity h1{font-size:clamp(52px,16cqi,68px);line-height:.76}.role{margin-bottom:11px}.stack-list{line-height:1.65}.section-nav{grid-template-columns:1fr 1fr}.resume-desktop{display:none}.resume-mobile{background:var(--bg);color:var(--text);margin:46px 0 0;display:flex}.section{padding-top:78px;padding-bottom:78px}.section-header{grid-template-columns:25px minmax(0,1fr);gap:8px;margin-bottom:52px}.section-header h2{font-size:clamp(41px,13vw,65px)}.section-header>span{padding-top:4px}.section-header p{margin-top:18px;font-size:13px}.about-section{min-height:0}.about-layout{grid-template-columns:1fr;gap:42px;padding-left:33px}.about-copy p{font-size:19px}.scroll-cue{display:none}.experience-list{margin-left:0}.experience-card{grid-template-columns:32px minmax(0,1fr);gap:11px;padding-bottom:75px}.experience-number{padding-left:23px}.experience-card ul{grid-column:2;font-size:12px}.experience-meta h3{font-size:30px}.language-grid{grid-template-columns:1fr;margin-left:33px}.language-grid p{min-height:155px}.skills-chart{margin-left:33px}.skill-row{grid-template-columns:1fr;gap:12px;min-height:104px;padding:17px 0 23px}.skill-heading{align-items:center}.skill-track{height:24px}.skill-detail{bottom:5px}.contact-section{min-height:100dvh}.contact-list{margin-left:33px}.contact-list a{grid-template-columns:1fr 22px;align-content:center;gap:8px;min-height:92px}.contact-list a>span{grid-column:1/-1;align-self:end}.contact-list strong{font-size:clamp(18px,5.8vw,28px)}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;line-height:1.6}}@media (hover:none){.skill-detail{opacity:1;transform:none}}@media (prefers-contrast:more){:root{--muted:#c9c9c5;--quiet:#b5b5b0;--line:#f4f4f26b;--line-strong:#f4f4f2b8}.outlined{text-shadow:none!important}}@media (forced-colors:active){.locale-active,.skill-fill,.timeline-line{background:canvastext}.identity h1 .outlined{color:canvastext;-webkit-text-stroke:0}.scroll-progress,.interactive-background{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.interactive-background,.scroll-progress{display:none}.skill-fill{transition:none}.wavy-text:after{display:none}[data-intro],[data-reveal]{opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}}
