*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--paper: #fbfcfd;--surface: #f5f7f9;--surface-strong: #eef2f5;--ink: #24272c;--muted: #68707b;--faint: #939ba5;--line: #e1e6eb;--accent: #527897;--accent-strong: #3f6685;--accent-muted: #7893a8;--accent-soft: #edf3f7;--font-sans: "Century Gothic", "Aptos", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--card-radius: var(--radius-lg);--card-bg: #ffffff;--card-bg-hover: #fbfdff;--card-border: var(--line);--card-border-hover: #b9c8d4;--card-shadow: 0 1px 2px rgba(31, 43, 54, .025);--card-shadow-hover: 0 9px 24px rgba(31, 43, 54, .08);--panel-blue-bg: #f3f7fa;--panel-blue-border: #c7d8e5;--panel-blue-shadow: 0 8px 22px rgba(63, 102, 133, .1);--nav-shadow: 0 6px 20px rgba(72, 126, 171, .22);--nav-shadow-raised: 0 9px 26px rgba(72, 126, 171, .28);--card-lift: -4px;--section-gap: clamp(4rem, 7vw, 5.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--content-width: 88rem;--reading-width: 48rem}.dark{color-scheme:dark;--paper: #15181c;--surface: #1b1f24;--surface-strong: #222830;--ink: #e6e9ed;--muted: #a4acb6;--faint: #747f8b;--line: #303740;--accent: #8aacc7;--accent-strong: #aac4d8;--accent-muted: #6f8da5;--accent-soft: #202c36;--card-bg: #1b1f24;--card-bg-hover: #20262d;--card-border: #303740;--card-border-hover: #526575;--card-shadow: 0 1px 2px rgba(0, 0, 0, .12);--card-shadow-hover: 0 10px 26px rgba(0, 0, 0, .24);--panel-blue-bg: #1c2832;--panel-blue-border: #405b70;--panel-blue-shadow: 0 8px 24px rgba(8, 17, 25, .3);--nav-shadow: 0 7px 22px rgba(83, 137, 178, .24);--nav-shadow-raised: 0 9px 26px rgba(83, 137, 178, .32)}*{box-sizing:border-box}html{scroll-behavior:smooth;font-family:var(--font-sans);background:var(--paper)}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.2em}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;height:auto}::-moz-selection{background:color-mix(in srgb,var(--accent) 20%,transparent)}::selection{background:color-mix(in srgb,var(--accent) 20%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}pre,code{font-family:var(--font-mono)}pre{overflow-x:auto}table{display:block;width:100%;overflow-x:auto}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1rem;padding-left:1rem}@media(min-width:1024px){.container{max-width:1024px}}.prose{color:var(--tw-prose-body);max-width:100%}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.container{width:min(calc(100% - 2.5rem),var(--content-width));margin-inline:auto}.page-content{min-height:calc(100vh - 10rem);padding-block:clamp(7.5rem,10vw,9rem) clamp(2.75rem,7vw,5.5rem)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card{border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow)}.card-interactive{transform:translateY(0);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.card-interactive:hover,.card-interactive:focus-within{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.page-shell{display:grid;grid-template-columns:minmax(0,1fr) 15rem;align-items:start;gap:clamp(3rem,5vw,4.5rem)}.page-shell--single{grid-template-columns:minmax(0,1fr)}.page-shell__content{min-width:0}.page-shell__rail{min-width:0;align-self:stretch}.page-shell__rail-inner{position:sticky;top:6.75rem}.page-shell__sidebar-extra{margin-top:2rem;padding-top:2rem}.table-of-contents summary{margin-bottom:.85rem;color:var(--faint);font-family:var(--font-mono);font-size:calc(.66rem + 2px);font-weight:650;letter-spacing:.1em;list-style:none;text-transform:uppercase;cursor:default;pointer-events:none}.table-of-contents summary::-webkit-details-marker{display:none}.toc-list{display:grid;max-height:calc(100vh - 10rem);overflow:auto;gap:.2rem;margin:0;padding:0;list-style:none;scrollbar-width:thin}.toc-list a{display:block;border-left:2px solid transparent;border-radius:var(--radius-sm);padding:.48rem .65rem;color:var(--muted);font-size:calc(.76rem + 2px);line-height:1.45;text-decoration:none;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.toc-list a:hover{background:var(--surface);color:var(--ink)}.toc-list a.is-active{border-left-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:600}.toc-list .toc-subitem a{padding-left:1.15rem;font-size:calc(.71rem + 2px)}[id]{scroll-margin-top:6rem}.site-header{position:fixed;top:1rem;left:50%;z-index:50;width:min(calc(100% - 1rem),58rem);transform:translate(-50%);transition:width .28s cubic-bezier(.22,1,.36,1);pointer-events:none;will-change:width}.site-header[data-state=compact]{width:min(calc(100% - 3rem),48rem)}.site-nav{position:relative;width:100%;border:1px solid var(--card-border);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--card-bg) 94%,transparent);box-shadow:var(--nav-shadow);backdrop-filter:blur(12px);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;pointer-events:auto}.site-nav__content{position:relative;display:flex;width:min(calc(100% - 1.5rem),var(--content-width));min-height:4rem;align-items:center;justify-content:space-between;gap:2rem;margin-inline:auto;padding-block:.6rem}.site-header[data-scrolled=true] .site-nav{border-color:var(--card-border-hover);box-shadow:var(--nav-shadow-raised)}.dark .site-nav{background:color-mix(in srgb,var(--card-bg) 96%,transparent);box-shadow:var(--nav-shadow)}.dark .site-header[data-scrolled=true] .site-nav{box-shadow:var(--nav-shadow-raised)}.site-brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--ink);font-size:.94rem;font-weight:650;letter-spacing:-.01em;text-decoration:none}.brand-mark{display:block;width:1.75rem;height:1.75rem;overflow:hidden;flex:0 0 auto;border:1px solid var(--ink);border-radius:50%;background:var(--surface)}.brand-mark img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.navigation-shell{display:flex;align-items:center;gap:1.5rem}.nav-links{display:flex;align-items:center;gap:1.9rem}.nav-link{display:inline-flex;min-height:2.25rem;align-items:center;gap:.3rem;color:var(--muted);font-size:calc(.88rem + 2px);font-weight:550;text-decoration:none;transition:color .18s ease}.nav-link:hover,.nav-link.is-active{color:var(--ink)}.nav-link.is-active{text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:.42rem}.blog-menu{position:relative}.blog-menu:hover .blog-dropdown,.blog-menu:focus-within .blog-dropdown{visibility:visible;translate:0 0;opacity:1}.blog-dropdown{position:absolute;top:calc(100% + .35rem);left:-.7rem;width:11.5rem;visibility:hidden;translate:0 -.25rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);padding:.4rem;box-shadow:var(--card-shadow-hover);opacity:0;transition:opacity .16s ease,translate .16s ease,visibility .16s}.blog-dropdown a{display:block;border-radius:var(--radius-sm);padding:.48rem .65rem;color:var(--muted);font-size:calc(.82rem + 2px);text-decoration:none;transition:background .16s ease,color .16s ease}.blog-dropdown a:hover{background:var(--surface);color:var(--ink)}.nav-actions{display:flex;align-items:center;gap:.15rem;padding-left:1rem;border-left:1px solid var(--line)}.icon-button,.mobile-menu-button{display:grid;width:2.25rem;height:2.25rem;place-items:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background .16s ease,color .16s ease}.icon-button:hover,.mobile-menu-button:hover{background:var(--surface);color:var(--ink)}#themeToggle .moon,.dark #themeToggle .sun{display:none}.dark #themeToggle .moon{display:block}.mobile-menu-button{display:none}.eyebrow{margin:0 0 .8rem;color:var(--accent);font-family:var(--font-mono);font-size:.69rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase}.page-header{margin-bottom:clamp(3rem,8vw,5rem);padding-bottom:2rem}.page-header>h1,.page-header>h2{margin:0;font-size:1.7rem;font-weight:500;line-height:1.25;letter-spacing:-.035em}.page-header>p:last-child:not(.page-views){max-width:42rem;margin:1.35rem 0 0;color:var(--muted);font-size:1.03rem;line-height:1.85}.page-views{margin:.55rem 0 0;color:var(--muted);font-size:.92rem;font-style:italic;line-height:1.4}.home-profile-page{max-width:56rem}.home-profile-hero{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:clamp(3.5rem,8vw,5.5rem)}.home-avatar{width:9rem;height:9rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);-o-object-fit:cover;object-fit:cover;padding:.25rem}.home-identity{display:grid;gap:1rem}.home-identity h1{margin:0;font-size:clamp(1.9rem,5vw,2.35rem);font-weight:600;line-height:1;letter-spacing:-.035em}.home-badges{display:flex;max-width:31rem;flex-wrap:wrap;gap:.4rem}.home-badge{display:inline-flex;min-height:2.25rem;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:.42rem .7rem;color:var(--muted);font-size:.74rem;font-weight:550;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}a.home-badge:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--accent-soft);box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent);transform:translateY(-2px)}.home-profile-content{display:grid;gap:clamp(2.75rem,6vw,4rem)}.home-info-section{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1.5rem}.home-info-section>h2{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.025em}.home-section-body{min-width:0}.home-section-body>p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.85}.home-section-body>p+p{margin-top:.75rem}.home-section-body .home-role{color:var(--ink);font-weight:550}.home-more-link{display:flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:.55rem;margin:1rem 0 0 auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:.45rem .7rem;color:var(--muted);font-size:.74rem;font-weight:550;text-decoration:none;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.home-more-link:hover{border-color:var(--faint);background:var(--surface-strong);color:var(--ink);transform:translateY(-1px)}.home-education-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.home-education-card{height:100%;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow);padding:1.1rem 1.3rem;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.home-education-card:hover{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.home-education-card h3{margin:0;font-size:1rem;font-weight:600}.home-education-card p{margin:.25rem 0 0;color:var(--muted);font-size:.8rem}.home-education-card span{display:block;margin-top:.3rem;color:var(--faint);font-family:var(--font-mono);font-size:.64rem}.home-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.home-stat-card{display:flex;min-height:7.2rem;align-items:center;justify-content:center;flex-direction:column;gap:.2rem;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow);padding:.9rem;color:var(--muted);text-align:center;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.home-stat-card:hover{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.home-stat-card svg{margin-bottom:.25rem;color:var(--accent)}.home-stat-card strong{color:var(--ink);font-size:1.35rem;font-weight:650;line-height:1.1;transition:color .18s ease}.home-stat-card:hover strong{color:var(--accent)}.home-stat-card span{font-size:.72rem}.home-stat-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.85rem;font-size:.76rem}.home-stat-summary span{color:var(--muted)}.home-stat-summary strong{font-weight:550}.home-latest-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow);padding:1rem 1.2rem;text-decoration:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.home-latest-link:hover{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.home-latest-link strong,.home-latest-link small{display:block}.home-latest-link strong{font-size:.92rem;font-weight:600}.home-latest-link small{margin-top:.25rem;color:var(--muted);font-size:.75rem;line-height:1.6}.button{display:inline-flex;min-height:2.5rem;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-md);padding:.55rem .9rem;background:transparent;color:var(--ink);font-size:.84rem;font-weight:600;text-decoration:none;transition:border-color .17s ease,background .17s ease,color .17s ease,translate .17s ease}.button:hover{border-color:var(--muted);background:var(--surface);translate:0 -1px}.button.primary{border-color:var(--ink);background:var(--ink);color:var(--paper)}.button.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.content-section{padding-block:clamp(2.75rem,7vw,4.5rem)}.content-section>h2,.section-header h2{margin:0;font-size:clamp(1.6rem,4vw,2.15rem);font-weight:500;letter-spacing:-.035em}.blog-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1rem;color:var(--muted);font-size:.76rem}.blog-toolbar>p{margin:.3rem 0 0;white-space:nowrap}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.tag-link,.tag-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.22rem .48rem;color:var(--muted);font-size:.7rem;line-height:1.25;text-decoration:none}.tag-link{transition:border-color .16s ease,color .16s ease,background .16s ease}.tag-link:hover{border-color:var(--faint);background:var(--surface);color:var(--ink)}.year-group{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1.5rem;margin-bottom:1.5rem}.year-group>h2{margin:.55rem 0 0;color:var(--faint);font-family:var(--font-mono);font-size:.72rem;font-weight:500}.post-list{display:grid;gap:1rem}.post-item{position:relative;isolation:isolate;min-height:12.5rem;overflow:hidden;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow);transform:translateY(0);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.post-item:hover,.post-item:focus-within{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.post-cover{position:absolute;inset:0;z-index:-2}.post-cover:after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 34%,color-mix(in srgb,var(--paper) 88%,transparent) 58%,color-mix(in srgb,var(--paper) 34%,transparent) 100%)}.post-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;opacity:1;filter:saturate(.7) contrast(.92);transform:scale(1.001);transition:transform .4s ease,opacity .2s ease}.post-item:hover .post-cover img{opacity:.85;transform:scale(1.025)}.post-main{position:relative;z-index:1;max-width:72%;padding:1.5rem 1.75rem}.post-item:not(.has-cover) .post-main{max-width:none}.post-date{margin-bottom:.55rem;color:var(--faint);font-family:var(--font-mono);font-size:.68rem}.post-main h3{margin:0;font-size:clamp(1.05rem,3vw,1.25rem);font-weight:540;line-height:1.4;letter-spacing:-.02em}.post-main h3 a{text-decoration:none;transition:color .17s ease}.post-main h3 a:after{position:absolute;inset:0;content:""}.post-item:hover h3 a{color:var(--accent)}.post-main>p{margin:.6rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.75}.post-reading-time{display:flex;align-items:center;gap:.4rem;margin-top:.85rem;color:var(--muted);font-size:.75rem;font-style:italic}.post-meta{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:1rem;color:var(--faint);font-size:.68rem}.post-meta a{border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,transparent);padding:.28rem .62rem;text-decoration:none;transition:background .16s ease,border-color .16s ease,color .16s ease}.post-meta a:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--accent-soft);color:var(--accent)}.post-arrow{position:absolute;top:50%;right:1.4rem;z-index:2;color:var(--muted);font-size:1.75rem;line-height:1;transform:translateY(-50%);transition:color .18s ease,transform .18s ease}.post-item:hover .post-arrow{color:var(--accent);transform:translate(3px,-50%)}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.project-item{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding:1.5rem}.project-index{color:var(--faint);font-family:var(--font-mono);font-size:.7rem}.project-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.project-heading p{margin:0 0 .35rem;color:var(--faint);font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase}.project-heading h2{margin:0;font-size:1.45rem;font-weight:520;letter-spacing:-.03em}.project-heading>a{flex:none;border-bottom:1px solid var(--line);color:var(--muted);font-size:.76rem;text-decoration:none}.project-heading>a:hover{border-color:var(--accent);color:var(--accent)}.project-body>p{max-width:38rem;margin:1rem 0 1.25rem;color:var(--muted);font-size:.9rem;line-height:1.8}.project-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.project-links a{border-bottom:1px solid var(--line);color:var(--muted);font-size:.75rem;text-decoration:none}.project-links a:hover{border-color:var(--accent);color:var(--accent)}.empty-state{border-style:dashed;border-color:var(--card-border);border-radius:var(--card-radius);padding:clamp(2rem,7vw,4rem) 1.5rem;background:color-mix(in srgb,var(--surface) 58%,transparent);text-align:center}.empty-state>span{display:block;margin-bottom:.75rem;color:var(--faint);font-size:1.5rem}.empty-state h2{margin:0;font-size:1.35rem;font-weight:520}.empty-state p{max-width:30rem;margin:.75rem auto 0;color:var(--muted);font-size:.85rem}.text-section p,.contact-section>p{margin:1rem 0 0;color:var(--muted);line-height:1.9}.about-copy-card{margin-top:1.5rem!important;padding:1.35rem 1.5rem}.contact-copy{max-width:42rem;padding:0}.about-copy-card p{margin:0;color:var(--muted);line-height:1.9}.about-copy-card p+p{margin-top:.85rem}.about-content .page-header{margin-bottom:1rem;padding-bottom:0}.about-content .content-section{padding-block:1.75rem}.about-content .section-header{margin-bottom:1rem}.topic-list{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.5rem}.topic-list span{border:1px solid var(--card-border);border-radius:var(--radius-sm);background:var(--card-bg);padding:.525rem .8125rem;color:var(--muted);font-size:.975rem;line-height:1.4}.contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:1.25rem}.contact-links a{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.88rem;font-weight:550;text-decoration:none;transition:color .18s ease,transform .18s ease}.contact-links a:hover,.contact-links a:focus-visible{color:var(--accent);transform:translateY(-2px)}.contact-links svg{flex:0 0 auto}.link-list{display:grid;gap:.75rem;margin-top:1.75rem}.link-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);box-shadow:var(--card-shadow);color:var(--muted);font-size:.8rem;text-decoration:none;transform:translateY(0);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.link-list strong{color:var(--ink);font-weight:500}.link-list a:hover,.link-list a:focus-visible{border-color:var(--card-border-hover);background:var(--card-bg-hover);box-shadow:var(--card-shadow-hover);transform:translateY(var(--card-lift))}.link-list a:hover strong,.link-list a:focus-visible strong{color:var(--accent)}.academic-section{scroll-margin-top:5rem;padding-block:var(--section-gap)}.academic-section>h2{margin:0 0 1.5rem;font-size:1.7rem;font-weight:500;letter-spacing:-.035em}.academic-section>p{color:var(--muted);line-height:1.9}.academic-content .page-header{margin-bottom:0;padding-bottom:1.5rem}.academic-content .academic-section{padding-block:2.75rem}.academic-content .academic-section--intro{padding-top:1.5rem}.interest-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.interest-list article{min-height:11rem;padding:1.5rem}.interest-list h3{margin:0;font-size:.9rem;font-weight:550;line-height:1.45}.interest-list p{margin:.65rem 0 0;color:var(--muted);font-size:.74rem;line-height:1.65}.publication-item{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1.25rem;padding:clamp(1.5rem,4vw,2rem)}.publication-list{display:grid;gap:1.25rem}.publication-year{padding-top:.2rem;color:var(--faint);font-family:var(--font-mono);font-size:.68rem}.publication-status{display:inline-flex;margin-bottom:.65rem;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.15rem .38rem;color:var(--accent);font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase}.publication-item h3{margin:0;font-size:1.1rem;font-weight:560;line-height:1.5;letter-spacing:-.018em}.publication-item p{margin:.6rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.75}.publication-item .authors{color:var(--ink);font-size:.76rem}.publication-item .venue{color:var(--faint);font-family:var(--font-mono);font-size:.67rem}.publication-links{display:flex;gap:.9rem;margin-top:1rem}.publication-links a{border-bottom:1px solid var(--line);color:var(--ink);font-size:.72rem;text-decoration:none}.publication-links a:hover{border-color:var(--accent);color:var(--accent)}.article-main{min-width:0;overflow:hidden}.article-page{max-width:52rem}.article-header{margin-bottom:2.5rem;padding-bottom:2rem}.article-back{display:inline-block;margin-bottom:1.25rem;color:var(--muted)!important;font-size:.75rem;text-decoration:none!important}.article-header h1{margin:0!important;font-size:clamp(2.15rem,7vw,3.65rem)!important;font-weight:500!important;line-height:1.12!important;letter-spacing:-.045em}.article-description{margin:1.25rem 0 0!important;color:var(--muted);font-size:1rem;line-height:1.75}.article-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.25rem;color:var(--faint);font-family:var(--font-mono);font-size:.65rem}.article-meta a{color:inherit!important;text-decoration:none!important}.article-meta a:before{content:"#"}.article-cover{width:100%;margin-bottom:2rem;border:1px solid var(--line);border-radius:var(--radius-lg)}.about-the-author{padding:1rem}.prose{max-width:none;color:var(--ink);font-size:.96rem;line-height:1.85}.prose :where(h2,h3,h4){color:var(--ink);font-weight:550;letter-spacing:-.025em}.prose h2{margin-top:2.8em;font-size:1.65rem}.prose h3{margin-top:2.2em;font-size:1.3rem}.prose p,.prose li{color:color-mix(in srgb,var(--ink) 87%,var(--muted))}.prose a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}.prose blockquote{border-left-color:var(--line);color:var(--muted);font-style:normal}.prose code:not(pre code){border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:.1rem .3rem;color:var(--ink);font-size:.85em;font-weight:500}.prose pre{border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg)!important;box-shadow:var(--card-shadow)}.prose table{font-size:.84rem}.prose th,.prose td{border-color:var(--line)}.prose img{border-radius:var(--radius-lg)}.tag-directory{display:grid;gap:1rem}.tag-description{color:var(--muted);font-size:1.03rem}.tag-group{display:flex;gap:1rem;padding:1.25rem;text-transform:capitalize}.tag-letter{width:1.75rem;flex-shrink:0;margin:0;color:var(--ink);font-size:1.5rem;font-weight:700}.dark .prose{--tw-prose-body: var(--ink);--tw-prose-headings: var(--ink);--tw-prose-links: var(--accent);--tw-prose-bold: var(--ink);--tw-prose-counters: var(--muted);--tw-prose-bullets: var(--muted);--tw-prose-hr: var(--line);--tw-prose-quotes: var(--muted);--tw-prose-quote-borders: var(--line);--tw-prose-captions: var(--muted);--tw-prose-code: var(--ink);--tw-prose-pre-code: var(--ink);--tw-prose-pre-bg: var(--surface);--tw-prose-th-borders: var(--line);--tw-prose-td-borders: var(--line)}.site-footer{margin-top:1rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.5rem 2.25rem;color:var(--faint);font-size:.68rem}.footer-inner nav{display:flex;gap:1.25rem}.footer-inner a{text-decoration:none}.footer-inner a:hover{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.block{display:block}.flex{display:flex}.contents{display:contents}.h-12{height:3rem}.h-\[70px\]{height:70px}.h-\[90px\]{height:90px}.w-12{width:3rem}.w-\[70px\]{width:70px}.w-\[90px\]{width:90px}.shrink-0{flex-shrink:0}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:9999px}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.text-center{text-align:center}.text-5xl{font-size:3rem;line-height:1}.text-\[\.82rem\]{font-size:.82rem}.text-\[\.95rem\]{font-size:.95rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.leading-7{line-height:1.75rem}.leading-tight{line-height:1.25}.tracking-\[0\.08em\]{letter-spacing:.08em}.text-\[var\(--muted\)\]{color:var(--muted)}.text-inherit{color:inherit}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media(max-width:1024px){.page-shell{grid-template-columns:minmax(0,1fr);gap:2rem}.page-shell__rail{grid-row:1}.page-shell__content{grid-row:2}.page-shell__rail-inner{position:static}.table-of-contents{border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);box-shadow:var(--card-shadow)}.table-of-contents summary{position:relative;margin:0;padding:.8rem 2.5rem .8rem 1rem;cursor:pointer;pointer-events:auto}.table-of-contents summary:after{position:absolute;top:50%;right:1rem;content:"+";font-size:1rem;line-height:1;transform:translateY(-50%)}.table-of-contents[open] summary{background:var(--surface)}.table-of-contents[open] summary:after{content:"−"}.toc-list{max-height:15rem;padding:.55rem}.page-shell__sidebar-extra{display:none}}@media(max-width:720px){.container{width:min(calc(100% - 2rem),var(--content-width))}.page-content{padding-block:6.5rem 4rem}.site-header{top:.65rem;width:calc(100% - 1rem)}.site-header[data-state=compact]{width:calc(100% - 2rem)}.site-nav{border-radius:var(--radius-lg)}.site-nav__content{width:calc(100% - 1rem);min-height:3.5rem;padding-block:.45rem}.mobile-menu-button{display:grid}.navigation-shell{position:absolute;top:calc(100% + .5rem);right:0;left:0;display:none;align-items:stretch;border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--card-bg);padding:.75rem 1rem 1rem;box-shadow:var(--card-shadow-hover)}.navigation-shell.is-open{display:block}.nav-links{align-items:stretch;flex-direction:column;gap:0}.nav-link{width:100%;justify-content:space-between;padding:.45rem .25rem}.nav-link.is-active{text-decoration:none;color:var(--accent)}.blog-dropdown{position:static;width:100%;visibility:visible;translate:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0;border-left:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:none;opacity:1;margin:.15rem 0 .5rem .25rem;padding:0 0 0 .5rem}.nav-actions{margin-top:.5rem;padding:.5rem 0 0;border-left:0}.page-header{margin-bottom:3rem}.home-intro h1{font-size:clamp(2.65rem,13vw,4rem)}.home-profile-hero{align-items:center;flex-direction:column;text-align:center}.home-badges{justify-content:center}.home-info-section{grid-template-columns:1fr;gap:.8rem}.home-info-section>h2{padding-bottom:.65rem}.home-education-grid{grid-template-columns:1fr}.year-group{grid-template-columns:1fr;gap:.65rem}.year-group>h2{margin:0}.post-item{min-height:0}.post-main{max-width:none;padding:1.35rem}.post-cover{opacity:.32}.post-cover:after{background:linear-gradient(90deg,var(--paper),color-mix(in srgb,var(--paper) 78%,transparent))}.post-arrow{right:1rem}.project-item{grid-template-columns:2rem minmax(0,1fr);gap:.75rem}.project-heading{display:block}.project-heading>a{display:inline-block;margin-top:.8rem}.interest-list,.project-list{grid-template-columns:1fr}.publication-item{grid-template-columns:1fr;gap:.5rem}.education-row{grid-template-columns:1fr}}@media(max-width:430px){.container{width:min(calc(100% - 1.5rem),var(--content-width))}.site-nav__content{width:calc(100% - .5rem)}.blog-toolbar,.section-header,.footer-inner{align-items:flex-start;flex-direction:column}.project-item{grid-template-columns:1fr}.project-index{display:none}.link-list a{align-items:flex-start;flex-direction:column;gap:.2rem}.home-avatar{width:7.5rem;height:7.5rem}.home-stat-grid{grid-template-columns:1fr}.home-stat-card{min-height:6rem}.home-more-link{margin-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.card-interactive:hover,.card-interactive:focus-within,.post-item:hover,.post-item:focus-within,.link-list a:hover,.link-list a:focus-visible,.home-education-card:hover,.home-stat-card:hover,.home-latest-link:hover{transform:none!important}}.dark\:prose-invert:where(.dark,.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.hover\:text-\[var\(--link-color\)\]:hover{color:var(--link-color)}.prose-h1\:my-4 :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:1rem;margin-bottom:1rem}.prose-h1\:text-\[1\.9rem\]\/\[1\.2\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.9rem;line-height:1.2}.prose-h1\:font-\[750\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:750}.prose-h2\:mb-3 :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:.75rem}.prose-h2\:mt-10 :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:2.5rem}.prose-h2\:text-\[1\.75rem\]\/\[1\.28\] :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.75rem;line-height:1.28}.prose-h2\:font-bold :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:700}.prose-h3\:mb-2 :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:.5rem}.prose-h3\:mt-8 :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:2rem}.prose-h3\:text-\[1\.38rem\]\/\[1\.35\] :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.38rem;line-height:1.35}.prose-h3\:font-bold :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:700}.prose-h3\:target\:pt-24:target :is(:where(h3):not(:where([class~=not-prose],[class~=not-prose] *))){padding-top:6rem}.prose-h4\:mb-0 :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){margin-bottom:0}.prose-h4\:mt-5 :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:1.25rem}.prose-h4\:text-\[1\.14rem\]\/\[1\.45\] :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.14rem;line-height:1.45}.prose-h4\:font-bold :is(:where(h4):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:700}@media(min-width:640px){.sm\:prose-h1\:text-\[2\.45rem\]\/\[1\.22\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.45rem;line-height:1.22}}
