.ps-button__material{position:absolute;inset:0;overflow:hidden;isolation:isolate;border:1px solid color-mix(in srgb,var(--ps-line) 75%,transparent);border-radius:inherit;background:var(--ps-surface);box-shadow:inset 0 1px 2px #ffffff6b,0 2px 4px -3px #152c1e33;pointer-events:none;transition:transform .16s var(--ps-ease)}.ps-button__lights{position:absolute;inset:-40% -10%;opacity:.58;pointer-events:none}.ps-button__light{position:absolute;width:100%;height:125%;top:-10%;left:-28%;background:radial-gradient(ellipse at center,var(--ps-material-light, #b8e89d) 0%,color-mix(in srgb,var(--ps-material-light, #b8e89d) 78%,transparent) 26%,color-mix(in srgb,var(--ps-material-light, #b8e89d) 28%,transparent) 50%,transparent 73%);transform:rotate(-21deg)}.ps-button__light+.ps-button__light{width:80%;height:120%;top:6%;left:42%;background:radial-gradient(ellipse at center,var(--ps-material-deep, #74bda8) 0%,color-mix(in srgb,var(--ps-material-deep, #74bda8) 76%,transparent) 27%,color-mix(in srgb,var(--ps-material-deep, #74bda8) 22%,transparent) 51%,transparent 73%);transform:rotate(24deg)}.ps-button__frost{position:absolute;inset:0;background:linear-gradient(153deg,color-mix(in srgb,var(--ps-surface) 35%,transparent),color-mix(in srgb,var(--ps-surface) 7%,transparent) 55%,color-mix(in srgb,var(--ps-ground) 20%,transparent))}.ps-button__frost:after{position:absolute;inset:0;content:"";opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:150px 150px}.ps-button__pulse{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--ps-material-light, #b8e89d) 65%,white),transparent 76%);transition:opacity .16s var(--ps-ease)}.ps-button__material[data-pressed=true]{transform:scale(.97,.94)}.ps-button__material[data-pressed=true] .ps-button__pulse{opacity:.45}.ps-button__content{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:9px;pointer-events:none}.ps-button.ps-button--primary{color:#10251b}.ps-button--primary .ps-button__material{border-color:color-mix(in srgb,var(--ps-material-deep, #74bda8) 36%,var(--ps-line));background:color-mix(in srgb,var(--ps-material-light, #b8e89d) 68%,#dceecf)}.ps-button--primary .ps-button__lights{opacity:.95}.ps-button--secondary .ps-button__lights,.ps-button--quiet .ps-button__lights{opacity:.2}.ps-button--secondary .ps-button__material[data-pressed=true] .ps-button__pulse,.ps-button--quiet .ps-button__material[data-pressed=true] .ps-button__pulse{opacity:.08}.ps-button--quiet .ps-button__material{opacity:0;box-shadow:none}.ps-button--quiet .ps-button__material[data-pressed=true]{opacity:1}@media(hover:hover)and (pointer:fine){.ps-button--quiet:not(:disabled):hover .ps-button__material{opacity:.8}}@media(prefers-reduced-motion:reduce){.ps-button__material,.ps-button__pulse{transition:none}.ps-button__material[data-pressed=true]{transform:none}}.ps-topic-filter{margin-bottom:22px}.ps-archive-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.ps-article .ps-archive-title{margin:0}.ps-topic-filter-toggle{flex:none;min-height:44px;border:0;padding:0;background:transparent;color:var(--ps-muted);font:400 12px / 1.3 var(--ps-font);text-decoration:underline;text-underline-offset:.25em}.ps-topic-filter-options{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:12px}.ps-topic-filter-options[hidden]{display:none}.ps-topic-filter-option{min-height:36px;max-width:100%;padding:6px 0;border:0;border-radius:0;background:transparent;color:var(--ps-muted);font:var(--ps-body-weight) var(--ps-body-size) / 1.55 var(--ps-font);text-align:left;text-underline-offset:.25em;text-decoration-thickness:1px;overflow-wrap:anywhere}.ps-topic-filter-option[aria-pressed=true]{font-weight:700;color:var(--ps-text);text-decoration:underline}.ps-topic-filter-status{margin-top:2px!important}@media(hover:hover)and (pointer:fine){.ps-topic-filter-option:hover{color:var(--ps-text);text-decoration:underline}}@media(pointer:coarse){.ps-topic-filter-option{min-height:44px}}.ps-personal-home{width:fit-content;max-width:100%;margin-inline:auto}.ps-home-identity+.ps-home-section{margin-top:36px}.ps-personal-home .ps-link{transition:color .2s ease}.ps-personal-home .ps-identity-name{display:inline-block}.ps-personal-home .ps-socials .ps-link{display:inline-flex}.ps-personal-home .ps-home-section .ps-link{position:relative;width:fit-content;max-width:100%}.ps-personal-home .ps-home-section :is(h1,h2) .ps-link{display:inline-block}.ps-personal-home .ps-home-section .ps-link:before{content:"";position:absolute;inset-inline:0;bottom:5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ps-ease);pointer-events:none}.ps-personal-home .ps-home-section :is(h1,h2) .ps-link:before{bottom:-3px}.ps-personal-home .ps-home-section .ps-link:after{content:"→" / "";position:absolute;left:calc(100% + 8px);top:50%;font:14px/1 var(--ps-font);opacity:0;transform:translate(-2px,-50%);transition:opacity .2s ease,transform .2s var(--ps-ease);pointer-events:none}@media(hover:hover)and (pointer:fine){.ps-personal-home .ps-link:hover{text-decoration:none;color:var(--ps-accent)}.ps-personal-home .ps-home-section .ps-link:hover:before{transform:scaleX(1)}.ps-personal-home .ps-home-section .ps-link:hover:after{opacity:1;transform:translateY(-50%)}}.ps-personal-home .ps-home-section .ps-link:focus-visible:before{transform:scaleX(1);transition:none}.ps-personal-home .ps-home-section .ps-link:focus-visible:after{opacity:1;transform:translateY(-50%);transition:none}@media(prefers-reduced-motion:reduce){.ps-personal-home .ps-link:before,.ps-personal-home .ps-link:after{transition:none}}.ps-living-background{position:fixed;inset:0;z-index:0;overflow:hidden;isolation:isolate;contain:paint;background:var(--ps-ground, #edf0e7);pointer-events:none;user-select:none}.ps-living-background__light{position:absolute;width:min(112vw,1440px);height:min(110vh,960px);pointer-events:none}.ps-living-background__light--1{top:12%;left:88%;background:radial-gradient(ellipse at center,var(--ps-mist-citron, rgb(201 232 157 / 62%)) 0%,color-mix(in srgb,var(--ps-mist-citron, rgb(201 232 157 / 62%)) 70%,transparent) 29%,transparent 72%)}.ps-living-background__light--2{top:50%;left:0;background:radial-gradient(ellipse at center,var(--ps-mist-sea, rgb(150 210 188 / 43%)) 0%,color-mix(in srgb,var(--ps-mist-sea, rgb(150 210 188 / 43%)) 72%,transparent) 30%,transparent 73%)}.ps-living-background__light--3{top:91%;left:69%;background:radial-gradient(ellipse at center,var(--ps-mist-silver, rgb(246 250 224 / 76%)) 0%,color-mix(in srgb,var(--ps-mist-silver, rgb(246 250 224 / 76%)) 70%,transparent) 30%,transparent 73%)}.ps-living-background__grain{position:absolute;inset:0;opacity:var(--ps-grain-opacity, .12);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23g)' opacity='.55' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px;mix-blend-mode:soft-light;pointer-events:none}.ps-page-transition{position:relative;min-width:0}@media(prefers-reduced-motion:reduce){.ps-page-transition{opacity:1!important;transform:none!important}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,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(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-cyrillic-ext-wght-normal-BUDPrIko.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-cyrillic-wght-normal-HUlVHixE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-greek-wght-normal-BJJTbwTT.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-vietnamese-wght-normal-DlC-zuDL.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-latin-ext-wght-normal-QAYlOegK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-latin-wght-normal-CZtBPCCa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ps-root .ps-surface{background:linear-gradient(150deg,color-mix(in srgb,var(--ps-raised) 88%,transparent),color-mix(in srgb,var(--ps-surface) 82%,transparent));box-shadow:0 18px 44px -34px color-mix(in srgb,var(--ps-text) 45%,transparent),inset 0 1px color-mix(in srgb,var(--ps-raised) 85%,transparent)}.ps-root .ps-code{border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--ps-surface) 90%,var(--ps-material-light) 10%),color-mix(in srgb,var(--ps-hover) 80%,var(--ps-material-deep) 20%));box-shadow:inset 0 1px color-mix(in srgb,var(--ps-raised) 65%,transparent),0 12px 30px -28px color-mix(in srgb,var(--ps-text) 40%,transparent)}.ps-root .ps-media-body{border-radius:18px;background:linear-gradient(155deg,color-mix(in srgb,var(--ps-ground) 80%,var(--ps-material-light) 20%),var(--ps-hover));box-shadow:inset 0 1px 6px color-mix(in srgb,var(--ps-text) 8%,transparent)}.ps-root .ps-notice{border-radius:12px;background:color-mix(in srgb,var(--ps-material-light) 16%,var(--ps-surface))}.ps-root .ps-notice--error{background:color-mix(in srgb,var(--ps-danger) 9%,var(--ps-surface))}.ps-root .ps-article blockquote{border-radius:18px;background:color-mix(in srgb,var(--ps-material-light) 14%,var(--ps-surface))}.ps-root{--ps-ground: #edf0e7;--ps-surface: #f5f8ef;--ps-raised: #fbfdf7;--ps-text: #253029;--ps-muted: #59665c;--ps-faint: #69766b;--ps-line: #cbd7c7;--ps-accent: #3d6650;--ps-accent-ink: #f7fff0;--ps-accent-soft: #dcebcf;--ps-hover: #e0e9d9;--ps-danger: #a33d31;--ps-focus: #3d6650;--ps-material-light: #b8e89d;--ps-material-deep: #74bda8;--ps-mist-citron: rgb(201 232 157 / 62%);--ps-mist-sea: rgb(150 210 188 / 43%);--ps-mist-silver: rgb(246 250 224 / 76%);--ps-grain-opacity: .12;--ps-body-size: 14px;--ps-body-weight: 400;--ps-font: "Inter Variable", Inter, sans-serif;--ps-mono: "Roboto Mono Variable", monospace;--ps-space-1: 4px;--ps-space-2: 8px;--ps-space-3: 12px;--ps-space-4: 16px;--ps-space-5: 24px;--ps-space-6: 32px;--ps-space-7: 48px;--ps-space-8: 72px;--ps-radius: 22px;--ps-control-radius: 12px;--ps-ease: cubic-bezier(.23, 1, .32, 1);--ps-ease-in-out: cubic-bezier(.77, 0, .175, 1);--ps-ease-entry: cubic-bezier(.16, 1, .3, 1);--ps-home-enter: .6s;--ps-home-stagger: 50ms;--ps-page-enter: var(--ps-home-enter);--ps-page-stagger: var(--ps-home-stagger);--ps-page-exit: .18s;color-scheme:light;color:var(--ps-muted);font-family:var(--ps-font);font-size:var(--ps-body-size);font-weight:var(--ps-body-weight);line-height:1.55;font-synthesis:none;text-rendering:optimizeLegibility}.ps-root[data-theme=dark]{--ps-ground: #152019;--ps-surface: #202d23;--ps-raised: #2a3a2d;--ps-text: #edf3e4;--ps-muted: #b1c3ae;--ps-faint: #a2b69f;--ps-line: #3a513d;--ps-accent: #c2e9a1;--ps-accent-ink: #1c2a20;--ps-accent-soft: #354732;--ps-hover: #2c3d2e;--ps-danger: #f1a18d;--ps-focus: #c2e9a1;--ps-mist-citron: rgb(126 157 68 / 27%);--ps-mist-sea: rgb(76 142 112 / 25%);--ps-mist-silver: rgb(143 165 108 / 8%);--ps-grain-opacity: .085;color-scheme:dark}.ps-root *,.ps-root *:before,.ps-root *:after{box-sizing:border-box}.ps-root ::selection{background:var(--ps-accent-soft);color:var(--ps-text)}.ps-root :where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ps-focus);outline-offset:4px}.ps-root :where(button,input,select,textarea){font:inherit;color:inherit}.ps-root :where(button,a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ps-root :where(button){cursor:pointer}.ps-root :where(button:disabled){cursor:not-allowed}.ps-root :where(input,textarea){caret-color:var(--ps-accent)}.ps-root :where(h1,h2,h3,p,figure,blockquote){margin:0}.ps-root :where(h1,h2,h3){text-wrap:balance;color:var(--ps-text)}.ps-root :where(a){color:inherit}.ps-root *{scrollbar-color:var(--ps-line) var(--ps-ground);scrollbar-width:thin}@media(prefers-reduced-motion:reduce){.ps-root *,.ps-root *:before,.ps-root *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.ps-link{text-decoration:none;text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .14s var(--ps-ease)}.ps-link:hover{text-decoration:underline;color:var(--ps-accent)}.ps-link--muted{color:var(--ps-muted)}.ps-link--accent{color:var(--ps-accent)}.ps-external{margin-left:.35em;font-size:.8em;display:inline-block}.ps-button{position:relative;isolation:isolate;border:0;border-radius:var(--ps-control-radius);padding:11px 17px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:500;text-decoration:none;background:transparent;color:var(--ps-text)}.ps-button:disabled{opacity:.5}.ps-article a.ps-button{text-decoration:none}.ps-article a.ps-button--primary,.ps-article a.ps-button--primary:hover{color:#10251b}.ps-button[aria-busy=true]{opacity:.8}.ps-spinner{width:13px;height:13px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ps-spin .9s linear infinite}@keyframes ps-spin{to{transform:rotate(1turn)}}.ps-identity{display:flex;align-items:center;gap:18px;min-width:0}.ps-avatar-link{display:block;flex:none;border-radius:50%}.ps-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--ps-hover);overflow:hidden;font-size:17px;color:var(--ps-muted)}.ps-avatar img{width:100%;height:100%;object-fit:cover;display:block}.ps-identity-copy{min-width:0}.ps-identity .ps-identity-heading{display:flex;margin:0;font-size:inherit;font-weight:inherit;line-height:1.2}.ps-identity-name{display:inline-block;font-size:24px;font-weight:500;letter-spacing:-.035em;line-height:1.2}.ps-caption{font:400 12px / 1.3 var(--ps-font);color:var(--ps-muted)}.ps-identity-subtitle{margin-top:2px!important}.ps-identity--compact{gap:13px}.ps-identity--compact .ps-avatar{width:44px;height:44px}.ps-identity--compact .ps-identity-name{font-size:18px;letter-spacing:-.025em}.ps-content-list{list-style:none;padding:0;margin:0;display:grid;gap:25px}.ps-content-list-title{display:block}.ps-content-list>li{display:grid;grid-template-columns:minmax(0,1fr)}.ps-content-list--markers>li{grid-template-columns:18px minmax(0,1fr);column-gap:8px}.ps-content-list-body{grid-column:-2 / -1;min-width:0}.ps-content-list-title>a{font-size:16px;font-weight:500;line-height:1.45;letter-spacing:0;color:var(--ps-text)}.ps-content-list time{display:block;margin-top:8px;font-family:var(--ps-mono);font-size:11px;white-space:nowrap;color:var(--ps-muted)}.ps-content-list p{color:var(--ps-muted);font-size:14px;max-width:58ch;margin-top:8px!important}.ps-list-meta{display:block;font-family:var(--ps-mono);font-size:11px;color:var(--ps-muted);margin-top:10px}.ps-content-list--compact{gap:3px}.ps-content-list--compact.ps-content-list--markers>li{grid-template-columns:1em minmax(0,1fr);column-gap:.45em}.ps-content-list--compact .ps-content-list-title>a{font-size:var(--ps-body-size);font-weight:var(--ps-body-weight);line-height:inherit;color:var(--ps-muted);letter-spacing:0;min-height:32px;display:flex;align-items:center}.ps-content-list--compact .ps-content-list-title{display:block}.ps-content-list-title>a.ps-content-list-link{display:inline-flex;align-items:baseline;min-width:0}.ps-content-list>li>.ps-list-icon{margin-top:.3em}.ps-content-list-label{min-width:0;overflow-wrap:anywhere}.ps-list-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1em;height:1em;font-size:1em;line-height:1;vertical-align:-.1em}.ps-list-icon img{display:block;width:100%;height:100%;object-fit:contain}.ps-socials{display:flex;flex-wrap:wrap;align-items:center;gap:8px 23px;font-family:var(--ps-mono);font-size:11px}.ps-socials a{display:inline-flex;align-items:center;min-height:36px}.ps-socials .ps-external{display:none}.ps-surface{background:var(--ps-surface);border-radius:var(--ps-radius);padding:28px}.ps-empty{font-size:14px;color:var(--ps-muted);padding:16px 0}.ps-notice{font-size:14px;background:var(--ps-hover);padding:13px 16px;border-radius:9px;color:var(--ps-muted)}.ps-notice--error{color:var(--ps-danger);background:var(--ps-accent-soft)}.ps-code{background:var(--ps-hover);border-radius:12px;overflow:hidden}.ps-code figcaption{padding:11px 18px;display:flex;justify-content:space-between;align-items:center;font:11px var(--ps-mono);color:var(--ps-muted)}.ps-code figcaption button{font:inherit;background:none;border:0;text-decoration:underline;text-underline-offset:3px;min-height:28px;cursor:pointer}.ps-code pre{padding:6px 18px 20px;overflow:auto;margin:0;font:13px/1.7 var(--ps-mono);tab-size:2}.ps-code code{font:inherit}.ps-copy-status{font-size:12px!important;color:var(--ps-muted);padding:0 18px 14px}.ps-article{max-width:70ch;font-size:var(--ps-body-size);font-weight:var(--ps-body-weight);color:var(--ps-muted);line-height:1.75}.ps-article h1{font-size:36px;line-height:1.14;letter-spacing:-.035em;font-weight:500;margin-bottom:24px}.ps-article h2{font-size:25px;line-height:1.3;letter-spacing:-.025em;margin:36px 0 15px;font-weight:500}.ps-article h3{font-size:19px;line-height:1.4;margin:28px 0 12px;font-weight:500}.ps-article p+p{margin-top:18px}.ps-article a{color:var(--ps-muted);text-underline-offset:4px}.ps-article a:hover{color:var(--ps-accent)}.ps-article ul,.ps-article ol{padding-left:22px;margin:16px 0}.ps-article li{margin:7px 0}.ps-article .ps-content-list{padding:0;margin:0}.ps-article .ps-content-list>li{margin:0}.ps-article blockquote{padding:20px 24px;background:var(--ps-hover);border-radius:12px;margin:24px 0;font-size:var(--ps-body-size);line-height:1.75}.ps-article :not(pre)>code{font-family:var(--ps-mono);font-size:.85em;background:var(--ps-hover);padding:.15em .35em;border-radius:4px}.ps-article .ps-code{margin:24px 0}.ps-media-body{background:var(--ps-hover);border-radius:14px;overflow:hidden;aspect-ratio:16/10;display:grid;place-items:center}.ps-media--square .ps-media-body{aspect-ratio:1}.ps-media figcaption{font-family:var(--ps-mono);font-size:11px;color:var(--ps-muted);margin-top:12px}.ps-media-status{font-size:14px;color:var(--ps-muted);text-align:center;padding:24px;max-width:100%}.ps-media-status .ps-button{margin-top:10px}.ps-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ps-personal-home{max-width:560px;margin:0 auto;padding:6px 0}.ps-personal-home .ps-identity-name{font-size:22px;letter-spacing:-.03em}.ps-home-section{margin-top:28px}.ps-home-section :is(h1,h2){font-size:16px;font-weight:500;font-family:var(--ps-mono);line-height:1.5}.ps-home-subitems{padding-left:18px;margin-top:8px}.ps-home-more{font-size:12px;display:inline-flex;align-items:center;min-height:32px;margin-top:2px}.ps-home-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;border-top:1px solid var(--ps-line);padding-top:8px;margin-top:40px}.ps-home-footer .ps-socials{gap:8px 20px}.ps-language-switch{display:inline-flex;flex:none;align-items:center;justify-content:center;padding:0;min-width:24px;min-height:44px;border:0;border-radius:0;background:transparent;color:var(--ps-muted);font:400 11px / 1.3 var(--ps-font);text-underline-offset:.25em}@media(max-width:600px){.ps-identity{gap:14px}.ps-identity-name{font-size:20px}.ps-avatar{width:48px;height:48px}.ps-surface{padding:22px}.ps-article h1{font-size:28px}.ps-article h2{font-size:23px}}@media(pointer:coarse){.ps-content-list--compact .ps-content-list-title>a,.ps-socials a{min-height:44px}}html{scroll-behavior:auto;background:#edf0e7}html[data-theme=dark]{background:#152019;color-scheme:dark}body{margin:0}button,a,input,select,textarea{touch-action:manipulation}img,video{max-width:100%}.ps-root{min-height:100vh;min-height:100dvh}.site-shell{position:relative;z-index:1;min-height:100vh;min-height:100dvh;background:transparent}#main-content:focus{outline:none}.skip-link{position:fixed;z-index:100;top:0;left:20px;transform:translateY(-150%);background:var(--ps-accent);color:var(--ps-accent-ink);padding:10px 14px;border-radius:0 0 8px 8px}.skip-link:focus{transform:none}.site-preview{max-width:700px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;margin:auto;padding:48px 32px}.site-preview--home{max-width:624px;padding-block:32px}.page-back-links{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-back-main{display:flex;align-items:center;flex-wrap:wrap;gap:0 20px;min-width:0}.page-back-links>.ps-language-switch{margin-left:auto}.site-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px;color:var(--ps-muted);text-decoration:none}.ps-article>h1{margin-bottom:24px}.document-description{margin-bottom:24px}.post-meta{font:11px/1.6 var(--ps-mono);display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 28px!important;color:var(--ps-muted)}.markdown-content>p+p{margin-top:18px}.markdown-content>p{overflow-wrap:anywhere}.markdown-section-title{margin:36px 0 15px}.markdown-content>.ps-code{margin:24px 0}.markdown-list{list-style:none;padding:0!important;margin:16px 0}.markdown-list-item{display:flex;gap:10px;align-items:baseline;margin:7px 0}.markdown-list-marker{flex:none;min-width:12px}.markdown-quote{margin:24px 0;padding:20px 24px;border-radius:18px;background:color-mix(in srgb,var(--ps-material-light) 14%,var(--ps-surface))}.type-body,.card-summary{font:var(--ps-body-weight) var(--ps-body-size) / 1.75 var(--ps-font);color:var(--ps-muted)}.type-caption,.type-eyebrow,.card-meta,.card-period{font:11px/1.6 var(--ps-mono);color:var(--ps-muted)}.post-feed{margin-top:0}.post-detail-media{margin:28px 0}.post-detail-image,.post-detail-video-image{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;border-radius:18px}.post-detail-video-preview{position:relative;display:block;border-radius:18px;overflow:hidden;background:var(--ps-hover)}.post-detail-video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#0003;color:#fff}.post-detail-media-label{font-size:13px}.post-media-caption{font:11px/1.6 var(--ps-mono);color:var(--ps-muted);margin-top:12px}.post-detail-video-link{display:flex;align-items:center;gap:12px;padding:30px 20px;border-radius:18px;background:var(--ps-hover)}.native-project-media{width:min(1100px,calc(100vw - 48px));max-width:none;margin:28px 0 28px calc((100% - min(1100px,calc(100vw - 48px)))/2)}.native-project-loading{height:600px;display:grid;place-items:center;background:var(--ps-surface);border-radius:18px}.card{margin:24px 0;padding:0 0 24px;border-bottom:1px solid var(--ps-line);color:var(--ps-muted);font:var(--ps-body-weight) var(--ps-body-size) / 1.75 var(--ps-font);background:none}.card-stack{display:flex;flex-direction:column;gap:16px}.card-stack-tight{display:flex;flex-direction:column;gap:6px}.ps-article .card-stack-tight>p,.ps-article .hero-card-content>p{margin:0}.experience-details>summary{display:flex;align-items:center;gap:7px;width:fit-content;min-height:44px;list-style:none;cursor:pointer;color:var(--ps-muted);font:var(--ps-body-weight) var(--ps-body-size) / 1.6 var(--ps-font)}.experience-details>summary::-webkit-details-marker{display:none}.experience-details[open]>summary svg{transform:rotate(90deg)}.experience-details>.markdown-list{margin:8px 0 0}.card-heading{color:var(--ps-text);font-weight:500;letter-spacing:-.025em}h1.card-heading-page{font-size:32px;line-height:1.2;margin:0}.ps-article h3.card-heading-card{font-size:20px;line-height:1.35;margin:0}.card-title{font-size:14px;line-height:1.6}.card-subtitle-row,.card-subtitle-line{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.card-separator{display:none}.card-subtitle-lines{display:flex;flex-direction:column;gap:4px}.card-subtitle{font-size:14px}.hero-card{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:22px;border:0;padding:0;margin:0 0 32px}.hero-card-content{flex:1;min-width:0}.hero-card-media{width:64px;flex:none}.hero-card-image{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover}.hero-action-list{display:flex;flex-wrap:wrap;gap:14px}.hero-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:var(--ps-body-weight) var(--ps-body-size) / 1.6 var(--ps-font);color:var(--ps-muted);text-decoration:underline;text-underline-offset:4px}.ps-article .hero-contact-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px 20px;margin:0}.ps-article .hero-contact-item{display:flex;align-items:center;gap:7px;min-width:0;margin:0}.hero-contact-item a{font:var(--ps-body-weight) var(--ps-body-size) / 1.6 var(--ps-font);color:var(--ps-muted);overflow-wrap:anywhere}.hero-contact-item svg{flex:none;width:14px}.skill-group{margin:24px 0}.skill-group>.type-eyebrow{margin-bottom:10px}.chip-list{display:flex;flex-wrap:wrap;gap:8px 16px}.chip{font-size:13px;color:var(--ps-muted)}.ui-text-muted{color:var(--ps-muted)}@media(max-width:720px){.site-preview{padding:24px}.site-preview--home{padding-block:24px}.site-preview--home .ps-identity-name{font-size:20px}.site-preview--home .ps-identity{gap:12px}.site-preview--home .ps-avatar{width:44px;height:44px}.page-back-links{gap:12px}.hero-card{gap:14px}.hero-card-media,.hero-card-image{width:48px;height:48px}h1.card-heading-page{font-size:26px;overflow-wrap:anywhere}.native-project-media{width:100%;margin-left:0}.post-meta{font-size:10px}.ps-article .hero-contact-list{display:flex;flex-direction:column;gap:8px}.post-detail-video-overlay{flex-direction:column}}@media(max-height:720px){.site-preview--home{padding-block:16px}.site-preview--home .ps-home-section,.site-preview--home .ps-home-identity+.ps-home-section{margin-top:20px}.site-preview--home .ps-home-footer{margin-top:24px}}@media(max-height:440px){.site-preview--home{padding-block:8px}.site-preview--home .ps-avatar{width:44px;height:44px}.site-preview--home .ps-home-section,.site-preview--home .ps-home-identity+.ps-home-section{margin-top:8px}.site-preview--home .ps-home-subitems{margin-top:4px}.site-preview--home .ps-content-list--compact .ps-content-list-title>a,.site-preview--home .ps-socials a,.site-preview--home .ps-language-switch{min-height:32px}.site-preview--home .ps-home-footer{margin-top:8px;padding-top:4px}}
