@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/20aee433927f7d4b-s.3x137p1ifayze.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/256e1f7f180674ba-s.1x971o6gwfy6w.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/be3bf58b83159894-s.1ri8jgkzoo1l-.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/753b6407f468151f-s.1veyi_qwtij86.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/292081311a6a8abc-s.1t-2a-g4m3ypx.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/68d403cf9f2c68c5-s.p.20at88_q9f_kt.woff2)format("woff2");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:"Source Serif 4 Fallback";src:local(Times New Roman);ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.0%;size-adjust:117.91%}.source_serif_4_9295f7df-module__rvHaAW__className{font-family:"Source Serif 4","Source Serif 4 Fallback";font-style:normal}.source_serif_4_9295f7df-module__rvHaAW__variable{--font-serif:"Source Serif 4", "Source Serif 4 Fallback"}
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.contents{display:contents}}:root{--background:#fff;--foreground:#222;--muted:#666;--accent:#2f4a6e;--border:#ddd;--surface:#f5f5f5;--placeholder:#eee;--heart:#c45d7a;--content-width:46rem}[data-theme=dark]{--background:#111;--foreground:#d6d6d6;--muted:#888;--accent:#8fb4d9;--border:#333;--surface:#1a1a1a;--placeholder:#1a1a1a;--heart:#d4849a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font-family:var(--font-serif), Georgia, "Times New Roman", serif;-webkit-font-smoothing:antialiased;min-height:100vh;font-size:.9375rem;line-height:1.55;position:relative}a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){a{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent)}}a{text-underline-offset:2px}a:hover{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.text-muted{color:var(--muted)}.site-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.site-bg-art{filter:blur(var(--bg-blur,28px));position:absolute;inset:-25%;overflow:hidden;transform:scale(1.05)}.site-bg-image{transform-origin:50%;filter:saturate(1.35)contrast(.88)brightness(1.06);background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.15)}.site-bg-canvas{z-index:1;opacity:.35;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.site-bg-tint{z-index:2;background:linear-gradient(155deg, var(--accent), var(--heart) 45%, var(--background));position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.site-bg-tint{background:linear-gradient(155deg, color-mix(in srgb, var(--accent) 14%, transparent), color-mix(in srgb, var(--heart) 10%, transparent) 45%, color-mix(in srgb, var(--background) 20%, transparent))}}.site-bg-tint{mix-blend-mode:multiply}.site-bg-wash{z-index:3;background:var(--background);opacity:var(--bg-wash,.88);position:absolute;inset:0}[data-theme=dark] .site-bg-image{filter:saturate(1.15)contrast(.9)brightness(.72)}[data-theme=dark] .site-bg-canvas{opacity:.2;mix-blend-mode:overlay}[data-theme=dark] .site-bg-tint{mix-blend-mode:soft-light;background:linear-gradient(155deg, var(--accent), var(--heart) 50%, var(--background))}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .site-bg-tint{background:linear-gradient(155deg, color-mix(in srgb, var(--accent) 18%, transparent), color-mix(in srgb, var(--heart) 12%, transparent) 50%, color-mix(in srgb, var(--background) 30%, transparent))}}[data-theme=dark] .site-bg-wash{opacity:var(--bg-wash,.9)}.site-container{z-index:1;max-width:calc(var(--content-width) + 4rem);min-height:100vh;margin:0 auto;padding:1.5rem 1.25rem 3rem;position:relative}.site-card{max-width:var(--content-width);background:var(--background);border-radius:14px;margin:0 auto;padding:2rem 2rem 3.25rem}@supports (color:color-mix(in lab, red, red)){.site-card{background:color-mix(in srgb, var(--background) 84%, transparent)}}.site-card{-webkit-backdrop-filter:blur(16px)saturate(1.15);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.site-card{border:1px solid color-mix(in srgb, var(--border) 55%, transparent)}}.site-card{box-shadow:0 8px 32px #0000000f,inset 0 1px #ffffff80}[data-theme=dark] .site-card{background:var(--background)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .site-card{background:color-mix(in srgb, var(--background) 76%, transparent)}}[data-theme=dark] .site-card{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .site-card{border-color:color-mix(in srgb, var(--border) 70%, transparent)}}[data-theme=dark] .site-card{box-shadow:0 8px 40px #0006,inset 0 1px #ffffff0a}.site-nav{justify-content:flex-end;align-items:center;margin-bottom:1.75rem;padding:0;display:flex}.site-nav-inner{align-items:center;gap:1.25rem;display:flex}.site-nav-links{gap:1rem;font-size:.85rem;display:flex}.site-nav-links a{color:var(--muted);text-decoration:none}.site-nav-links a:hover{color:var(--foreground);text-decoration:none}.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.theme-toggle:hover{color:var(--accent)}.site-intro{align-items:center;gap:1.25rem;margin-bottom:2rem;display:flex}.profile-photo{object-fit:cover;border-radius:3px;flex-shrink:0;width:5.5rem;height:5.5rem}.profile-photo-placeholder{background:var(--placeholder);border:1px solid var(--border)}.site-intro-text{min-width:0}.site-name{letter-spacing:-.01em;margin:0 0 .2rem;font-size:1.35rem;font-weight:600;line-height:1.3}.site-tagline{color:var(--muted);margin:0;font-size:.9rem;line-height:1.45}.status-weather{white-space:nowrap}.site-section{margin-bottom:2rem}.site-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .65rem;font-size:.75rem;font-weight:600}.site-section p{margin:0 0 .5rem}.site-section p:last-child{margin-bottom:0}.site-recently{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}@supports (color:color-mix(in lab, red, red)){.site-recently{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent)}}.site-recently-label{color:var(--muted);margin:0 0 .5rem;font-size:.8rem;font-weight:500}.site-recently-list{margin:0;padding:0;list-style:none}.site-recently-item{color:var(--muted);margin-bottom:.35rem;font-size:.8125rem;line-height:1.5}.site-recently-item:last-child{margin-bottom:0}.site-recently-date{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.site-recently-date{color:color-mix(in srgb, var(--muted) 85%, var(--foreground))}}.site-recently-sep{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.site-recently-sep{color:color-mix(in srgb, var(--muted) 60%, transparent)}}.site-blank-entry{min-height:1.25rem}.site-template,.site-template a{color:var(--muted);font-style:italic}.research-list{margin:0;padding:0;list-style:none}.research-item{margin-bottom:.5rem;line-height:1.5}.research-item:last-child{margin-bottom:0}.research-title{font-weight:600}.research-sep,.research-description{color:var(--muted)}.experience-list{margin:0;padding:0;list-style:none}.experience-item{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.75rem}.experience-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.experience-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.experience-role{font-size:.9rem;font-weight:600}.experience-dates{color:var(--muted);white-space:nowrap;font-size:.8rem}.experience-org{color:var(--muted);margin-bottom:.15rem;font-size:.85rem}.experience-description{color:var(--muted);margin:0;font-size:.875rem}.post-list{margin:0;padding:0;list-style:none}.post-item{margin-bottom:.85rem}.post-item:last-child{margin-bottom:0}.post-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.post-title{color:var(--foreground);font-size:.9rem;font-weight:600;text-decoration:none}.post-title:hover{color:var(--accent);text-decoration:underline}.post-date{color:var(--muted);white-space:nowrap;font-size:.8rem}.project-links{white-space:nowrap;gap:.85rem;display:flex}.project-links a{font-size:.8rem}.post-excerpt{color:var(--muted);margin:.2rem 0 0;font-size:.85rem;line-height:1.45}.view-all-link{margin-top:.85rem;font-size:.85rem;text-decoration:none;display:inline-block}.view-all-link:hover{text-decoration:underline}.contact-icons{flex-wrap:wrap;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.contact-icon-link{color:var(--muted);justify-content:center;align-items:center;line-height:0;text-decoration:none;transition:color .15s;display:flex}.contact-icon-link:hover{color:var(--accent);text-decoration:none}.writing-header{margin-bottom:1.5rem}.writing-header h1{margin:0 0 .35rem;font-size:1.25rem;font-weight:600}.writing-header p{color:var(--muted);margin:0;font-size:.875rem}.post-page-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.25rem}.post-page-header h1{margin:0 0 .35rem;font-size:1.25rem;font-weight:600;line-height:1.35}.post-page-meta{color:var(--muted);margin:0;font-size:.85rem}.back-link{color:var(--muted);margin-bottom:2rem;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--foreground);text-decoration:underline}.prose{font-size:.9375rem}.prose h2{margin:1.75rem 0 .5rem;font-size:1.1rem;font-weight:600}.prose h3{margin:1.25rem 0 .4rem;font-size:1rem;font-weight:600}.prose p{margin:0 0 .75rem}.prose ul,.prose ol{margin:0 0 .75rem;padding-left:1.35rem}.prose li{margin-bottom:.25rem}.prose blockquote{border-left:2px solid var(--border);color:var(--muted);margin:.75rem 0;padding-left:.85rem;font-size:.9rem}.prose code{background:var(--surface);border-radius:3px;padding:.1em .3em;font-family:ui-monospace,Cascadia Code,Source Code Pro,monospace;font-size:.85em}.prose pre{background:var(--surface);border-radius:4px;margin:0 0 .75rem;padding:.85rem;font-size:.85rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose a{color:var(--accent)}@media (max-width:600px){.site-container{padding:.75rem .75rem 2rem}.site-card{border-radius:12px;padding:1.5rem 1.25rem 2.5rem}.experience-header,.post-header{flex-direction:column;gap:.1rem}.experience-dates,.post-date{white-space:normal}}
