@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.dGlmfG_className{font-family:Inter,Inter Fallback;font-style:normal}.dGlmfG_variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/faab88e4be272d29-s.3zhtymus0wdqb.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a45aa1001bf9176f-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41ba59f553543ecf-s.1da667lu-u79a.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/67bba87670b402d1-s.1i05ju5aeyhye.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d6c1ff7e86974212-s.p.1dgcou5jor5q_.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/49b1d53681a91a99-s.31-2bzhq1gx_9.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/123d516c9baeb953-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a74d2542cc4c775f-s.2taws-qdxmzlf.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7ac0b1cd3e695dd0-s.0htwiiqufp3l9.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/916cd8a3bde3edf8-s.p.28xcb7557rbh2.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.XOyWia_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.XOyWia_variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--default-font-family:var(--font-inter);--default-mono-font-family:var(--font-plex-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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);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, )}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1012;--surface:#17191d;--surface-strong:#191d23;--ink:#e5e8ed;--ink-soft:#b8c1cc;--muted:#8290a0;--line:#262a30;--line-strong:#333942;--accent:#a9c7e8;--accent-strong:#c6dcf4;--route:#d9825b;--route-strong:#e9a17d;--code-bg:#15171a;--diagram-border:#44546a;--shell:770px;--gutter:24px;--sans:var(--font-inter), "Helvetica Neue", Arial, sans-serif;--mono:var(--font-plex-mono), ui-monospace, monospace}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfbfa;--surface:#f2f2f0;--surface-strong:#ededeb;--ink:#191b1f;--ink-soft:#414855;--muted:#6b7382;--line:#e6e6e3;--line-strong:#cfcfca;--accent:#2f5f92;--accent-strong:#214a75;--route:#a9532b;--route-strong:#8a3f1d;--code-bg:#f1f1ef;--diagram-border:#a9b8c9}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg);scroll-padding-top:24px}body{background:var(--bg);min-height:100dvh;color:var(--ink-soft);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:1rem;line-height:1.65;display:flex}main{flex:1 0 auto}h1,h2,h3,h4{color:var(--ink);text-wrap:balance;margin:0;font-weight:500}p,ul,ol,blockquote,figure{margin:0}ul,ol{padding:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.shell{width:100%;max-width:var(--shell);padding:0 var(--gutter);margin:0 auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--bg);border:1px solid var(--accent);color:var(--ink);padding:8px 12px;font-size:13px;transition:transform .16s ease-out;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.meta{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);font-size:.75rem;line-height:1.5}.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color .14s ease-out,text-decoration-color .14s ease-out}.link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.link-quiet{color:var(--ink-soft);text-underline-offset:3px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .14s ease-out,text-decoration-color .14s ease-out}.link-quiet:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.home{padding-top:64px}.profile{align-items:flex-start;gap:30px;display:flex}.profile__photo{aspect-ratio:1;background:var(--surface);object-fit:cover;object-position:50% 42%;border-radius:15px;flex:none;width:190px;height:190px;display:block}.profile__body{min-width:0;padding-top:4px}.profile__name{color:var(--ink);letter-spacing:-.03em;font-size:1.875rem;font-weight:600;line-height:1.1}.profile__subtitle{color:var(--route);margin-top:8px;font-size:1.0625rem;font-weight:500;line-height:1.5}.profile__role{height:1.5em;color:var(--ink-soft);margin-top:1px;font-size:1.0625rem;line-height:1.5;position:relative;overflow:hidden}.profile__role-line{opacity:0;filter:blur(3px);white-space:nowrap;transition:opacity .36s ease-out,transform .36s cubic-bezier(.2,.7,.2,1),filter .36s ease-out;position:absolute;inset:0;transform:translateY(.55em)}.profile__role-line.is-active{opacity:1;filter:blur();transform:translateY(0)}.profile__role-line.is-leaving{opacity:0;filter:blur(3px);transform:translateY(-.55em)}.profile__context{max-width:46ch;color:var(--ink-soft);text-wrap:pretty;margin-top:12px;font-size:1rem;line-height:1.55}.profile__location{color:var(--muted);font-family:var(--sans);letter-spacing:0;margin-top:10px;font-size:.8125rem;line-height:1.5}.whoami{margin-top:42px}.prompt{color:var(--ink);font-family:var(--sans);letter-spacing:-.02em;font-size:2rem;font-weight:700;line-height:1.2}.prompt__mark{color:var(--ink)}.intro{max-width:68ch;color:var(--ink-soft);text-wrap:pretty;margin-top:15px;font-size:1.0625rem;line-height:1.6}.intro p+p{margin-top:1.1em}.intro strong{color:var(--ink);font-weight:500}.index-links{margin-top:22px}.index-links ul{gap:6px;list-style:none;display:grid}.index-links li{font-size:.9375rem;line-height:1.6}.index-links a{color:var(--ink-soft);transition:color .14s ease-out}.index-links__path{color:var(--route);font-family:var(--sans);text-decoration:underline;-webkit-text-decoration-color:var(--route);-webkit-text-decoration-color:var(--route);-webkit-text-decoration-color:var(--route);text-decoration-color:var(--route);font-weight:500}@supports (color:color-mix(in lab, red, red)){.index-links__path{-webkit-text-decoration-color:color-mix(in srgb, var(--route) 48%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--route) 48%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--route) 48%, transparent);text-decoration-color:color-mix(in srgb, var(--route) 48%, transparent)}}.index-links__path{text-underline-offset:3px;text-decoration-thickness:1px;transition:color .14s ease-out,text-decoration-color .14s ease-out}.index-links a:hover{color:var(--ink)}.index-links a:hover .index-links__path{color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);text-decoration-color:var(--route-strong)}.contact{margin-top:24px}.contact__label{color:var(--ink-soft);font-family:var(--sans);letter-spacing:0;font-size:.9375rem;line-height:1.6}.contact__links{flex-wrap:wrap;align-items:baseline;margin-top:6px;font-size:.9375rem;line-height:1.6;list-style:none;display:flex}.contact__links li{align-items:baseline;display:flex}.contact__links li:not(:last-child):after{content:"·";color:var(--muted);margin:0 8px}.contact__links a{color:var(--ink-soft);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color .14s ease-out,text-decoration-color .14s ease-out}.contact__links a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.site-footer{flex:none;padding:36px 0 28px}.site-footer__inner{color:var(--muted);font-family:var(--sans);letter-spacing:0;flex-direction:column;gap:2px;font-size:.8125rem;line-height:1.6;display:flex}.site-footer time,.site-footer__visits span{font-variant-numeric:tabular-nums}.site-footer a{transition:color .14s ease-out}.site-footer a:hover{color:var(--accent)}.theme-note--light,:root[data-theme=light] .theme-note--dark{display:none}:root[data-theme=light] .theme-note--light{display:inline}.lamp{z-index:40;cursor:pointer;background:0 0;border:0;width:56px;height:112px;padding:0;position:fixed;top:0;right:40px}.lamp__art{transform-origin:0 0;width:56px;height:112px;transition:transform .22s ease-out;display:block;position:absolute;top:0;left:0}.lamp__wire{background:var(--muted);width:1.5px;height:26px;margin-left:-.75px;position:absolute;top:0;left:50%}.lamp__shade{background:linear-gradient(#f8f8f6 0%,#e4e5e6 58%,#c6c9cd 100%);border-radius:28px 28px 5px 5px/34px 34px 5px 5px;width:56px;height:30px;position:absolute;top:22px;left:0;box-shadow:inset 0 -4px 7px #00000029,0 1px #fff3}:root[data-theme=light] .lamp__shade{box-shadow:inset 0 -4px 7px #00000024,0 8px 14px #191b1f1f}.lamp__bulb{background:#6d7178;border-radius:50%;width:11px;height:11px;margin-left:-5.5px;transition:background .22s ease-out,box-shadow .22s ease-out;position:absolute;bottom:-5px;left:50%}:root[data-theme=light] .lamp__bulb{background:#ffdaa1;box-shadow:0 0 6px 1px #ffc478b3,0 0 16px 5px #ffba6029}.lamp__cord{transform-origin:top;background:linear-gradient(#a9723a 0%,#d9a25a 100%);width:2px;height:52px;margin-left:-1px;transition:transform .22s ease-out;position:absolute;top:52px;left:50%}.lamp__knob{background:radial-gradient(circle at 34% 28%,#f3c684 0%,#cf9146 62%,#a86f2e 100%);border-radius:50%;width:13px;height:13px;margin-left:-6.5px;position:absolute;bottom:-6px;left:50%}.lamp:hover .lamp__cord{transform:translateY(4px)}.lamp:active .lamp__cord{transform:translateY(9px)}.lamp:hover .lamp__bulb{filter:brightness(1.05)}.page{padding:88px 0 96px}.page-intro{margin-bottom:48px;padding:0}.back-link{color:var(--muted);font-family:var(--mono);margin-bottom:30px;font-size:.75rem;transition:color .14s ease-out;display:inline-block}.back-link:hover{color:var(--accent)}.page-intro__title{letter-spacing:-.03em;max-width:26ch;font-size:clamp(2rem,4vw,2.5rem);font-weight:600;line-height:1.15}.page-intro__lede{max-width:62ch;color:var(--ink-soft);text-wrap:pretty;margin-top:16px;font-size:1rem;line-height:1.7}.page-intro__meta{margin-top:20px;font-size:.875rem}.page-body{padding-bottom:0}.project-list{gap:46px;display:grid}.project{gap:6px;display:grid}.project__index{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;font-size:.6875rem}.project__title{letter-spacing:-.015em;font-size:1.375rem;font-weight:500;line-height:1.3}.project__title a{transition:color .14s ease-out}.project__title a:hover{color:var(--accent)}.project__description{max-width:64ch;color:var(--ink-soft);text-wrap:pretty;margin-top:2px;font-size:.96875rem;line-height:1.7}.project__meta{color:var(--muted);font-family:var(--mono);margin-top:4px;font-size:.6875rem;line-height:1.6}.project__links{flex-wrap:wrap;gap:6px 18px;margin-top:4px;font-size:.875rem;display:flex}.entries{gap:38px;display:grid}.entry{gap:4px;display:grid}.entry__meta{color:var(--muted);font-family:var(--mono);letter-spacing:.03em;font-size:.6875rem}.entry__title{letter-spacing:-.01em;font-size:1.25rem;font-weight:500;line-height:1.35}.entry__title a{transition:color .14s ease-out}.entry__title a:hover{color:var(--accent)}.entry__detail{max-width:64ch;color:var(--ink-soft);text-wrap:pretty;font-size:.9375rem;line-height:1.65}.about-copy{max-width:66ch;color:var(--ink-soft);text-wrap:pretty;font-size:1rem;line-height:1.75}.about-copy p+p{margin-top:1em}.about-section{margin-top:54px}.about-section__heading{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:22px;font-size:.6875rem;font-weight:400}.role{gap:4px;display:grid}.role__meta{color:var(--muted);font-family:var(--mono);flex-wrap:wrap;gap:4px 14px;font-size:.6875rem;display:flex}.role__title{margin-top:4px;font-size:1.125rem;font-weight:500;line-height:1.35}.role__org{color:var(--ink-soft);font-size:.9375rem}.role__org a{color:var(--route);text-underline-offset:3px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .14s ease-out,text-decoration-color .14s ease-out}.role__org a:hover{color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);-webkit-text-decoration-color:var(--route-strong);text-decoration-color:var(--route-strong)}.role__summary{max-width:64ch;color:var(--ink-soft);margin-top:12px;font-size:.96875rem;line-height:1.7}.role__list{max-width:66ch;color:var(--ink-soft);margin-top:14px;padding-left:18px;font-size:.9375rem;line-height:1.7;list-style:outside}.role__list li+li{margin-top:7px}.role__list li::marker{color:var(--muted)}.role__stack{color:var(--muted);font-family:var(--mono);margin-top:16px;font-size:.6875rem;line-height:1.6}.timeline{border-left:1px solid var(--line);gap:42px;padding-left:26px;display:grid;position:relative}.timeline .role{position:relative}.timeline .role:before{content:"";border:1px solid var(--line-strong);background:var(--bg);border-radius:50%;width:9px;height:9px;position:absolute;top:5px;left:-31px}.timeline .role:first-child:before{border-color:var(--route);background:var(--route)}.timeline__note{color:var(--muted);margin-bottom:28px;font-size:.875rem;line-height:1.6}.toolkit{gap:10px;display:grid}.toolkit__row{color:var(--ink-soft);grid-template-columns:76px minmax(0,1fr);gap:16px;font-size:.9375rem;line-height:1.6;display:grid}.toolkit__label{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;font-size:.6875rem;line-height:1.8}.toolkit__value{margin:0}.elsewhere{flex-wrap:wrap;gap:6px 20px;font-size:.9375rem;list-style:none;display:flex}.case-study{padding-bottom:0}.case-study__details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--mono);gap:3px;padding:18px 0;font-size:.6875rem;line-height:1.65;display:grid}.case-study__details a{color:var(--ink-soft);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;margin-right:14px}.case-study__details a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.diagram{border-bottom:1px solid var(--line);margin:0;padding:26px 0}.diagram__bar{align-items:baseline;gap:12px;margin-bottom:18px;display:flex}.diagram__bar span{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.625rem}.diagram__lanes{gap:16px;display:grid}.diagram__lane{gap:7px;display:grid}.diagram__lane-label{color:var(--muted);font-family:var(--mono);letter-spacing:.02em;font-size:.625rem}.diagram__chain{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.diagram__chain-item{align-items:center;gap:6px;display:flex}.diagram__node{border:1px solid var(--line-strong);background:var(--surface);border-radius:4px;gap:1px;padding:7px 10px;display:inline-grid}.diagram__node-title{color:var(--ink);font-size:.8125rem;line-height:1.3}.diagram__node-meta{color:var(--muted);font-family:var(--mono);font-size:.5625rem;line-height:1.3}.diagram__node[data-emphasis=true]{border-color:var(--diagram-border);background:var(--surface-strong)}.diagram__arrow{color:var(--muted);font-size:.75rem}.diagram figcaption{max-width:68ch;color:var(--muted);font-family:var(--mono);margin-top:16px;font-size:.625rem;line-height:1.7}.prose{max-width:66ch;color:var(--ink-soft);padding-top:40px}.prose>*+*{margin-top:1.15em}.prose p,.prose li{font-size:1rem;line-height:1.75}.prose h2{letter-spacing:-.015em;margin-top:2.5em;margin-bottom:.1em;font-size:1.375rem;font-weight:500;line-height:1.3}.prose h3{margin-top:2em;margin-bottom:.1em;font-size:1.0625rem;font-weight:500;line-height:1.4}.prose ul,.prose ol{padding-left:20px}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:6px}.prose li::marker{color:var(--muted)}.prose blockquote{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);padding:16px 0;font-size:1.0625rem;line-height:1.65}.prose blockquote p{font-size:inherit;line-height:inherit}.note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.note__label{color:var(--muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:.625rem;display:block}.note p{font-size:.9375rem}.table-wrap{border-top:1px solid var(--line);overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 14px 9px 0;line-height:1.55}.prose thead th{color:var(--muted);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;font-size:.625rem;font-weight:400}.prose tbody th{color:var(--ink);font-weight:500}.code-block{border:1px solid var(--line);background:var(--code-bg);color:var(--ink-soft);font-family:var(--mono);padding:16px;font-size:.8125rem;line-height:1.65;overflow-x:auto}.case-study__foot{border-top:1px solid var(--line);gap:8px;margin-top:56px;padding-top:22px;font-size:.9375rem;display:grid}.case-study__next{color:var(--ink);font-size:1.0625rem;font-weight:500}.case-study__next:hover{color:var(--accent)}.not-found{padding:110px 0 120px}.not-found__title{letter-spacing:-.025em;max-width:20ch;font-size:clamp(1.75rem,3.4vw,2.25rem);font-weight:600;line-height:1.2}.not-found__lede{max-width:52ch;color:var(--ink-soft);margin-top:14px;font-size:1rem;line-height:1.7}.not-found__links{flex-wrap:wrap;gap:8px 20px;margin-top:24px;font-size:.9375rem;display:flex}@media (max-width:999px){.lamp{width:44px;height:52px;right:8px}.lamp__art{transform-origin:100% 0;left:auto;right:0;transform:scale(.42)}}@media (max-width:640px){:root{--gutter:20px}.home{padding-top:48px}.profile{flex-direction:column;gap:20px}.profile__photo{aspect-ratio:1;border-radius:15px;width:190px;height:190px}.profile__body{padding-top:0}.profile__name{font-size:1.75rem}.profile__role{margin-top:6px;font-size:1.0625rem}.profile__context{margin-top:10px;font-size:1rem;line-height:1.55}.profile__location{margin-top:9px}.whoami{margin-top:36px}.prompt{font-size:1.875rem}.intro{margin-top:13px;font-size:1.0625rem;line-height:1.6}.index-links{margin-top:22px}.contact{margin-top:24px}.site-footer{padding:34px 0 24px}.page{padding:56px 0 72px}.page-intro{margin-bottom:40px}.back-link{margin-bottom:24px}.project-list{gap:38px}.entries{gap:32px}.case-study{padding-bottom:72px}.diagram__node{padding:6px 8px}.toolkit__row{grid-template-columns:1fr;gap:1px}.toolkit__label{line-height:1.5}.not-found{padding:80px 0 96px}}@media (max-width:420px){.profile__context{max-width:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
