:root{--bg: #fcfcfa;--fg: #191917;--muted: #52524e;--faint: #8a8a85;--line: #e6e6e2}:root[data-theme=dark]{--bg: #0e0e10;--fg: #f5f4f1;--muted: #b8b7b0;--faint: #7c7b75;--line: #333336}*{box-sizing:border-box}*,*:before,*:after{transition:background-color .4s ease,color .4s ease,border-color .4s ease}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:Space Grotesk,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease;min-height:100vh}a{color:inherit}::selection{background:#e8e8e4}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.main{max-width:720px;margin:0 auto;padding:120px 32px 96px;display:flex;flex-direction:column;gap:88px}.rise{animation:rise .7s cubic-bezier(.22,1,.36,1) both}.rise--header{animation-delay:0s}.rise--experience{animation-delay:.12s}.rise--stack{animation-delay:.24s}.rise--education{animation-delay:.3s}.rise--footer{animation-delay:.36s}.header{display:flex;flex-direction:column;gap:20px}.header__row1{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.name{margin:0;font-size:36px;font-weight:700;letter-spacing:-.03em;line-height:1.1}.cursor{display:inline-block;width:14px;height:3px;background:var(--fg);margin-left:8px;vertical-align:baseline;animation:blink 1.2s step-end infinite}.controls{display:flex;align-items:center;gap:8px}.lang-switch{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.lang-btn{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;font-weight:600;letter-spacing:.06em;padding:5px 10px;border-radius:999px;border:none;background:none;color:var(--muted);text-decoration:none;cursor:pointer;line-height:1;display:inline-block;transition:background .25s,color .25s,transform .25s cubic-bezier(.22,1,.36,1)}.lang-btn:hover{transform:translateY(-1px);color:var(--fg)}.lang-btn:active{transform:scale(.92)}.lang-btn[aria-current=page]{background:var(--fg);color:var(--bg)}.lang-btn[aria-current=page]:hover{color:var(--bg)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:none;cursor:pointer;font-size:15px;color:var(--fg);line-height:1;transition:border-color .2s,background .2s,color .4s ease,transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s}.theme-toggle:hover{border-color:var(--muted);transform:translateY(-2px) rotate(15deg);box-shadow:0 3px 8px #00000014}.theme-toggle:active{transform:scale(.9)}.theme-icon{display:block;transform:rotate(0);transition:transform .5s cubic-bezier(.22,1,.36,1)}.theme-icon:before{content:"☾"}:root[data-theme=dark] .theme-icon{transform:rotate(360deg)}:root[data-theme=dark] .theme-icon:before{content:"☀"}.intro{margin:0;font-size:16px;line-height:1.75;color:var(--muted);max-width:560px;text-wrap:pretty}.social-row{display:flex;gap:24px;font-size:14px}.social-link{display:inline-flex;align-items:center;color:var(--fg);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;transition:text-decoration-color .25s,text-underline-offset .25s,color .4s ease}.social-link:hover{text-decoration-color:var(--fg);text-underline-offset:6px}.icon-reveal{display:inline-block;width:0;height:15px;margin-right:0;opacity:0;transform:scale(.4) rotate(-90deg);background-size:contain;background-repeat:no-repeat;background-position:center;transition:width .28s cubic-bezier(.22,1,.36,1),margin-right .28s cubic-bezier(.22,1,.36,1),opacity .2s,transform .28s cubic-bezier(.22,1,.36,1)}.social-link:hover .icon-reveal,.chip:hover .icon-reveal{width:15px;margin-right:7px;opacity:1;transform:scale(1) rotate(0)}.icon-github{background-image:url(/icons/social/github-light.svg)}:root[data-theme=dark] .icon-github{background-image:url(/icons/social/github-dark.svg)}.section{display:flex;flex-direction:column;gap:36px}.section-heading{margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.jobs{display:flex;flex-direction:column;gap:40px}.job{display:grid;grid-template-columns:132px 1fr;gap:20px;transition:transform .35s cubic-bezier(.22,1,.36,1)}.job:hover{transform:translate(6px)}.job__years{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;padding-top:4px;white-space:nowrap;letter-spacing:.02em;color:var(--muted);font-weight:500}.job__years--current{color:var(--fg);font-weight:700}.job__body{display:flex;flex-direction:column;gap:8px}.job__title{font-size:17px;font-weight:600;letter-spacing:-.01em}.job__company{color:var(--muted);font-weight:400;display:inline-flex;align-items:center;vertical-align:-2px}.job__logo{display:inline-block;width:0;height:18px;margin-right:0;opacity:0;border-radius:4px;background-color:#f4f4f2;filter:blur(4px) saturate(0);transform:scale(.2) rotate(-180deg) translateY(6px);background-size:contain;background-repeat:no-repeat;background-position:center;transition:width .4s cubic-bezier(.34,1.56,.64,1),margin-right .4s cubic-bezier(.34,1.56,.64,1),opacity .25s,filter .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}.job:hover .job__logo{width:18px;margin-right:8px;opacity:1;filter:blur(0) saturate(1);transform:scale(1) rotate(0) translateY(0)}.job__location{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;color:var(--faint);letter-spacing:.04em}.job__detail{margin:0;font-size:15px;line-height:1.75;color:var(--muted);text-wrap:pretty;max-width:540px}.job__tech-marquee{overflow:hidden;max-width:540px;margin-top:2px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%)}.job__tech-track{display:inline-flex;white-space:nowrap;gap:.6em;width:max-content;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;color:var(--faint);letter-spacing:.02em;animation:marquee 22s linear infinite}.job:hover .job__tech-track{animation-play-state:paused}.job__tech-static{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;color:var(--faint);letter-spacing:.02em;line-height:1.7;max-width:540px;overflow:hidden;max-height:0;opacity:0;transform:translateY(-4px);transition:max-height .35s cubic-bezier(.22,1,.36,1),opacity .3s,transform .35s cubic-bezier(.22,1,.36,1),color .4s ease}.job:hover .job__tech-static{max-height:60px;opacity:1;transform:translateY(0)}.skill-rows{display:flex;flex-direction:column;gap:18px}.skill-row{display:grid;grid-template-columns:132px 1fr;gap:20px;align-items:start}.skill-row__name{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--fg);padding-top:5px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;line-height:1;color:var(--muted);cursor:default;transform:translateY(0);transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s,color .25s}.chip:hover{border-color:var(--muted);color:var(--fg);transform:translateY(-2px)}.edu-rows{display:flex;flex-direction:column;gap:18px}.edu-row{display:grid;grid-template-columns:132px 1fr;gap:20px;align-items:baseline}.edu-row__years{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;font-weight:500;color:var(--muted);white-space:nowrap}.edu-row__text{font-size:15px;line-height:1.65}.edu-row__school{color:var(--muted)}.edu-row__lang-line{font-size:15px;line-height:1.65;color:var(--muted)}.footer{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-top:1px solid var(--line);padding-top:24px}.footer__item{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:var(--faint)}.footer__item--left{white-space:nowrap;flex-shrink:0}.footer__item--right{white-space:pre-line;text-align:right}@media (max-width: 640px){.main{padding:64px 20px 56px!important;gap:56px!important}.name{font-size:27px!important}.job,.skill-row,.edu-row{grid-template-columns:1fr!important}.job>div,.skill-row>div,.edu-row>div{min-width:0!important;max-width:100%!important}.job{gap:10px!important;transform:none!important}.skill-row{gap:8px!important}.edu-row{gap:10px!important}.job>div:first-child,.skill-row>div:first-child,.edu-row>div:first-child{padding-top:0!important;white-space:normal!important}.job__detail,.job__body>div{max-width:100%!important}.header__row1{flex-wrap:wrap;row-gap:14px}.footer{flex-direction:column!important;align-items:flex-start!important;gap:6px!important;padding-top:20px!important}.footer__item--right{text-align:left!important}}
