@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.20g3-bbbhdq0_.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2cxlyxah-fd35.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.0mkxydxl0e43d.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1rx9vjatjkdar.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.2kcj5i_8uff48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.3gdi_th3seg1n.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0gsaq8ukbf34m.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter Variable", Inter, system-ui, "Segoe UI", Roboto, sans-serif;--hand:"Caveat Variable", "Bradley Hand", cursive;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.22, 1.2, .36, 1);--radius:20px;--yellow:#f7b500;--on-yellow:#151515}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eeefe9;--card:#f9f9f6;--card-2:#e5e7df;--ink:#151515;--muted:#555c63;--line:#d3d5cc;--edge:#151515;--orange:#f54e00;--orange-ink:#b23900;--blue-ink:#1450c4;--nav:#eeefe9b8;--band:#16191c;--band-card:#20252a;--band-ink:#f3f2ec;--band-muted:#b6bcc3;--band-line:#343a40;--shadow:0 1px 2px #1515150f, 0 12px 32px -12px #1515152e}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171614;--card:#211f1c;--card-2:#2b2925;--ink:#f2f1ec;--muted:#aeaaa1;--line:#36332e;--edge:#000;--orange:#ff6b26;--orange-ink:#ff7d3d;--blue-ink:#7aa7ff;--nav:#171614b3;--band:#201e1b;--band-card:#2a2824;--band-ink:#f2f1ec;--band-muted:#b8b4ab;--band-line:#3b3833;--shadow:0 1px 2px #0006, 0 16px 40px -16px #000000b3}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55;transition:background-color .3s,color .3s;overflow-x:clip}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}::selection{background:var(--yellow);color:var(--on-yellow)}:focus-visible{outline:2.5px solid var(--blue-ink);outline-offset:3px;border-radius:6px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.mt{margin-top:12px}.wrap{width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}.section{padding-block:clamp(40px,5.5vw,72px);scroll-margin-top:64px}.skip-link{z-index:100;background:var(--yellow);color:var(--on-yellow);border-radius:10px;padding:10px 14px;font-weight:600;position:absolute;top:-80px;left:16px}.skip-link:focus{top:12px}[data-reveal]{transition:opacity .7s var(--ease), transform .9s var(--spring), translate .25s var(--ease), box-shadow .25s var(--ease), border-color .2s;transition-delay:var(--d,0s)}[data-reveal].is-pre{opacity:0;transform:translateY(28px)scale(.985)}.btn{border:1.5px solid var(--edge);background:var(--card);min-height:44px;color:var(--ink);letter-spacing:-.01em;box-shadow:0 3px 0 0 var(--edge);cursor:pointer;transition:transform .12s var(--ease), box-shadow .12s var(--ease), background-color .2s;overflow-wrap:anywhere;text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:8px;max-width:100%;padding:10px 18px;font-size:.95rem;font-weight:600;display:inline-flex}.btn:hover{box-shadow:0 4px 0 0 var(--edge);transform:translateY(-1px)}.btn:active{box-shadow:0 1px 0 0 var(--edge);transform:translateY(2px)}.btn--primary{background:var(--yellow);color:var(--on-yellow);border-color:#151515;box-shadow:0 3px #151515}.btn--primary:hover{box-shadow:0 4px #151515}.btn--primary:active{box-shadow:0 1px #151515}.btn--sm{border-radius:10px;min-height:36px;padding:6px 14px;font-size:.875rem}.btn--lg{border-radius:14px;min-height:52px;padding:12px 24px;font-size:1.02rem}.btn--on-dark{background:var(--band-card);color:var(--band-ink);border-color:#000;box-shadow:0 3px #000}.ext-icon{transition:transform .2s var(--ease);flex:none}.btn:hover .ext-icon{transform:translate(2px,-2px)}.icon-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;width:40px;height:40px;transition:background-color .2s, transform .15s var(--ease);border-radius:12px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--card-2)}.icon-btn:active{transform:scale(.94)}.icon-sun{display:none}[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.live-dot{background:var(--orange);width:8px;height:8px;animation:ping 2.4s var(--ease) infinite;border-radius:99px;box-shadow:0 0 #f54e0080}@keyframes ping{0%{box-shadow:0 0 #f54e0073}70%,to{box-shadow:0 0 0 8px #f54e0000}}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--card-2);color:var(--ink);border-radius:999px;align-items:center;padding:5px 11px;font-size:.8rem;font-weight:500;display:inline-flex}.pill{border:1px solid var(--line);width:fit-content;color:var(--muted);border-radius:999px;align-items:center;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.pill--live{color:var(--orange-ink);border-color:currentColor}.sec-head{max-width:760px;margin-bottom:clamp(20px,2.6vw,28px)}.eyebrow{color:var(--orange-ink);letter-spacing:-.005em;margin-bottom:10px;font-size:.9rem;font-weight:600}.h2{letter-spacing:-.025em;font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:600;line-height:1.15}.lede{color:var(--muted);max-width:60ch;margin-top:14px;font-size:clamp(1.05rem,1.6vw,1.25rem)}.sec-head--invert .eyebrow{color:var(--yellow)}.sec-head--invert .h2{color:var(--band-ink)}.nav{z-index:50;background:var(--nav);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.nav.is-scrolled,.nav.is-open{border-bottom-color:var(--line)}.nav__inner{align-items:center;gap:16px;height:60px;display:flex}.nav__brand{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:10px;font-weight:700;display:inline-flex}.nav__brand img{border:1.5px solid var(--edge);border-radius:99px}.nav__links{gap:4px;margin-inline:auto;display:flex}.nav__links a{color:var(--muted);border-radius:10px;padding:7px 12px;font-size:.92rem;font-weight:500;transition:color .15s,background-color .15s}.nav__links a:hover{color:var(--ink);background:var(--card-2)}.nav__actions{align-items:center;gap:10px;margin-left:auto;display:flex}.nav__links+.nav__actions{margin-left:0}@media (max-width:820px){.nav__links+.nav__actions{margin-left:auto}}.nav__menu{display:none}@media (max-width:820px){.nav__cta{display:none}.nav__menu{display:inline-grid}.nav__links{background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:10px clamp(20px,5vw,40px) 16px;display:none;position:absolute;top:60px;left:0;right:0}.nav.is-open .nav__links{display:flex}.nav__links a{padding:12px;font-size:1.05rem}}.hero{align-items:center;gap:clamp(40px,6vw,72px);padding-block:clamp(48px,8vw,104px) clamp(48px,7vw,88px);scroll-margin-top:64px;display:grid}@media (min-width:960px){.hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.hero__copy{min-width:0}.hero__name{letter-spacing:-.055em;font-size:clamp(3.75rem,12vw,8.5rem);font-weight:700;line-height:.9}.hero__lede{letter-spacing:-.025em;max-width:26ch;margin-top:26px;font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:600;line-height:1.25}.hero__lede span{color:var(--muted)}.hero__headline{color:var(--muted);max-width:60ch;margin-top:22px;font-size:.98rem;font-weight:500}.hero__cta{flex-wrap:wrap;gap:14px;margin-top:32px;display:flex}.hero__art{justify-content:center;min-width:0;display:flex;position:relative}.id-card{background:var(--card);border:1px solid var(--line);width:min(380px,100%);box-shadow:var(--shadow);transition:rotate .5s var(--spring), transform .5s var(--spring);border-radius:28px;padding:22px;rotate:2deg}.id-card__avatar{aspect-ratio:1;object-fit:cover;border:1.5px solid var(--edge);border-radius:18px;width:100%;height:auto;display:block}.id-card__meta{margin-top:18px}.id-card__name{letter-spacing:-.025em;font-size:1.35rem;font-weight:700}.id-card__loc{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:.92rem;display:flex}.id-card__foot{border-top:1px dashed var(--line);font-family:var(--mono);color:var(--muted);justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;font-size:.74rem;display:flex}@media (max-width:959px){.id-card{width:min(320px,100%)}}.about__text{max-width:65ch;font-size:clamp(1.05rem,1.3vw,1.125rem);line-height:1.7}.card:hover{box-shadow:var(--shadow);translate:0 -3px}.proj-grid{z-index:2;gap:16px;display:grid;position:relative}@media (min-width:760px){.proj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.proj--0,.proj--3{grid-column:span 2}}@media (min-width:1100px){.proj-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.proj--0{grid-column:span 3}.proj--3{grid-column:auto}}.proj{flex-direction:column;gap:10px;padding:clamp(20px,2.6vw,30px);display:flex;position:relative}.proj--0{background:linear-gradient(165deg, var(--card) 50%, color-mix(in srgb, var(--yellow) 14%, var(--card)))}.proj--1{background:linear-gradient(165deg, var(--card) 55%, color-mix(in srgb, var(--orange) 9%, var(--card)))}.proj--2{background:linear-gradient(165deg, var(--card) 55%, color-mix(in srgb, #3b82f6 9%, var(--card)))}.proj__title{letter-spacing:-.02em;font-size:clamp(1.15rem,1.6vw,1.35rem);font-weight:600;line-height:1.2}.proj--3{background:linear-gradient(165deg, var(--card) 55%, color-mix(in srgb, var(--yellow) 10%, var(--card)))}.proj__one{font-weight:500}.proj__desc{color:var(--muted);max-width:56ch}.proj__tags{margin-top:6px}.proj__links{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.roles{border-top:1px solid var(--line)}.role{border-bottom:1px solid var(--line);gap:6px 32px;padding:20px 0;display:grid;position:relative}@media (min-width:760px){.role{grid-template-columns:210px minmax(0,1fr)}}.role__when{font-variant-numeric:tabular-nums;color:var(--muted);flex-wrap:wrap;align-content:flex-start;align-items:center;gap:8px 10px;padding-top:6px;font-size:.92rem;font-weight:600;display:flex}@media (min-width:760px){.role__when{flex-direction:column;align-items:flex-start}}.role__body{min-width:0}.role__org{letter-spacing:-.02em;font-size:clamp(1.15rem,1.6vw,1.3rem);font-weight:600;line-height:1.2}.role__link{color:inherit;text-underline-offset:3px;transition:text-decoration-color .2s var(--ease), color .2s var(--ease);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1.5px}.role__link:hover,.role__link:focus-visible{-webkit-text-decoration-color:var(--yellow);text-decoration-color:var(--yellow)}.role__arrow{color:var(--muted);transition:translate .2s var(--ease);margin-left:3px;font-size:.8em;display:inline-block}.role__link:hover .role__arrow{translate:2px -2px}.role__full{color:var(--muted);margin-top:2px}.role__title{color:var(--orange-ink);margin-top:6px;font-weight:600}.role__loc{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:.9rem;display:flex}.role__notes{color:var(--muted);gap:6px;max-width:62ch;margin-top:12px;display:grid}.role__notes li{padding-left:18px;position:relative}.role__notes li:before{content:"";background:var(--orange);border-radius:99px;width:6px;height:6px;position:absolute;top:.62em;left:2px}.contact{padding-bottom:40px}.lines{border-top:1px solid var(--line)}.line{border-bottom:1px solid var(--line);transition:padding .35s var(--spring);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 20px;padding:clamp(20px,3vw,30px) 4px;display:grid}.line__label{letter-spacing:-.05em;font-size:clamp(2rem,6vw,4.25rem);font-weight:700;line-height:1}.line__handle{color:var(--muted);overflow-wrap:anywhere;grid-row:2}.line__arrow{border:1.5px solid var(--edge);width:52px;height:52px;box-shadow:0 3px 0 0 var(--edge);background:var(--card);transition:background-color .2s, transform .2s var(--ease);border-radius:14px;grid-area:1/2/span 2;place-items:center;display:grid}.line:hover{padding-left:14px}.line:hover .line__arrow{background:var(--yellow);color:var(--on-yellow);transform:translateY(-1px)}.footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px 28px;margin-top:clamp(56px,8vw,96px);padding-top:28px;display:flex}.footer__text{flex:260px;font-size:.92rem}.footer__text p:first-child{font-weight:600}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}[data-reveal].is-pre{opacity:1;transform:none}}.feat__notes{border-top:1px dashed var(--line);padding-top:14px}.feat__notes-h{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:.72rem}.feat__notes ul{gap:4px;display:grid}.feat__notes li{color:var(--muted);padding-left:14px;font-size:.88rem;position:relative}.feat__notes li:before{content:"";background:var(--orange);border-radius:99px;width:5px;height:5px;position:absolute;top:.6em;left:0}.cb{align-items:start;gap:20px 48px;display:grid}@media (min-width:1000px){.cb{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.cb .feat__notes{border-top:0;border-left:1px dashed var(--line);padding-top:0;padding-left:28px}}.cb__main{justify-items:start;gap:12px;display:grid}.cb__intro{max-width:62ch}.cb__credit{color:var(--muted);font-size:.88rem}.cb__logo{width:auto;height:24px;display:block}.feat__note-logo{vertical-align:-2px;width:auto;height:14px;margin-left:8px;display:inline-block}.logo-mono{filter:brightness(0);opacity:.7}[data-theme=dark] .logo-mono{filter:brightness(0)invert();opacity:.75}html[data-boot=desktop] .boring{visibility:hidden}html[data-mode=desktop],html[data-mode=desktop] body{overflow:hidden}.desk{-webkit-user-select:none;user-select:none;background:#cfd6dc;position:fixed;inset:0;overflow:hidden}[data-theme=dark] .desk{background:#1a2030}.desk__wall{z-index:0;pointer-events:none;transform-origin:50% 100%;animation:40s ease-in-out infinite alternate wall-drift;position:absolute;inset:0}.desk__wall-img{transition:opacity .6s var(--ease);background-position:bottom;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.desk__wall-img--light{background-image:url(/desk/wall-light.webp)}.desk__wall-img--dark{opacity:0;background-image:url(/desk/wall-dark.webp)}[data-theme=dark] .desk__wall-img--light{opacity:0}[data-theme=dark] .desk__wall-img--dark{opacity:1}@keyframes wall-drift{0%{transform:scale(1)}to{transform:scale(1.03)}}@media (prefers-reduced-motion:reduce){.desk__wall{animation:none}.desk__wall-img{transition:none}}.menubar__mark{background:var(--ink);width:18px;height:18px;color:var(--bg);letter-spacing:-.04em;border-radius:5px;place-items:center;font-size:11px;font-weight:800;display:grid}.desk__players{z-index:0;pointer-events:none;transform-origin:50% 100%;animation:40s ease-in-out infinite alternate wall-drift;position:absolute;inset:0}.desk__players canvas{pointer-events:none}.desk__files{z-index:1;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;top:48px;left:24px}.file{cursor:default;width:112px;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex-direction:column;align-items:center;gap:6px;padding:6px 4px 4px;display:flex}.file__label{letter-spacing:-.005em;text-align:center;-webkit-line-clamp:2;color:#1d1b17;text-shadow:0 0 6px #fffffff2,0 1px 2px #fffc;border-radius:5px;-webkit-box-orient:vertical;max-width:100%;padding:1px 6px;font-size:12px;font-weight:500;line-height:1.35;display:-webkit-box;overflow:hidden}[data-theme=dark] .file__label{color:#fff;text-shadow:0 1px 2px #0000008c,0 0 8px #00000059}.finder .file__label,[data-theme=dark] .finder .file__label{color:var(--ink);text-shadow:none}.file.is-sel .file__label,[data-theme=dark] .file.is-sel .file__label{color:#fff;text-shadow:none;background:#2a4fbf}.file__icon{width:64px;height:64px;transition:translate .2s var(--spring);display:block;position:relative}.pix{width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(1px 2px #1410282e);display:block}.file:hover .file__icon{translate:0 -2px}.file.is-sel .pix{filter:brightness(.58)sepia(.35)hue-rotate(185deg)saturate(2.4)drop-shadow(1px 2px #1410282e)}@media (prefers-reduced-motion:reduce){.file__icon{transition:none}}.file:focus-visible .file__label{box-shadow:0 0 0 2px var(--yellow)}.finder{padding:18px 20px}.finder__path{color:var(--muted);margin-bottom:14px;font-size:.8rem;font-weight:500}.finder__grid{flex-wrap:wrap;gap:8px 4px;display:flex}.finder__note{color:var(--muted);margin-top:14px;font-size:.82rem}.soon{text-align:center;height:100%;color:var(--muted);place-content:center;justify-items:center;gap:6px;padding:32px;display:grid}.soon svg{color:var(--ink);margin-bottom:4px}.soon__title{letter-spacing:-.01em;color:var(--ink);font-size:1.15rem;font-weight:700}.desk-entry{right:max(24px, calc(env(safe-area-inset-right) + 12px));bottom:max(24px, calc(env(safe-area-inset-bottom) + 12px));z-index:1000;flex-direction:column;align-items:flex-end;gap:10px;display:none;position:fixed}@media (min-width:768px) and (hover:hover) and (pointer:fine){.desk-entry{display:flex}}@media (max-width:1023px){.menubar__name{display:none}.menubar__menu{margin-left:2px}.menubar__right{gap:8px}}.desk-btn{position:relative;overflow:hidden}.desk-btn:after{content:"";pointer-events:none;animation:desk-shine 1.2s var(--ease) 3s 1;background:linear-gradient(105deg,#0000 30%,#ffffffa6 50%,#0000 70%);position:absolute;inset:0;translate:-130%}@keyframes desk-shine{to{translate:130%}}.desk-hint{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 82%, transparent);-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%);color:var(--ink);transition:opacity .35s var(--ease), translate .35s var(--ease);border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 14px;font-size:.85rem;font-weight:500;display:flex;box-shadow:0 10px 30px -14px #00000059}.desk-hint:empty{display:none}@starting-style{.desk-hint[data-show=true]{opacity:0;translate:0 6px}}.desk-hint__x{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.desk-hint__x:hover,.desk-hint__x:focus-visible{background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink)}.win[data-grow=true]:not([data-closing=true]):not([data-min=true]){animation:.42s cubic-bezier(.22,1.1,.36,1) both win-grow}@keyframes win-grow{0%{opacity:0;transform:scale(.1)}35%{opacity:1}}@media (prefers-reduced-motion:reduce){.desk-btn:after{display:none}.desk-hint{transition:none}.win,.win[data-closing=true],.win[data-min=true],.win[data-grow=true]{animation:none!important}}.menubar{z-index:9000;background:color-mix(in srgb, var(--card) 64%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.6);backdrop-filter:blur(24px)saturate(1.6);border-bottom:1px solid color-mix(in srgb, var(--ink) 10%, transparent);justify-content:space-between;align-items:center;height:32px;padding:0 10px 0 14px;font-size:.84rem;display:flex;position:absolute;inset:0 0 auto}.menubar__left,.menubar__right{align-items:center;gap:12px;display:flex}.menubar__left img{border-radius:99px}.menubar__name{letter-spacing:-.01em;font-weight:700}.menubar__clock{font-variant-numeric:tabular-nums;font-weight:500}.menubar .icon-btn{background:0 0;border:0;border-radius:7px;width:26px;height:26px}.menubar .icon-btn:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.menubar .icon-btn svg{width:15px;height:15px}.menubar__btn{border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);background:color-mix(in srgb, var(--card) 72%, transparent);color:inherit;font:inherit;cursor:pointer;border-radius:7px;padding:3px 10px;font-size:.8rem;font-weight:600;transition:background-color .15s}.menubar__btn:hover{background:var(--card)}.win{-webkit-user-select:text;user-select:text;background:color-mix(in srgb, var(--card) 86%, transparent);-webkit-backdrop-filter:blur(28px)saturate(1.5);backdrop-filter:blur(28px)saturate(1.5);border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);min-width:360px;min-height:240px;animation:win-open .36s var(--spring) both;border-radius:14px;outline:none;flex-direction:column;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 24px 60px -24px #00000059,0 6px 18px -8px #0000002e}.win.is-focused{box-shadow:0 36px 90px -28px #00000080,0 10px 28px -10px #00000040}.win:not(.is-focused) .win__title{opacity:.55}.win:not(.is-focused) .tl{background:color-mix(in srgb, var(--ink) 18%, transparent)}.win.is-dragging{-webkit-user-select:none;user-select:none}.win[data-max=true]{border-radius:0}.win[data-closing=true]{animation:win-close .2s var(--ease) forwards;pointer-events:none}.win[data-min=true]{animation:win-min .34s var(--ease) forwards;pointer-events:none}@keyframes win-open{0%{opacity:0;transform:scale(.94)translateY(10px)}}@keyframes win-close{to{opacity:0;transform:scale(.95)}}@keyframes win-min{to{opacity:0;visibility:hidden;transform:translateY(55vh)scale(.2)}}@media (prefers-reduced-motion:reduce){.win[data-min=true]{visibility:hidden}}.win__bar{touch-action:none;border-bottom:1px solid color-mix(in srgb, var(--ink) 9%, transparent);flex:none;align-items:center;height:40px;padding:0 14px;display:flex;position:relative}.win__lights{z-index:1;gap:8px;display:flex;position:relative}.tl{cursor:pointer;border:.5px solid #0000002e;border-radius:99px;width:12px;height:12px;padding:0}.tl--close{background:#ff5f57}.tl--min{background:#febc2e}.tl--max{background:#28c840}.win__bar:hover .tl--close{background:#ff5f57}.win__bar:hover .tl--min{background:#febc2e}.win__bar:hover .tl--max{background:#28c840}.tl:focus-visible{outline:2px solid var(--blue-ink);outline-offset:2px}.win__title{pointer-events:none;letter-spacing:-.005em;color:var(--muted);place-items:center;font-family:inherit;font-size:.82rem;font-weight:600;display:grid;position:absolute;inset:0}.win__body{overscroll-behavior:contain;flex:1;min-height:0;padding:28px 32px 36px;overflow:auto;container-type:inline-size}.win__body--flush{padding:0}.win__rz{z-index:2;touch-action:none;position:absolute}.win__rz--e{cursor:ew-resize;width:6px;top:40px;bottom:14px;right:0}.win__rz--s{cursor:ns-resize;height:6px;bottom:0;left:0;right:14px}.win__rz--se{cursor:nwse-resize;width:16px;height:16px;bottom:0;right:0}.win__body .wrap{max-width:none;padding-inline:0}.win__body .section{padding-block:0}.win__body .hero{grid-template-columns:1fr;gap:32px;padding-block:4px}@container (min-width:760px){.win__body .hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.win__body .hero__name{font-size:clamp(3rem,10cqi,6.25rem)}.win__body .contact{padding-bottom:0}.win__body .footer .btn{display:none}.win__body .proj{box-shadow:none;background:0 0;border:0;padding:0}.win__body .card:hover{box-shadow:none;translate:none}.win__body .cb{grid-template-columns:1fr}.win__body .cb .feat__notes{border-left:0;border-top:1px dashed var(--line);padding-top:14px;padding-left:0}@container (min-width:820px){.win__body .cb{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.win__body .cb .feat__notes{border-top:0;border-left:1px dashed var(--line);padding-top:0;padding-left:28px}}.dock{z-index:9000;background:color-mix(in srgb, var(--card) 58%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.6);backdrop-filter:blur(24px)saturate(1.6);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:20px;gap:8px;padding:8px;display:flex;position:absolute;bottom:12px;left:50%;translate:-50%;box-shadow:0 10px 30px -12px #00000059}.dock__item{cursor:pointer;transition:transform .25s var(--spring);background:0 0;border:0;padding:0;position:relative}.dock__item:hover{transform:translateY(-4px)scale(1.06)}.dock__item:focus-visible{outline:2px solid var(--blue-ink);outline-offset:3px;border-radius:12px}.dock__dot{background:var(--ink);opacity:.55;border-radius:99px;width:4px;height:4px;position:absolute;bottom:-5px;left:50%;translate:-50%}.menubar__menu{gap:2px;margin-left:10px;display:flex}.menubar__menu button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:3px 8px;font-size:.82rem}.menubar__menu button:hover,.menubar__menu button:focus-visible{background:color-mix(in srgb, var(--ink) 9%, transparent);outline:none}.dock__item{color:var(--ink);border-radius:10px;padding:6px 12px;font-size:12px;font-weight:600}.dock__item:hover{background:color-mix(in srgb, var(--card) 70%, transparent);transform:translateY(-2px)}.dock__item.is-min{opacity:.6}.dock__dot{bottom:2px}.dock__item,.win__title>span{align-items:center;gap:7px;display:inline-flex}.pix--sm{filter:none;flex:none;width:16px;height:16px}.hero__word{white-space:nowrap}.hero__char{display:inline-block}@media (prefers-reduced-motion:reduce){.hero__char,.id-card,.proj,.role{opacity:1!important;transform:none!important}}.hero__cta .btn{transition-property:box-shadow,background-color,color}.id-card{transition:rotate .5s var(--spring);position:relative}.id-card:hover{transform:none}.id-card__glare{border-radius:inherit;pointer-events:none;opacity:0;mix-blend-mode:soft-light;transition:opacity .3s var(--ease);position:absolute;inset:0}.id-card:hover .id-card__glare{opacity:1}.progress{z-index:70;background:var(--yellow);transform-origin:0;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.nav__links a{isolation:isolate;position:relative}.nav__links a.is-active{color:var(--ink)}.nav__pill{z-index:-1;background:var(--card-2);border-radius:10px;position:absolute;inset:0}.line__glyph,.icon-morph{place-items:center;display:grid}.mode-desk{z-index:80;position:fixed;inset:0}.desk.pixcur,.desk.pixcur *{cursor:url(/desk/cursors/arrow.png) 0 0,default;cursor:-webkit-image-set(url(/desk/cursors/arrow.png) 1x, url(/desk/cursors/arrow@2x.png) 2x) 0 0, default;cursor:image-set(url(/desk/cursors/arrow.png) 1x, url(/desk/cursors/arrow@2x.png) 2x) 0 0, default}.desk.pixcur.pixcur :is(a,button,[role=button],summary,label,select,.file,.tl,.dock__item),.desk.pixcur.pixcur :is(a,button) *{cursor:url(/desk/cursors/hand.png) 4 1,pointer;cursor:-webkit-image-set(url(/desk/cursors/hand.png) 1x, url(/desk/cursors/hand@2x.png) 2x) 4 1, pointer;cursor:image-set(url(/desk/cursors/hand.png) 1x, url(/desk/cursors/hand@2x.png) 2x) 4 1, pointer}.desk.pixcur.pixcur .win__rz--e{cursor:url(/desk/cursors/ew.png) 7 8,ew-resize;cursor:-webkit-image-set(url(/desk/cursors/ew.png) 1x, url(/desk/cursors/ew@2x.png) 2x) 7 8, ew-resize;cursor:image-set(url(/desk/cursors/ew.png) 1x, url(/desk/cursors/ew@2x.png) 2x) 7 8, ew-resize}.desk.pixcur.pixcur .win__rz--s{cursor:url(/desk/cursors/ns.png) 8 7,ns-resize;cursor:-webkit-image-set(url(/desk/cursors/ns.png) 1x, url(/desk/cursors/ns@2x.png) 2x) 8 7, ns-resize;cursor:image-set(url(/desk/cursors/ns.png) 1x, url(/desk/cursors/ns@2x.png) 2x) 8 7, ns-resize}.desk.pixcur.pixcur .win__rz--se{cursor:url(/desk/cursors/nwse.png) 7 7,nwse-resize;cursor:-webkit-image-set(url(/desk/cursors/nwse.png) 1x, url(/desk/cursors/nwse@2x.png) 2x) 7 7, nwse-resize;cursor:image-set(url(/desk/cursors/nwse.png) 1x, url(/desk/cursors/nwse@2x.png) 2x) 7 7, nwse-resize}.desk.pixcur .win__body :is(p,li,h1,h2,h3,h4,blockquote,dd,dt,td,pre,code,input,textarea){cursor:text}.desk.pixcur.pixcur.pixcur .win__body :is(a,button) :is(*),.desk.pixcur.pixcur.pixcur .win__body :is(a,button){cursor:url(/desk/cursors/hand.png) 4 1,pointer;cursor:-webkit-image-set(url(/desk/cursors/hand.png) 1x, url(/desk/cursors/hand@2x.png) 2x) 4 1, pointer;cursor:image-set(url(/desk/cursors/hand.png) 1x, url(/desk/cursors/hand@2x.png) 2x) 4 1, pointer}body[data-drag=move] .desk.pixcur,body[data-drag=move] .desk.pixcur *{cursor:url(/desk/cursors/grab.png) 8 8,grabbing!important;cursor:-webkit-image-set(url(/desk/cursors/grab.png) 1x, url(/desk/cursors/grab@2x.png) 2x) 8 8, grabbing!important;cursor:image-set(url(/desk/cursors/grab.png) 1x, url(/desk/cursors/grab@2x.png) 2x) 8 8, grabbing!important}body[data-drag=e] .desk.pixcur,body[data-drag=e] .desk.pixcur *{cursor:url(/desk/cursors/ew.png) 7 8,ew-resize!important;cursor:-webkit-image-set(url(/desk/cursors/ew.png) 1x, url(/desk/cursors/ew@2x.png) 2x) 7 8, ew-resize!important;cursor:image-set(url(/desk/cursors/ew.png) 1x, url(/desk/cursors/ew@2x.png) 2x) 7 8, ew-resize!important}body[data-drag=s] .desk.pixcur,body[data-drag=s] .desk.pixcur *{cursor:url(/desk/cursors/ns.png) 8 7,ns-resize!important;cursor:-webkit-image-set(url(/desk/cursors/ns.png) 1x, url(/desk/cursors/ns@2x.png) 2x) 8 7, ns-resize!important;cursor:image-set(url(/desk/cursors/ns.png) 1x, url(/desk/cursors/ns@2x.png) 2x) 8 7, ns-resize!important}body[data-drag=se] .desk.pixcur,body[data-drag=se] .desk.pixcur *{cursor:url(/desk/cursors/nwse.png) 7 7,nwse-resize!important;cursor:-webkit-image-set(url(/desk/cursors/nwse.png) 1x, url(/desk/cursors/nwse@2x.png) 2x) 7 7, nwse-resize!important;cursor:image-set(url(/desk/cursors/nwse.png) 1x, url(/desk/cursors/nwse@2x.png) 2x) 7 7, nwse-resize!important}
