:root{--bg:#18171b;--ink:#eeeae6;--muted:#aeaab4;--line:#eeeae62b;--ac:#8b5cf6;--ac2:#a78bfa;--btn:#7c3aed;--soft:#222027;--dark:#121115;--hh:64px;--brand:#8b5cf6;--brand-ink:#0a0612;--ph-a:#2b2832;--ph-b:#26232c;--ph-ink:#a09aa8;--sans:var(--font-dm-sans),"DM Sans",system-ui,sans-serif;--serif:var(--font-instrument-serif),"Instrument Serif",Georgia,serif;--mono:var(--font-jetbrains-mono),"JetBrains Mono",ui-monospace,monospace;color-scheme:dark}[data-theme=light]{--bg:#f3f0ea;--ink:#24222a;--muted:#5b5763;--line:#24222a29;--ac:#6d28d9;--ac2:#7c3aed;--btn:#6d28d9;--soft:#e8e3f0;--dark:#1b1820;--ph-a:#ddd6e8;--ph-b:#d5cde2;--ph-ink:#5b5763;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 16px)}body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}a{color:inherit;text-decoration:none}img{max-width:100%}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ac2);outline-offset:3px}::selection{background:var(--btn);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:-60px;z-index:300;background:var(--btn);color:#fff;padding:10px 14px;font-size:12px;font-weight:700;transition:top .2s}.skip:focus{top:12px}.site-main:focus{outline:none}.c{max-width:1440px;margin:0 auto;width:100%;padding:0 clamp(1.25rem,3vw,2.5rem)}.eb{display:block;font-size:11px;text-transform:uppercase;line-height:1.7;letter-spacing:1.7px;color:var(--muted)}.mono{font-family:var(--mono)}.serif{font-family:var(--serif);font-style:italic;font-weight:400}.acc{color:var(--ac2)}.sec{padding:100px 0;border-top:1px solid var(--line)}.soft{background:var(--soft)}h2.t{margin:20px 0 24px;font-size:clamp(34px,4.8vw,72px);font-weight:500;line-height:1.08;letter-spacing:-.055em}p.d{max-width:460px;font-size:15px;line-height:1.8;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:16px;background:var(--btn);color:#fff;padding:18px 22px;font-size:12px;font-weight:700;line-height:1;transition:transform .3s;border:0;cursor:pointer}.btn:hover{transform:translateY(-4px)}.ul{display:inline-flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;transition:border-color .3s}.ul:hover{border-color:var(--ac2)}.rv{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.no-js .rv,.rv.in{opacity:1;transform:none}@keyframes enter{0%{opacity:.01;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes titleIn{0%{transform:translateY(110%) rotate(3deg)}to{transform:none}}@keyframes pulse{50%{box-shadow:0 0 0 7px #8b5cf60a}}@keyframes bob{50%{transform:translateY(5px)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes blink{50%{opacity:0}}@keyframes drift{to{transform:translate3d(24px,-18px,0) scale(1.08)}}@keyframes arrow{50%{transform:translate3d(8px,-8px,0)}}@keyframes ring{0%{opacity:1}to{transform:translate(-50%,-50%) scale(1.4);opacity:0}}@keyframes dialogIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}.enter{animation:enter .9s cubic-bezier(.16,1,.3,1) both}.site-header{position:fixed;inset:0 0 auto 0;z-index:120;height:var(--hh);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,#0000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.hd{display:flex;align-items:center;justify-content:space-between;gap:18px;height:100%;padding:0 clamp(1.25rem,2.8vw,2.25rem)}.logo{font-weight:700;font-size:17px;letter-spacing:-.04em;white-space:nowrap}.logo .caret{display:inline-block;width:7px;height:15px;background:var(--ac);vertical-align:-2px;margin-left:3px;animation:blink 1.1s steps(1) infinite}.nav{display:flex;gap:16px;font-size:12px}.nav a{position:relative;padding:8px 0}.nav a:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s}.nav a:hover:after{transform:scaleX(1);transform-origin:left}.nav a[aria-current=page]{color:var(--ac2)}.search{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;width:300px;font-size:12px;color:var(--muted);background:#0000;cursor:pointer;text-align:left;transition:border-color .3s}.search:hover{border-color:var(--ac2)}.search kbd{margin-left:auto;font-family:var(--mono);font-size:10px;border:1px solid var(--line);padding:2px 5px}.right{display:flex;align-items:center;gap:16px;font-size:12px;white-space:nowrap}.talk{border-bottom:1px solid var(--ink);padding-bottom:3px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;background:none;border:0;cursor:pointer;font-size:14px;line-height:1}.lsw{position:relative}.lsw summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;height:28px}.lsw summary::-webkit-details-marker{display:none}.lsw ul{list-style:none;position:absolute;right:0;top:calc(100% + 8px);min-width:140px;background:var(--bg);border:1px solid var(--line);padding:6px;z-index:5;box-shadow:0 18px 40px #0005}.lsw li a{display:block;padding:8px 10px;font-size:12px}.lsw li a:hover,.lsw li a[aria-current=true]{background:var(--soft);color:var(--ac2)}.menu-btn,.mnav{display:none}#prog{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--ac);transform-origin:left;transform:scaleX(0)}.site-main{padding-top:var(--hh)}.sd-backdrop{position:fixed;inset:0;z-index:200;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.sd{width:100%;max-width:620px;background:var(--bg);border:1px solid var(--line);box-shadow:0 30px 80px #0008;animation:dialogIn .25s ease-out both}.sd-top{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.sd-top input{flex:1 1;min-width:0;background:#0000;border:0;outline:0;color:var(--ink);font:inherit;font-size:15px}.sd-foot kbd,.sd-top kbd{font-family:var(--mono);font-size:10px;border:1px solid var(--line);padding:2px 5px;color:var(--muted)}.sd-list{list-style:none;max-height:min(55vh,440px);overflow-y:auto}.sd-list a{display:flex;flex-direction:column;gap:4px;padding:14px 18px;border-bottom:1px solid var(--line);transition:background .2s}.sd-list a:hover{background:var(--soft)}.sd-list a:focus-visible,.sd-list a[aria-selected=true]{background:var(--soft);outline:0;box-shadow:inset 3px 0 0 var(--ac2)}.sd-list small{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ac2)}.sd-list b{font-weight:500;font-size:15px}.sd-list span{font-size:12px;color:var(--muted)}.sd-empty{padding:28px 18px;font-size:13px;color:var(--muted)}.sd-foot{display:flex;justify-content:space-between;padding:10px 18px;font-size:11px;color:var(--muted)}.hero{padding-top:38px}.htop{display:flex;justify-content:space-between;gap:20px}.htop .dot{display:flex;align-items:center;gap:9px;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.htop i{width:6px;height:6px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 4px #8b5cf61f;animation:pulse 3s ease-in-out infinite}.hgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:5vw;align-items:center;padding:64px 0}.hero h1{font-size:clamp(48px,5.8vw,92px);line-height:1.02;letter-spacing:-.06em;font-weight:500}.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.hero h1 .ln>span{display:block;animation:titleIn 1.1s cubic-bezier(.16,1,.3,1) both}.hero h1 .ln:nth-child(2)>span{animation-delay:.12s}.hero h1 .ln:nth-child(3)>span{animation-delay:.24s}.hero h1 .serif{letter-spacing:-.03em;color:var(--ac2)}.hdesc{margin:28px 0;max-width:395px;font-size:15px;line-height:1.7;color:var(--muted);animation-delay:.35s}.hbtns{display:flex;flex-wrap:wrap;align-items:center;gap:25px;animation-delay:.45s}figure.pw{width:100%;max-width:370px;justify-self:end;animation-delay:.25s;perspective:900px}.pf{position:relative;aspect-ratio:4/5;background:var(--soft);transform:rotateY(var(--tx,0deg)) rotateX(var(--ty,0deg)) rotate(3deg);transition:transform .5s ease-out}.pf img{width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:grayscale(1);transition:filter .65s}.pw:hover .pf img{filter:none}.pf-ph{position:absolute;inset:0;background:repeating-linear-gradient(45deg,var(--ph-a) 0 10px,var(--ph-b) 10px 20px)}.avatar-ph{display:inline-flex;flex:none;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--soft);border:1px solid var(--line);font-size:14px;color:var(--muted)}.avatar-ph,.pf .tag{font-family:var(--mono)}.pf .tag{position:absolute;left:16px;top:15px;z-index:1;font-size:10px;color:#fff;mix-blend-mode:difference}.pf .grad{position:absolute;inset:0;background:linear-gradient(180deg,#0000 55%,#111b);pointer-events:none}.pf .nm{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:flex;flex-direction:column;gap:4px;font-size:17px;color:#fff}.pf .nm small{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.8}figcaption.cap{margin-top:24px;font-size:11px;letter-spacing:.3px}.hfoot,figcaption.cap{display:flex;justify-content:space-between;color:var(--muted)}.hfoot{align-items:center;gap:20px;border-top:1px solid var(--line);padding:24px 0;font-size:10px;text-transform:uppercase;letter-spacing:1px}.hfoot a span{display:inline-block;margin-left:15px;animation:bob 2s ease-in-out infinite}.ch{padding:32px 0 44px}.ch .eb{text-align:center;font-size:10px;margin-bottom:25px}.logos{flex-wrap:wrap;justify-content:center;gap:clamp(22px,4vw,52px)}.logos,.logos span{display:flex;align-items:center}.logos span{gap:10px;font-weight:700;font-size:17px;letter-spacing:-.03em;opacity:.55;filter:grayscale(1);transition:.3s}.logos span:hover{opacity:1;filter:none}[data-theme=light] .logos span{opacity:.75}.logos img{height:22px;width:22px;border-radius:4px;object-fit:contain}.band{margin:25px 0 40px;overflow:hidden;background:var(--brand);color:var(--brand-ink);padding:25px 0 34px;transform:rotate(-2deg) scale(1.015)}.band .tr{display:flex;width:max-content;animation:marquee 36s linear infinite}.band:hover .tr,.fm:hover .tr,.site-footer:focus-within .fm .tr{animation-play-state:paused}.band .tr>span{flex-shrink:0;white-space:nowrap;font-size:clamp(50px,8vw,120px);font-weight:500;line-height:1;letter-spacing:-.06em}.band i{font-style:normal;padding:0 .4em;font-size:.55em;vertical-align:middle}.band em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.03em}.wib{display:grid;grid-template-columns:minmax(80px,.7fr) minmax(0,2.4fr);gap:6vw;align-items:start;border-top:0}.big01{display:block;font-size:clamp(88px,14vw,210px);font-weight:500;line-height:.75;letter-spacing:-.08em;color:color-mix(in srgb,var(--ink) 8%,#0000);-webkit-user-select:none;user-select:none}.wib h2{margin-top:28px;display:flex;flex-direction:column;gap:.12em;font-size:clamp(40px,5.4vw,82px);font-weight:400;line-height:1.05;letter-spacing:-.05em;max-width:16ch}.wib h2 em{font-family:var(--serif);font-size:1.05em;font-style:italic;color:var(--ac2);letter-spacing:-.03em}.wib .row{margin-top:42px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;border-top:1px solid var(--line);padding-top:32px}.wib .row p{max-width:520px;font-size:16px;line-height:1.8;color:var(--muted)}.pr{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.pr span{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:18px;font-size:18px;letter-spacing:-.4px}.pr small{font-family:var(--mono);font-size:10px;line-height:1;letter-spacing:.12em;color:var(--ac2)}.jobs{flex-direction:column}.job,.jobs{width:100%;display:flex}.job{gap:24px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line)}.job:last-child{border-bottom:0}.job img{width:48px;height:48px;border-radius:4px;background:#fff;padding:5px;object-fit:contain;filter:grayscale(1);transition:filter .3s;flex-shrink:0}.job:hover img{filter:none}.job .m{flex:1 1;min-width:0;display:flex;flex-direction:column}.job .r{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.job h3{font-size:20px;font-weight:500;letter-spacing:-.5px}.job p{font-size:14px;margin-top:2px}.job .s,.job p{color:var(--muted)}.job .s{font-size:12px;margin-top:8px}.job time{font-size:14px;color:var(--muted);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fit{margin-top:48px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-top:1px solid var(--line);padding-top:36px}.fit h3{font-size:23px;font-weight:400;letter-spacing:-.6px}.fit p{margin-top:8px;max-width:420px;font-size:14px;line-height:1.6;color:var(--muted)}.fit .b{display:flex;flex-wrap:wrap;align-items:center;gap:25px;flex-shrink:0}.wb{--ink:#eeeae6;--muted:#aeaab4;--line:#eeeae62b;--ac:#8b5cf6;--ac2:#a78bfa;--btn:#7c3aed;margin-top:10px;border:1px solid var(--line);background:var(--dark);color:var(--ink)}.wbt{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}.wbt i{width:10px;height:10px;border-radius:50%;background:#2e2b33}.wbt .st{margin-left:auto;color:#fbbf24;font-size:10px;letter-spacing:.12em}.wbf,.wbt .st{font-family:var(--mono)}.wbf{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:14px 16px;font-size:11px;color:var(--muted)}.meter{flex:1 1;max-width:340px;height:3px;background:#2a2730;overflow:hidden}.meter div{height:100%;width:0;background:linear-gradient(90deg,var(--ac),#f0abfc);transition:width .6s}.hiw-head{display:grid;grid-template-columns:1.5fr 1fr;gap:8vw;align-items:end;margin-bottom:60px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 20px}.steps article{position:relative;border-top:1px solid var(--line);padding:30px 24px 15px 0}.steps article:before{content:"";position:absolute;top:-4px;left:0;width:8px;height:8px;background:var(--ac);transform:rotate(45deg)}.steps .n{font-family:var(--mono);font-size:11px;color:var(--muted)}.steps h3{margin:24px 0 15px;font-size:25px;font-weight:400;letter-spacing:-.8px}.steps p{max-width:260px;font-size:14px;line-height:1.8;color:var(--muted)}.steps small{display:block;margin-top:25px;font-family:var(--mono);font-size:10px;color:var(--ac2)}.tog{--ink:#eeeae6;--muted:#aeaab4;--line:#eeeae62b;--ac:#8b5cf6;--ac2:#a78bfa;--btn:#7c3aed;background:var(--dark);color:var(--ink)}.tog .cols{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #eeeae633}.tog article{padding-top:38px}.tog article:first-child{padding-right:44px}.tog article+article{border-left:1px solid #eeeae633;padding-left:44px}.tog .lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:1px;opacity:.65}.tog h3{margin:40px 0 18px;font-size:clamp(24px,3vw,42px);font-weight:500;letter-spacing:-1.3px}.tog p{max-width:380px;font-size:15px;line-height:1.8;color:var(--muted)}.tog ul{list-style:none;margin:32px 0}.tog li{border-top:1px solid #eeeae633;padding:14px 0;font-size:14px}.tog li:before{content:"↗";margin-right:12px;opacity:.7}.tog .ul{border-color:#eeeae655}.bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:20px}.bc{position:relative;display:block;overflow:hidden;border:1px solid var(--line);background:var(--soft);border-radius:2px;transition:transform .3s}.bc:hover{transform:scale(1.02)}.bc.big{grid-column:span 2;grid-row:span 2}.bc .cover{position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,#3b2a66,#1a1820 60%);filter:saturate(.6);transition:transform .7s,filter .7s}.bc:hover .cover{transform:scale(1.05);filter:none}.bc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.6);transition:transform .7s,filter .7s}.bc:hover img{transform:scale(1.05);filter:none}.bc .tag{top:18px;left:18px;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;background:#0009;border:1px solid #ffffff22;padding:4px 8px;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bc .tag,.bc .tx{position:absolute}.bc .tx{z-index:1;left:0;right:0;bottom:0;padding:32px;background:linear-gradient(180deg,#0000,#000b 50%,#000);display:flex;flex-direction:column;gap:8px}.bc time{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffffffdd}.bc h3{font-size:20px;font-weight:500;line-height:1.3;color:#fff}.bc p{font-size:13px;color:#fffc}.bc.soon{cursor:default}.bc.soon:hover{transform:none}.c2{grid-column:span 2}.r2{grid-row:span 2}.bhero{position:relative;padding:80px 0 75px}.bhero h1{margin:20px 0 24px;max-width:1000px;font-size:clamp(44px,6.5vw,100px);font-weight:500;line-height:1.08;letter-spacing:-.055em}.bar{justify-content:space-between;gap:25px;margin-bottom:35px}.bar,.sbox{display:flex;align-items:center}.sbox{gap:12px;width:350px;max-width:100%;border-bottom:1px solid var(--line);padding:15px 0;transition:border-color .3s}.sbox:focus-within{border-color:var(--ac2);box-shadow:0 1px 0 0 var(--ac2)}.sbox input{flex:1 1;min-width:0;background:#0000;border:0;outline:0;color:var(--ink);font-size:13px;font-family:inherit}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.chips button{background:none;border:1px solid var(--line);color:var(--muted);padding:6px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.chips button:hover{border-color:var(--ac2);color:var(--ink)}.chips button.on,.chips button[aria-pressed=true]{background:var(--btn);border-color:var(--btn);color:#fff}.empty{padding:60px 0;color:var(--muted)}.skills{max-width:56rem;margin:64px 0 4px;display:grid;grid-template-columns:1fr 1fr;gap:48px}.skills h3{display:flex;align-items:center;gap:8px;padding:0;margin-bottom:16px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.skills h3 i{font-style:normal;color:var(--ac2)}.skills .chips{margin-bottom:0}.chips span{border:1px solid color-mix(in srgb,var(--ink) 10%,#0000);background:#8b5cf61f;border-radius:999px;padding:4px 12px;font-size:14px;transition:background .2s;cursor:default}.chips span:hover{background:#8b5cf655}.rw{max-width:1440px;margin:0 auto;padding:60px clamp(1.25rem,3vw,2.5rem) 100px}.back{display:inline-flex;gap:10px;font-size:12px;color:var(--muted);margin-bottom:40px}.back:hover{color:var(--ink)}.rh{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:36px;border-bottom:1px solid var(--line)}.rh .who{display:flex;gap:22px;align-items:center}.rh img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:center 22%;filter:grayscale(1);transition:filter .5s}.rh img:hover{filter:none}.rh h1{font-size:clamp(36px,4.5vw,56px);font-weight:500;letter-spacing:-.05em;line-height:1}.rh .sub{margin-top:10px;font-size:15px;color:var(--muted)}.rh .exp{text-align:right}.rh .exp small{display:block;margin-top:10px;font-size:11px;color:var(--muted);max-width:220px;line-height:1.5;margin-left:auto}.lang{display:inline-flex;border:1px solid var(--line);margin-bottom:12px;font-family:var(--mono);font-size:10px}.lang a,.lang span{padding:8px 12px}.lang .on{background:var(--ink);color:var(--bg)}.cards{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.cards>*{padding:20px 0;min-width:0}.cards>*+*{border-left:1px solid var(--line);padding-left:22px}.cards small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.cards b{display:block;margin-top:6px;font-weight:500;font-size:14px;overflow-wrap:anywhere}.rs{padding:44px 0;border-bottom:1px solid var(--line)}.rs>h2{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ac2);font-weight:400;margin-bottom:22px}.rs p.sum{font-size:17px;line-height:1.75;color:color-mix(in srgb,var(--ink) 88%,var(--bg));max-width:980px}.rs p.sum+p.sum{margin-top:16px}.sk{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sk>div{border:1px solid var(--line);padding:20px;transition:border-color .3s}.sk>div:hover{border-color:#4b3b7a}.sk h3{font-size:16px;font-weight:500;margin-bottom:8px}.sk p{font-size:14px;line-height:1.7;color:var(--muted)}.xp{padding:26px 0;border-top:1px solid var(--line)}.xp:first-of-type{border-top:0;padding-top:0}.xp .t{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.xp h3{font-size:20px;font-weight:500;letter-spacing:-.4px}.xp h3 span{color:var(--muted);font-weight:400}.xp time{font-size:13px;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.xp .loc,.xp time{color:var(--muted)}.xp .loc{font-size:12px;margin-top:4px}.xp ul{margin-top:14px;padding-left:18px}.xp li{font-size:14px;line-height:1.75;color:color-mix(in srgb,var(--ink) 82%,var(--bg));margin-top:6px}.xp li::marker{color:var(--ac)}.ed{display:flex;justify-content:space-between;gap:20px}.ed b{font-weight:500}.ed span{color:var(--muted);font-size:14px}.langs{display:flex;gap:40px;flex-wrap:wrap;font-size:14px}.langs span,.upd{color:var(--muted)}.upd{margin-top:20px;font-size:12px}.arts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.arts a{border:1px solid var(--line);padding:18px;transition:border-color .3s,transform .3s}.arts a:hover{border-color:var(--ac);transform:translateY(-3px)}.arts small{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ac2)}.arts b{display:block;margin-top:8px;font-weight:500;font-size:15px;line-height:1.35}.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--brand);color:var(--brand-ink);padding:80px 0 25px}.blobs span{position:absolute;border-radius:50%;filter:blur(70px);animation:drift 14s ease-in-out infinite alternate;pointer-events:none}.fm{position:relative;z-index:1;margin-bottom:48px;overflow:hidden;border-top:1px solid #140f1f33;border-bottom:1px solid #140f1f33;padding:14px 0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8%,#000 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8%,#000 92%,#0000)}.fm .tr{display:flex;width:max-content;gap:0;white-space:nowrap;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;animation:marquee 28s linear infinite}.fm .tr span span{margin:0 28px;opacity:.45}.site-footer .lbl{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.16em}.site-footer h2{position:relative;margin:40px 0 30px;max-width:1100px;font-size:clamp(58px,9.6vw,145px);font-weight:500;line-height:.95;letter-spacing:-.065em}.site-footer h2 em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.03em}.site-footer h2 .ar{display:inline-block;margin-left:.12em;font-weight:300;animation:arrow 2.8s ease-in-out infinite}.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.path{display:flex;flex-direction:column;border:1px solid #140f1f;background:#140f1f;color:#efeaf7;padding:28px 28px 22px;transition:transform .45s ease-out,box-shadow .45s;transform:perspective(900px) rotateY(var(--tx,0deg)) rotateX(var(--ty,0deg))}.path:hover{box-shadow:0 24px 60px #140f1f40}.path .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;opacity:.62}.path h3{margin:34px 0 14px;font-size:clamp(22px,2.4vw,34px);font-weight:500;line-height:1.05;letter-spacing:-.04em}.path p{font-size:14px;line-height:1.75;color:#efeaf7b8}.path ul{list-style:none;margin-top:24px;flex:1 1}.path li{border-top:1px solid #efeaf729;padding:12px 0;font-size:14px}.path li:before{content:"↗";margin-right:12px;opacity:.72}.path a{margin-top:28px;display:flex;justify-content:space-between;border-top:1px solid #efeaf738;padding-top:18px;font-size:14px;font-weight:700}.path :focus-visible,.site-footer :focus-visible{outline-color:#140f1f}.path a:focus-visible{outline-color:#efeaf7}.fgrid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:9vw;padding-top:96px;margin-bottom:80px}.mail{display:inline-flex;gap:18px;border-bottom:1px solid #140f1f99;padding-bottom:8px;font-size:clamp(16px,1.7vw,24px);overflow-wrap:anywhere}.form h3,.mail{font-weight:500}.form h3{margin-bottom:27px;font-size:23px;letter-spacing:-.5px}.fr{display:grid;grid-template-columns:1fr 1fr;gap:22px}.fr label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.fr .f{display:block;width:100%;border:0;border-bottom:1px solid #0a0612cc;height:36px;background:#0000;color:var(--brand-ink);font:inherit;font-size:14px;outline:0;border-radius:0;transition:border-color .3s}.fr .f:focus{border-bottom-color:var(--brand-ink);box-shadow:0 1px 0 0 var(--brand-ink)}.fr .f:focus-visible{box-shadow:0 2px 0 0 var(--brand-ink)}.ff-note{min-height:1.5em;margin-top:14px;font-size:13px}.ff-note a{text-decoration:underline;overflow-wrap:anywhere}.fr textarea.f{height:80px;resize:vertical;padding-top:8px}.fr .full{grid-column:1/3}.send{display:inline-flex;gap:14px;margin-top:26px;background:#140f1f;color:#fff;padding:18px 22px;font-size:12px;font-weight:700;line-height:1;border:0;cursor:pointer;transition:transform .3s}.send:hover{transform:translateY(-4px)}.btn:active,.send:active{transform:translateY(-1px)}.fb{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #140f1f33;padding-top:24px;font-size:12px}.fb a{display:inline-block;margin-right:16px;padding:6px 0}.fb a:hover{text-decoration:underline}.top-btn{position:fixed;right:22px;bottom:max(22px,env(safe-area-inset-bottom));width:44px;height:44px;border-radius:50%;background:var(--bg);color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 40%,#0000);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.top-btn.show{opacity:1;pointer-events:auto}.nf{min-height:calc(100vh - var(--hh));display:flex;flex-direction:column;justify-content:center;padding:80px 0}.nf h1{margin:20px 0 24px;font-size:clamp(44px,6.5vw,100px);font-weight:500;line-height:1.08;letter-spacing:-.055em}.nf p{margin-bottom:32px}@media (max-width:1100px){.search{width:220px}}@media (max-width:860px){.nav,.search{display:none}.menu-btn{display:inline-flex}.mnav{display:block;position:fixed;top:var(--hh);left:0;right:0;z-index:119;background:var(--bg);border-bottom:1px solid var(--line);padding:12px clamp(1.25rem,2.8vw,2.25rem) 20px}.mnav[hidden]{display:none}.mnav a,.mnav button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:16px 0;font-size:15px;cursor:pointer}}@media (max-width:800px){.bento,.fgrid,.hiw-head,.paths,.pr,.steps,.wib{grid-template-columns:1fr}.sec{padding:65px 0}.bc.big,.c2,.r2{grid-column:auto;grid-row:auto}.skills{grid-template-columns:1fr}.bar,.fit{align-items:flex-start}.bar,.fit,.job .r{flex-direction:column}.job .r{gap:4px}}@media (max-width:760px){.rh{flex-direction:column}.rh .exp{text-align:left}.rh .exp small{margin-left:0}.arts,.cards,.sk{grid-template-columns:1fr}.cards>*+*{border-left:0;padding-left:0;border-top:1px solid var(--line)}.xp .t{flex-direction:column;gap:4px}}@media (max-width:640px){.hgrid{grid-template-columns:1fr;gap:56px;padding:44px 0}figure.pw{justify-self:center;width:76%;max-width:320px}.hero h1{font-size:clamp(42px,9.5vw,62px)}.htop{flex-direction:column}.tog .cols{grid-template-columns:1fr}.tog article+article{border-left:0;padding-left:0;border-top:1px solid #eeeae633;margin-top:25px}.tog article:first-child{padding-right:0}.hfoot>span:last-child{display:none}.right{gap:10px}.talk{display:none}.fr{grid-template-columns:1fr}.fr .full{grid-column:auto}}@media (max-width:540px){.sec{padding:55px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}.rv{opacity:1;transform:none}.band .tr,.blobs span,.fm .tr,.hfoot a span,.htop i,.logo .caret,.site-footer h2 .ar{animation:none!important}.pf{transform:rotate(3deg)!important}.path{transform:none!important}}@media print{@page{size:A4;margin:0}.arts-sec,.back,.exp,.mnav,.noprint,.sd-backdrop,.site-footer,.site-header,.skip,.top-btn{display:none!important}body{background:#fff;color:#111;-webkit-print-color-adjust:exact;print-color-adjust:exact}.site-main{padding:0}.rw{padding:14mm 16mm}.rv{opacity:1!important;transform:none!important}.cards b,.ed b,.langs,.rh h1,.rs p.sum,.sk h3,.sk p,.xp h3,.xp li{color:#222}.rs>h2{color:#5b21b6}.cards small,.ed span,.langs span,.rh .sub,.upd,.xp .loc,.xp h3 span,.xp time{color:#555}.cards,.cards>*+*,.rh,.rs,.sk>div,.xp{border-color:#ddd}.sk>div,.xp{page-break-inside:avoid;break-inside:avoid}.rh img{filter:none}}.c{padding-left:clamp(1.25rem,3vw,2.5rem);padding-right:clamp(1.25rem,3vw,2.5rem)}@media (max-width:860px){.icon-btn,.lsw summary{min-width:44px;height:44px;justify-content:center}}@media (max-width:420px){.wbt{flex-wrap:wrap}.wbt .eb{letter-spacing:1px}}