:root{--font-brand-sans:"Montserrat","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--font-brand-mono:"Geist Mono",ui-monospace,monospace}html[dir=rtl]{--font-brand-sans:"Montserrat","IBM Plex Sans Arabic",Tahoma,system-ui,sans-serif}html body.cv-page,html .cv-root{--sans:var(--font-brand-sans);--mono:var(--font-brand-mono)}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-ext-wght-normal.CO5hGrJv.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:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-wght-normal.EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-vietnamese-wght-normal.k7S-YeeD.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:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-ext-wght-normal.BsZE-iaG.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:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-wght-normal.l_AIctKy.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}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:100 550;src:url(/_astro/ibm-plex-sans-arabic-arabic-400-normal.CyU-ddYS.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:551 900;src:url(/_astro/ibm-plex-sans-arabic-arabic-700-normal.DrtBj6UE.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-cyrillic-wght-normal.D5lnP6kL.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-latin-wght-normal.C1hSzPvX.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,[data-theme=light]{--paper:#fff;--paper-tint:#f5f8fc;--ink:#1e3a8a;--on-ink:#fff;--ink-text:#1c2742;--ink-dim:#45506b;--ink-faint:#525c78;--marker:#114d89;--focus-ring:var(--marker);--rule:#ccd5e3;--blot-cucumber:#d2e9cc;--blot-sky:#b5e1f4;--blot-glacier:#cce9ef;--blot-marshmallow:#e0eaca;--blot-peach:#f7d9c4;--blot-lavender:#ddd8f2;--blot-sand:#eee2c9;--blot-rose:#f4d2dc;--blot-lilac:#e8d6f0;--blot-cream:#f7eec6;--blot-mist:#d7e0e8;--cat-ground:#e0eaca;--cat-ink:#114d89;--tech-blot:#caced3;--tech-surface:#dde3e6;--tech-line:#5b6573;--signal-danger:#dc2626;--signal-safe:#16a34a}[data-theme=dark]{--paper:#0d1a33;--paper-tint:#14254a;--ink:#dce7ff;--on-ink:#0d1a33;--ink-text:#e9eef8;--ink-dim:#bcc8de;--ink-faint:#a9b8d3;--marker:#9cc3f0;--focus-ring:var(--marker);--rule:#2b3d63;--blot-cucumber:#2f4729;--blot-sky:#174657;--blot-glacier:#1a474f;--blot-marshmallow:#3b4420;--blot-peach:#57371f;--blot-lavender:#413a5a;--blot-sand:#4d3d1b;--blot-rose:#58323f;--blot-lilac:#4c3655;--blot-cream:#484018;--blot-mist:#314250;--cat-ground:#c9d4b6;--cat-ink:#114d89;--tech-blot:#2b384c;--tech-surface:#1c2b44;--tech-line:#aab6c6;--signal-danger:#f87171;--signal-safe:#4ade80}:root{--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-48:48px;--radius-compact:4px;--radius-signal:5px;--radius-control:6px;--radius-toolbar:8px;--radius-dialog:12px;--radius-card:16px;--radius-pill:999px;--marker-hair:1.5px;--marker-line:2.25px;--marker-bold:3.25px;--blot-marker-alpha:.72;--blot-acrylic-alpha:.92;--blot-wash-alpha:.6;--font-sans:Montserrat, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "IBM Plex Sans Arabic", Tahoma, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-hand:Caveat, "Segoe Print", "Bradley Hand", cursive;--bn-ease:cubic-bezier(.2, .8, .2, 1);--bn-blend:multiply}[data-theme=dark]{--bn-blend:screen;color-scheme:dark}.bn-art{z-index:-1;pointer-events:none;display:block;position:absolute;inset:0}.bn-art svg{width:100%;height:100%;display:block;overflow:visible}.bn-blot{pointer-events:none;flex:none;display:inline-block;position:relative}.bn-blot svg{width:100%;height:100%;display:block;overflow:visible}.bn-blot--cover{z-index:-1;position:absolute;inset:0}.bn-frame{isolation:isolate;position:relative}.bn-hatch{pointer-events:none;display:inline-block;position:relative}.bn-hatch svg{width:100%;height:100%;display:block;overflow:visible}bn-blot,bn-frame,bn-hatch{isolation:isolate;display:block;position:relative}.bn-frame-fill--hover{transition:opacity .2s var(--bn-ease);opacity:0!important}.bn-kicker{text-wrap:balance;font:500 clamp(11px, 1.1vw, 13px) / 1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0}.bn-hl{isolation:isolate;position:relative}.bn-hl>.bn-art{z-index:-1}.bn-hl--swipe>.bn-art{height:.62em;inset:auto -.18em .02em -.14em}.bn-hl--underline>.bn-art{height:.36em;inset:auto -.04em -.24em}.bn-hl--circle>.bn-art{inset:-.3em -.45em -.24em}.bn-icon{flex:none;line-height:0;display:inline-flex}.bn-btn{isolation:isolate;box-sizing:border-box;min-height:44px;font:600 15px / 1.2 var(--font-sans);color:var(--ink);cursor:pointer;transform-origin:50%;transition:transform .2s var(--bn-ease), color .2s var(--bn-ease);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:12px 20px;text-decoration:none;display:inline-flex;position:relative}.bn-btn:hover{transform:scale(1.04)}.bn-btn:active{transform:scale(1.08)}.bn-btn:hover .bn-frame-fill--hover{opacity:1!important}.bn-btn--primary{color:var(--on-ink)}.bn-btn--outline{color:var(--ink)}.bn-pill{padding:12px 18px}.bn-btn--exit{min-height:44px;font:500 13px / 1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:12px 0 10px}.bn-btn--exit:hover{color:var(--ink);transform:none}.bn-btn--exit:active{transform:none}.bn-btn--exit>.bn-btn-underline{z-index:0;opacity:.35;height:8px;transition:opacity .2s var(--bn-ease);inset:auto 0 2px}.bn-btn--exit:hover>.bn-btn-underline{opacity:1}.bn-btn:focus-visible,.bn-chip--button:focus-visible,.bn-case:focus-visible,.bn-article:focus-visible,.bn-sidenav a:focus-visible,.bn-hero-direction:focus-visible,.bn-ticker:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-control)}.bn-chip{box-sizing:border-box;border:1.5px solid var(--rule);font:400 12px / 1.3 var(--font-mono);letter-spacing:.02em;color:var(--ink-dim);white-space:nowrap;background:0 0;border-radius:255px 18px 225px/18px 225px 18px 255px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.bn-chip:nth-child(2n){border-radius:18px 225px 18px 255px/255px 18px 225px}.bn-chip--button{cursor:pointer;min-height:36px;transition:border-color .2s var(--bn-ease), color .2s var(--bn-ease);padding:6px 14px}.bn-chip--button:hover{border-color:var(--marker);color:var(--ink-text)}.bn-chip.is-active{background:var(--bn-chip-fill,var(--blot-sky));border-color:var(--marker);color:var(--ink-text)}.bn-ticker{width:100%;min-width:0;max-width:56rem;padding-block:4px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.bn-ticker-track{flex:none;gap:10px;margin:0;padding:0 10px 0 0;list-style:none;animation:46s linear infinite bn-ticker;display:flex}.bn-ticker:hover .bn-ticker-track,.bn-ticker:focus-visible .bn-ticker-track{animation-play-state:paused}@keyframes bn-ticker{to{transform:translate(-100%)}}.bn-note{font:600 26px / 1.1 var(--font-hand);color:var(--marker);align-items:flex-end;gap:2px;display:inline-flex}.bn-note-text{max-width:16ch}.bn-note-arrow{flex:none;width:66px;height:44px;display:block}.bn-note--left{flex-direction:row-reverse}.bn-note--down,.bn-note--down-left,.bn-note--down-right{flex-direction:column;align-items:center}.bn-note--up,.bn-note--up-left,.bn-note--up-right{flex-direction:column-reverse;align-items:center}.bn-note--down-left,.bn-note--up-left{align-items:flex-start}.bn-note--down-right,.bn-note--up-right{align-items:flex-end}.bn-note--down-left .bn-note-text,.bn-note--up-left .bn-note-text{padding-left:36px}.bn-note--down-right .bn-note-text,.bn-note--up-right .bn-note-text{padding-right:36px}.bn-cat{width:var(--bn-cat-w,220px);flex:none;align-self:flex-start;height:max-content;margin:0;position:relative}.bn-cat img{z-index:1;mix-blend-mode:multiply;filter:brightness(1.025);clip-path:ellipse(54% 56% at 50% 52%);width:100%;height:auto;display:block;position:relative}.bn-cat-blot{z-index:0;position:absolute;inset:16% -10% 4%}.bn-cat-shadow{z-index:0;height:12%;position:absolute;bottom:-3%;left:15%;right:15%}.bn-cat-empty{aspect-ratio:1;font:600 22px / 1 var(--font-hand);color:var(--ink-faint);place-items:center;display:grid}.bn-cat-note{z-index:2;width:max-content;position:absolute;top:2%;right:88%}.bn-case{min-width:0;color:var(--ink-text);transition:transform .22s var(--bn-ease);flex-direction:column;gap:8px;padding:16px 16px 20px;text-decoration:none;display:flex}a.bn-case:hover{transform:translateY(-3px)rotate(-.4deg)}.bn-case-cover{aspect-ratio:16/9;margin:4px 4px 10px;display:block;position:relative}.bn-case-cover img,.bn-case-cover-empty{object-fit:cover;border-radius:var(--radius-control);background:var(--tech-surface);width:100%;height:100%;display:block;position:relative}.bn-case-title{font:700 17px / 1.3 var(--font-sans);color:var(--ink-text);text-wrap:balance}.bn-case-tagline{font:400 13.5px / 1.45 var(--font-sans);color:var(--ink-dim)}.bn-case-stack{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.bn-article{border-bottom:1px solid var(--rule);color:var(--ink-text);grid-template-columns:32px minmax(0,1fr);align-items:start;gap:16px;padding:18px 4px;text-decoration:none;display:grid}.bn-article-mark{width:18px;height:18px;margin:20px 0 0 14px;display:block}.bn-article-body{flex-direction:column;gap:6px;min-width:0;display:flex}.bn-article-title{font:700 19px / 1.3 var(--font-sans);color:var(--ink-text);text-wrap:balance;flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.bn-article-desc{max-width:65ch;font:400 15px / 1.55 var(--font-sans);color:var(--ink-dim)}.bn-article .bn-hl--underline>.bn-art{opacity:0;transition:opacity .2s var(--bn-ease)}a.bn-article:hover .bn-hl--underline>.bn-art{opacity:1}.bn-article.is-soon .bn-article-title{color:var(--ink-dim)}.bn-article-soon{font-size:11px}.bn-sidenav ol{flex-direction:column;align-items:flex-end;gap:0;margin:0;padding:0;list-style:none;display:flex}.bn-sidenav a{min-height:36px;font:500 11px / 1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);transition:color .2s var(--bn-ease);align-items:center;gap:10px;padding:4px 2px;text-decoration:none;display:inline-flex}.bn-sidenav a:hover,.bn-sidenav a[aria-current]{color:var(--ink)}.bn-sidenav-dot{width:14px;height:14px;transition:transform .2s var(--bn-ease);flex:none;display:block}.bn-sidenav a:hover .bn-sidenav-dot{transform:scale(1.2)}.bn-hero{isolation:isolate;box-sizing:border-box;color:var(--ink-text);text-align:center;padding:clamp(24px,5vw,64px) clamp(16px,3vw,48px);position:relative}.bn-hero-body{z-index:1;flex-direction:column;align-items:center;gap:clamp(12px,2.2vh,22px);width:100%;min-width:0;max-width:60rem;margin:0 auto;display:flex;position:relative}.bn-hero-name{font:800 clamp(2.4rem, 8vw, 6.8rem) / .98 var(--font-sans);letter-spacing:-.035em;color:var(--ink);text-wrap:balance;margin:0}.bn-hero-role{font:600 clamp(1.05rem, 2.2vw, 1.6rem) / 1.3 var(--font-sans);color:var(--ink-text);margin:0}.bn-hero-pitch{max-width:44ch;font:400 clamp(1rem, 1.8vw, 1.4rem) / 1.5 var(--font-sans);color:var(--ink-dim);text-wrap:balance;margin:0}.bn-hero-directions,.bn-hero-contacts{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.bn-hero-exits{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.bn-blot-layer{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.bn-blot-layer-item{display:block;position:absolute!important}.bn-above{z-index:1;position:relative}.bn-badge{isolation:isolate;box-sizing:border-box;min-height:42px;font:500 13px / 1.2 var(--font-mono);letter-spacing:.04em;color:var(--ink-text);white-space:nowrap;transition:transform .2s var(--bn-ease);align-items:center;gap:8px;padding:8px 16px 8px 13px;text-decoration:none;display:inline-flex;position:relative}a.bn-badge:hover{transform:scale(1.05)rotate(-1deg)}.bn-badge-icon{color:var(--marker);flex:none;display:block}a.bn-badge:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:999px}.bn-chip-logo{flex:none;width:15px;height:15px;display:block}.bn-chip--logo{gap:7px;padding:5px 11px 5px 9px}.bn-techlogo{line-height:0;display:inline-block}.bn-techstack{flex-wrap:wrap;justify-content:center;gap:8px;max-width:46rem;margin:0;padding:0;list-style:none;display:flex}.bn-theme-toggle{isolation:isolate;width:44px;height:44px;color:var(--marker);cursor:pointer;transition:transform .2s var(--bn-ease);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.bn-theme-toggle:hover{transform:rotate(-12deg)scale(1.06)}.bn-theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:999px}.bn-theme-toggle-icon{display:block}.bn-lang{font:500 12px / 1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:4px 14px;display:inline-flex}.bn-lang-item{min-height:44px;color:var(--ink-faint);align-items:center;padding:0 2px;text-decoration:none;display:inline-flex}a.bn-lang-item:hover,.bn-lang-item.is-current{color:var(--ink)}.bn-lang-item[lang=zh],.bn-lang-item[lang=ar]{font-family:var(--font-sans);letter-spacing:0;text-transform:none;font-size:13px}a.bn-lang-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-control)}.bn-kicker:lang(ar){font:500 clamp(13px, 1.2vw, 15px) / 1.5 var(--font-sans);letter-spacing:0;text-transform:none}.bn-btn--exit:lang(ar){font:600 15px / 1.4 var(--font-sans);letter-spacing:0;text-transform:none}.bn-lang:lang(ar){letter-spacing:.06em}.bn-hero-name:lang(ar){letter-spacing:0}[dir=rtl] .bn-btn--exit .bn-icon svg{transform:scaleX(-1)}.bn-cat-dock{z-index:40;width:var(--bn-dock-w,clamp(92px, 13vw, 190px));pointer-events:none;transition:opacity .25s var(--bn-ease), visibility 0s linear 0s;position:fixed;bottom:0;left:clamp(2px,1.2vw,18px)}.bn-cat-dock.is-tucked{opacity:0;visibility:hidden;transition:opacity .25s var(--bn-ease), visibility 0s linear .25s}@media (width<=340px) and (height<=600px){.bn-cat-dock{display:none}}.bn-cat-dock .bn-cat{--bn-cat-w:100%;width:100%!important}.bn-cat-dock .bn-cat-shadow{bottom:0}[data-theme=dark] .bn-cat-blot{display:none}[data-theme=dark] .bn-cat:before{content:"";z-index:0;background:var(--cat-ground);border-radius:54% 46% 52% 48%/50% 53% 47% 50%;position:absolute;inset:-9% -11% -12%}.bn-cat-shadow{--marker:var(--cat-ink)}@media (prefers-reduced-motion:reduce){.bn-btn,.bn-case,.bn-sidenav-dot,.bn-chip--button,.bn-badge,.bn-theme-toggle,.bn-cat-dock{transition-duration:.01ms!important}.bn-btn:hover,.bn-btn:active,a.bn-case:hover,a.bn-badge:hover,.bn-theme-toggle:hover,.bn-sidenav a:hover .bn-sidenav-dot{transform:none}.bn-ticker{-webkit-mask-image:none;mask-image:none}.bn-ticker-track{flex-wrap:wrap;flex:auto;justify-content:center;gap:8px;padding:0;animation:none}.bn-ticker-track[aria-hidden]{display:none}}@page{size:A4;margin:0}@media print{html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#18181b!important;background:#fff!important;margin:0!important;padding:0!important}body.cv-page,.cv-root{background:#fff!important}body:has(.print-doc) [data-screen-root],.no-print{display:none!important}.print-only{display:block!important}.print-doc{box-sizing:border-box;color:#18181b;--accent:#34485e;--accent-print-1:color-mix(in srgb, var(--accent) 65%, black);--accent-print-2:color-mix(in srgb, var(--accent) 52%, black);background:#fff;width:210mm;min-height:0;padding:12mm 11mm 6mm;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:9pt;line-height:1.4}.print-doc *{box-sizing:border-box}.print-doc a{color:inherit;text-decoration:none}.pd-grid{grid-template-columns:64mm 1fr;align-items:start;gap:8mm;display:grid}.pd-side,.pd-side-sect,.pd-job-block.is-parallel{break-inside:avoid;page-break-inside:avoid}.pd-side{border-right:.2mm solid #e4e4e7;padding-right:7mm}.pd-portfolio{background:color-mix(in srgb, var(--accent) 6%, white);border:.25mm solid color-mix(in srgb, var(--accent) 52%, white);break-inside:avoid;border-radius:2mm;align-items:stretch;gap:3mm;margin-bottom:4mm;padding:3mm;display:flex}.pd-portfolio .pd-qr-wrap{border:.2mm solid color-mix(in srgb, var(--accent) 29%, white);background:#fff;border-radius:1.5mm;flex-shrink:0;width:28mm;height:28mm;padding:1mm}.pd-portfolio .pd-qr-wrap svg{width:100%;height:100%;display:block}.pd-portfolio-meta{flex-direction:column;justify-content:center;gap:.6mm;min-width:0;display:flex}.pd-portfolio-label{text-transform:uppercase;letter-spacing:.14em;color:var(--accent-print-1);font-size:6.6pt;font-weight:600}.pd-portfolio-url{color:var(--accent-print-2);word-break:break-all;font-family:Geist Mono,monospace;font-size:8.4pt;font-weight:600;line-height:1.25}.pd-portfolio-scan{color:var(--accent-print-1);margin-top:.4mm;font-size:6.8pt}.pd-side-sect{break-inside:avoid;page-break-inside:avoid;margin-bottom:5mm}.pd-side-h{text-transform:uppercase;letter-spacing:.14em;color:#71717a;border-bottom:.15mm solid #e4e4e7;margin:0 0 2.2mm;padding-bottom:1mm;font-size:7pt;font-weight:600}.pd-contact-list{margin:0;padding:0;font-size:8.4pt;line-height:1.45;list-style:none}.pd-contact-list li{word-break:break-all;align-items:baseline;gap:2mm;margin-bottom:1mm;display:flex}.pd-c-label{width:4mm;color:var(--accent);text-align:center;flex-shrink:0;font-size:8pt}.pd-skillgroup{margin-bottom:2mm}.pd-skill-cat{color:#18181b;margin-bottom:.4mm;font-size:7.4pt;font-weight:600}.pd-skill-line{color:#3f3f46;font-size:8pt;line-height:1.4}.pd-edu-row{margin-bottom:2.5mm}.pd-edu-degree{color:#18181b;font-size:8.6pt;font-weight:600}.pd-edu-school{color:#52525b;font-size:7.8pt;line-height:1.35}.pd-edu-period{color:#71717a;margin-top:.2mm;font-family:Geist Mono,monospace;font-size:7.4pt}.pd-lang-row{justify-content:space-between;align-items:baseline;gap:2mm;margin-bottom:1.4mm;display:flex}.pd-lang-name{color:#18181b;font-size:8.4pt;font-weight:500}.pd-lang-level{color:#71717a;text-align:right;font-family:Geist Mono,monospace;font-size:7.4pt}.pd-main{min-width:0}.pd-head{border-bottom:.4mm solid #18181b;margin-bottom:4mm;padding-bottom:3mm}.pd-name{letter-spacing:-.025em;color:#0a0a0c;margin:0 0 1.5mm;font-size:22pt;font-weight:600;line-height:1}.pd-role{color:#27272a;letter-spacing:-.005em;margin-bottom:1.5mm;font-size:11.5pt}.pd-status-line{color:var(--accent-print-1);letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:1.8mm;font-family:Geist Mono,monospace;font-size:8.4pt;display:flex}.pd-status-dot{background:var(--accent);border-radius:99px;width:1.6mm;height:1.6mm;display:inline-block}.pd-sep{color:#a1a1aa}.pd-url{color:var(--accent-print-2);font-weight:600}.pd-sect{margin-bottom:4mm}.pd-sect:last-child,.pd-main>:last-child,.pd-job-block:last-child{margin-bottom:0}.pd-sect-h{break-after:avoid;page-break-after:avoid;text-transform:uppercase;letter-spacing:.14em;color:#71717a;border-bottom:.15mm solid #e4e4e7;margin:0 0 2.2mm;padding-bottom:1mm;font-size:7.4pt;font-weight:600;position:relative}.pd-sect-h:before{content:"";background:var(--accent);width:6mm;height:.4mm;position:absolute;bottom:-.15mm;left:0}.pd-summary{color:#27272a;margin:0;font-size:9pt;line-height:1.45}.pd-job{break-inside:avoid;page-break-inside:avoid;border-bottom:.15mm dashed #e4e4e7;margin-bottom:2.6mm;padding-bottom:2.2mm}.pd-job:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.pd-job-head{justify-content:space-between;align-items:baseline;gap:4mm;margin-bottom:.8mm;display:flex}.pd-job-title{flex:1;min-width:0;font-size:10pt}.pd-job-role{color:#0a0a0c;letter-spacing:-.005em;font-weight:600}.pd-job-sep{color:#a1a1aa}.pd-job-company{color:var(--accent-print-1);font-weight:600}.pd-job-meta{color:#71717a;text-align:right;max-width:46mm;font-family:Geist Mono,monospace;font-size:7.6pt}.pd-job-dates{white-space:nowrap}.pd-job-engagement{text-transform:uppercase;letter-spacing:.12em;color:var(--accent-print-1);margin-top:.4mm;font-size:6.6pt;display:block}.pd-job-block.is-parallel{margin-bottom:3.2mm;padding-left:3mm;position:relative}.pd-job-block.is-parallel:before{content:"";background:var(--accent);border-radius:99px;width:.5mm;position:absolute;top:.6mm;bottom:2mm;left:0}.pd-job-block-caption{text-transform:uppercase;letter-spacing:.14em;color:var(--accent-print-1);margin-bottom:1mm;font-family:Geist Mono,monospace;font-size:6.8pt}.pd-job.is-compact .pd-job-compact-line{color:#3f3f46;margin:0 0 1mm;font-size:8.2pt;line-height:1.4}.pd-job-summary{color:#3f3f46;margin:0 0 1mm;font-size:8.6pt;line-height:1.4}.pd-job-bullets{margin:0 0 1mm;padding:0;list-style:none}.pd-job-bullets li{color:#27272a;margin-bottom:.4mm;padding-left:3.6mm;font-size:8.5pt;line-height:1.4;position:relative}.pd-job-bullets li:before{content:"";background:var(--accent);border-radius:99px;width:1.2mm;height:1.2mm;position:absolute;top:1.7mm;left:.6mm}.pd-job-stack{color:#52525b;font-family:Geist Mono,monospace;font-size:7.6pt;line-height:1.4}.pd-stack-label{color:#a1a1aa;margin-right:1mm}.pd-stack-items{color:#3f3f46}html[dir=rtl] .print-doc{direction:rtl}html[dir=rtl] .pd-side{border-left:.2mm solid #e4e4e7;border-right:0;padding-left:7mm;padding-right:0}html[dir=rtl] .pd-sect-h:before{left:auto;right:0}html[dir=rtl] .pd-job-bullets li{padding-left:0;padding-right:3.6mm}html[dir=rtl] .pd-job-bullets li:before{left:auto;right:.6mm}html[dir=rtl] .pd-portfolio-url,html[dir=rtl] .pd-edu-period,html[dir=rtl] .pd-job-dates{direction:ltr;unicode-bidi:isolate}html[dir=rtl] .pd-job-meta{text-align:left}html[dir=rtl] .pd-job-block.is-parallel{padding-left:0;padding-right:3mm}html[dir=rtl] .pd-job-block.is-parallel:before{left:auto;right:0}}@media screen{.print-only{display:none!important}}html{background:var(--paper);color-scheme:light;-webkit-text-size-adjust:100%}html[data-theme=dark]{color-scheme:dark}body.bn-page{background:var(--paper);color:var(--ink-text);font-family:var(--font-sans);margin:0;line-height:1.5}:where(.bn-page) a{color:var(--ink)}:where(.bn-page) a:hover{color:var(--marker)}.bn-page :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.bn-site{isolation:isolate;background:var(--paper);min-height:100dvh;position:relative;overflow-x:clip}.bn-site>.bn-blot-layer{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.bn-skip{z-index:50;inset-inline-start:12px;border-radius:var(--radius-control);background:var(--ink);padding:10px 14px;position:absolute;top:-60px;color:var(--on-ink)!important}.bn-skip:focus{top:12px}.bn-header{z-index:1;box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:8px clamp(16px,3vw,48px);display:flex;position:relative}.bn-logo{font:800 19px/1 var(--font-sans);letter-spacing:-.02em;padding:12px 0;text-decoration:none;color:var(--ink)!important}.bn-header-tools{flex-wrap:wrap;align-items:center;gap:8px 22px;display:flex}.bn-header-nav{font:500 12px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:20px;display:flex}.bn-header-nav a{color:var(--ink-faint);padding:14px 0;text-decoration:none}.bn-header-nav a[aria-current=page],.bn-header-nav a:hover{color:var(--ink)}:lang(zh) .bn-header-nav,:lang(ar) .bn-header-nav{font:500 15px/1.3 var(--font-sans);letter-spacing:0;text-transform:none}.bn-main{z-index:1;box-sizing:border-box;padding:clamp(24px,6vh,72px) clamp(16px,3vw,48px) clamp(120px,18vh,180px);position:relative}.bn-main--wide{padding-inline:0}:root{--bn-toggle-fill:var(--blot-cream)}html[data-theme=dark]{--bn-toggle-fill:var(--blot-sky)}.bn-theme-icon--moon,html[data-theme=dark] .bn-theme-icon--sun{display:none}html[data-theme=dark] .bn-theme-icon--moon{display:inline-flex}@media (width<=600px){.bn-header-nav{display:none}.bn-logo{font-size:18px}}@media (width<=340px){.bn-header{padding-inline:14px}.bn-logo{font-size:17px}.bn-header-tools{flex-basis:100%;justify-content:space-between}}@media print{.no-print,.bn-header,.bn-site>.bn-blot-layer,bulnik-cat{display:none!important}}html:not([lang=ar]) .bn-lang-item[lang=ar]{font-family:Tahoma,Geeza Pro,system-ui,sans-serif}
