.hero.svelte-yjf5e2{align-items:flex-end;min-height:100svh;padding:9rem 0 4.5rem;display:flex;overflow:clip}.hero-inner.svelte-yjf5e2{width:100%;position:relative}.mask.svelte-yjf5e2{margin-bottom:-.09em;padding-bottom:.09em;display:block;overflow:hidden}.mask.svelte-yjf5e2>span:where(.svelte-yjf5e2){animation:svelte-yjf5e2-rise 1s var(--ease-out) forwards;display:block;transform:translateY(115%)}.mask.svelte-yjf5e2:nth-child(2)>span:where(.svelte-yjf5e2){animation-delay:80ms}@keyframes svelte-yjf5e2-rise{to{transform:translateY(0)}}.hero.svelte-yjf5e2 h1:where(.svelte-yjf5e2){font-size:var(--fs-h1);letter-spacing:-.022em;margin:22px 0 18px;font-weight:700;line-height:1.04}.hero.svelte-yjf5e2 h1:where(.svelte-yjf5e2) .thin:where(.svelte-yjf5e2){color:var(--muted);font-style:italic;font-weight:400}.hero-sub.svelte-yjf5e2{gap:var(--gap-xl);grid-template-columns:1.2fr 1fr;align-items:end;margin-top:8px;display:grid}.hero-sub.svelte-yjf5e2 p:where(.svelte-yjf5e2){color:var(--muted);max-width:52ch;margin:0;font-size:clamp(15px,1.6vw,18px);line-height:1.65}.status.svelte-yjf5e2 div:where(.svelte-yjf5e2)+div:where(.svelte-yjf5e2){margin-top:10px}.hero-cta.svelte-yjf5e2{gap:var(--gap-sm);flex-wrap:wrap;margin-top:30px;display:flex}.scrollline.svelte-yjf5e2{color:var(--muted);align-items:center;gap:12px;margin-top:56px;display:flex}.scrollline.svelte-yjf5e2 .track:where(.svelte-yjf5e2){background:var(--border);width:72px;height:1px;position:relative;overflow:hidden}.scrollline.svelte-yjf5e2 .track:where(.svelte-yjf5e2) i:where(.svelte-yjf5e2){background:var(--fg);transform-origin:0;animation:svelte-yjf5e2-cue 1.8s var(--ease-cue) infinite;position:absolute;inset:0}@keyframes svelte-yjf5e2-cue{0%{transform-origin:0;transform:scaleX(0)}55%{transform-origin:0;transform:scaleX(1)}56%{transform-origin:100%}to{transform-origin:100%;transform:scaleX(0)}}@media (width<=920px){.hero-sub.svelte-yjf5e2{grid-template-columns:1fr}.hero.svelte-yjf5e2{padding-top:7rem}}@media (prefers-reduced-motion:reduce){.mask.svelte-yjf5e2>span:where(.svelte-yjf5e2){animation:none;transform:none}}.sec-head.svelte-wmbui7{justify-content:space-between;align-items:baseline;gap:var(--gap-md);margin-bottom:18px;display:flex}.sec-index.svelte-wmbui7{font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;font-size:12px}.work-list.svelte-wmbui7{margin:34px 0 0;padding:0;list-style:none}.work-row.svelte-wmbui7{border-top:1px solid var(--border);position:relative}.work-row.svelte-wmbui7:last-child{border-bottom:1px solid var(--border)}.work-row.svelte-wmbui7:after{content:"";background:var(--fg);transform-origin:0;height:1px;transition:transform .55s var(--ease-line);pointer-events:none;position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.work-row.svelte-wmbui7:hover:after,.work-row.svelte-wmbui7:focus-within:after{transform:scaleX(1)}.work-link.svelte-wmbui7{grid-template-columns:3.2rem 1.4fr 1fr auto;align-items:baseline;gap:1.4rem;padding:24px 0;transition:opacity .25s;display:grid}.work-list.svelte-wmbui7:has(.work-link:where(.svelte-wmbui7):hover) .work-link:where(.svelte-wmbui7):not(:hover){opacity:.32}.wnum.svelte-wmbui7{font-family:var(--font-mono);color:var(--muted);font-size:12px}.wtitle.svelte-wmbui7{font-family:var(--font-display);letter-spacing:-.015em;font-size:clamp(23px,3vw,33px);font-weight:600;line-height:1.1}.wtitle.svelte-wmbui7 .arr:where(.svelte-wmbui7){color:var(--muted);transition:transform .3s var(--ease-out), color .2s;font-weight:400;display:inline-block}.work-link.svelte-wmbui7:hover .arr:where(.svelte-wmbui7){color:var(--accent);transform:translate(4px,-4px)}.wtech.svelte-wmbui7{font-family:var(--font-mono);color:var(--muted);text-align:right;font-size:12px;line-height:1.7}.wstar.svelte-wmbui7{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);white-space:nowrap;padding:4px 10px;font-size:12px}.wdesc.svelte-wmbui7{opacity:0;transition:grid-template-rows .45s var(--ease-line), opacity .3s ease;grid-template-rows:0fr;margin-left:4.6rem;display:grid}.wdesc-in.svelte-wmbui7{min-height:0;overflow:hidden}.wdesc.svelte-wmbui7 p:where(.svelte-wmbui7){color:var(--muted);max-width:62ch;margin:0;padding-bottom:24px;font-size:15px;line-height:1.65}.work-row.svelte-wmbui7:hover .wdesc:where(.svelte-wmbui7),.work-row.svelte-wmbui7:focus-within .wdesc:where(.svelte-wmbui7){opacity:1;grid-template-rows:1fr}.seeall.svelte-wmbui7{justify-content:flex-end;margin-top:30px;display:flex}@media (hover:none){.wdesc.svelte-wmbui7{opacity:1;grid-template-rows:1fr}}@media (width<=920px){.work-link.svelte-wmbui7{grid-template-columns:1fr auto}.wnum.svelte-wmbui7,.wtech.svelte-wmbui7{display:none}.wdesc.svelte-wmbui7{margin-left:0}}.sec-head.svelte-404r1i{justify-content:space-between;align-items:baseline;gap:var(--gap-md);margin-bottom:18px;display:flex}.sec-index.svelte-404r1i{font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;font-size:12px}.grid-3.svelte-404r1i{gap:var(--gap-lg);grid-template-columns:repeat(3,1fr);margin-top:34px;display:grid}.feature.svelte-404r1i{border-top:1px solid var(--fg);padding-top:22px}.feature-mark.svelte-404r1i{border:1px solid var(--border);width:36px;height:36px;color:var(--fg);border-radius:10px;place-items:center;margin-bottom:18px;display:grid}.feature-mark.svelte-404r1i svg:where(.svelte-404r1i){width:18px;height:18px}.feature.svelte-404r1i h3:where(.svelte-404r1i){letter-spacing:-.005em;margin:0 0 8px;font-size:20px;font-weight:600}.feature.svelte-404r1i p:where(.svelte-404r1i){color:var(--muted);margin:0 0 14px;font-size:14.5px}.tagrow.svelte-404r1i{flex-wrap:wrap;gap:8px;display:flex}.tag.svelte-404r1i{color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);align-items:center;padding:5px 12px;font-size:12.5px;transition:color .15s,border-color .15s;display:inline-flex}.tag.svelte-404r1i:hover{color:var(--fg);border-color:var(--fg)}@media (width<=920px){.grid-3.svelte-404r1i{grid-template-columns:1fr}}.split.svelte-gmb7px{gap:var(--gap-xl);grid-template-columns:1fr 1.6fr;align-items:start;display:grid}.sticky.svelte-gmb7px{position:sticky;top:110px}.sticky.svelte-gmb7px .big:where(.svelte-gmb7px){font-family:var(--font-display);letter-spacing:-.025em;margin:14px 0;font-size:clamp(58px,6.6vw,104px);font-weight:700;line-height:1}.sticky.svelte-gmb7px .big:where(.svelte-gmb7px) em:where(.svelte-gmb7px){color:var(--muted);font-style:italic;font-weight:400}.xplist.svelte-gmb7px{margin:0;padding:0;list-style:none}.xp.svelte-gmb7px{border-top:1px solid var(--border);padding:24px 0;transition:opacity .25s}.xplist.svelte-gmb7px li:where(.svelte-gmb7px):last-child{border-bottom:1px solid var(--border)}.xplist.svelte-gmb7px:has(.xp:where(.svelte-gmb7px):hover) .xp:where(.svelte-gmb7px):not(:hover){opacity:.45}.xp-role.svelte-gmb7px{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.xp-co.svelte-gmb7px{color:var(--muted);margin:6px 0 0;font-size:14.5px}.xp-co.svelte-gmb7px a:where(.svelte-gmb7px){border-bottom:1px solid var(--border)}.xp-co.svelte-gmb7px a:where(.svelte-gmb7px):hover{color:var(--fg);border-color:var(--fg)}.xp-meta.svelte-gmb7px{flex-wrap:wrap;gap:8px 18px;margin-top:12px;display:flex}.xp-skills.svelte-gmb7px{color:var(--muted);font-size:13.5px;font-family:var(--font-mono);margin:12px 0 0}@media (width<=920px){.split.svelte-gmb7px{grid-template-columns:1fr}.sticky.svelte-gmb7px{position:static}}.about-grid.svelte-10dsla7{gap:var(--gap-xl);grid-template-columns:1.3fr 1fr;align-items:start;margin-top:30px;display:grid}.about-grid.svelte-10dsla7 p:where(.svelte-10dsla7){color:var(--muted);margin:0 0 18px;line-height:1.75}.about-grid.svelte-10dsla7 strong:where(.svelte-10dsla7){color:var(--fg);font-weight:600}.stat.svelte-10dsla7{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:20px 0;display:flex}.stat.svelte-10dsla7 b:where(.svelte-10dsla7){font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:lining-nums;font-size:clamp(46px,5vw,66px);font-weight:700;line-height:1}.stat.svelte-10dsla7 b:where(.svelte-10dsla7) .u:where(.svelte-10dsla7){color:var(--muted);font-size:.45em;font-weight:500}.stat.svelte-10dsla7 span:where(.svelte-10dsla7){color:var(--muted);text-align:right;max-width:22ch;font-size:13.5px}@media (width<=920px){.about-grid.svelte-10dsla7{grid-template-columns:1fr}}.cta-wrap.svelte-1wscpkq{text-align:center;max-width:640px;margin-inline:auto}.cta-wrap.svelte-1wscpkq .lead:where(.svelte-1wscpkq){margin:0 auto}.cta-wrap.svelte-1wscpkq h2:where(.svelte-1wscpkq){letter-spacing:-.02em;margin:18px 0 16px;font-size:clamp(42px,6vw,76px);font-weight:600;line-height:1.04}.cta-links.svelte-1wscpkq{flex-wrap:wrap;justify-content:center;gap:10px 28px;margin-top:34px;display:flex}.cta-links.svelte-1wscpkq a:where(.svelte-1wscpkq){font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;gap:8px;padding:10px 4px;font-size:clamp(18px,2.4vw,25px);font-weight:650;display:inline-flex}.cta-links.svelte-1wscpkq a:where(.svelte-1wscpkq) span:where(.svelte-1wscpkq){color:var(--muted);transition:transform .3s var(--ease-out), color .2s;font-weight:400;display:inline-block}.cta-links.svelte-1wscpkq a:where(.svelte-1wscpkq):hover span:where(.svelte-1wscpkq){color:var(--accent);transform:translate(3px,-3px)}.pagefoot.svelte-1wlmi2p{border-top:1px solid var(--border);color:var(--muted);padding-block:34px;font-size:13px}.pagefoot.svelte-1wlmi2p .row:where(.svelte-1wlmi2p){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.totop.svelte-1wlmi2p{transition:color .15s}.totop.svelte-1wlmi2p:hover{color:var(--fg)}
