@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-outline-style:solid;--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;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-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-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-200:#e5e7eb;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.875rem;--text-xl:2.5rem;--radius-sm:2px;--radius-md:4px;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#17233a;--color-page:#edefea;--color-rubric:#a83a22;--color-margin:#5a6470;--color-rule:#d3d8d0;--color-field:#e3e6df;--color-ink-2:#2c3a52;--color-ink-3:#4b5768;--color-link:#8f2e1a;--color-rail:#17233a;--color-rail-ink:#edefea;--color-rail-muted:#c7cdd4;--color-rail-dim:#8f99a3;--color-rail-numeral:#838e9b;--color-rail-accent:#db6d51;--color-rail-line:#edefea33;--color-rail-border:#edefea47;--font-latin-heading:"Cormorant Garamond", "Cormorant Fallback", Georgia, serif;--font-latin-body:"Lora", "Lora Fallback", Georgia, serif;--font-arabic:"Amiri", "Amiri Fallback", "Noto Naskh Arabic", serif;--text-md:1.375rem;--text-display:clamp(2.25rem, 5.5vw, 3.5rem)}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-200:lab(91.6229% -.159115 -2.26791)}}}@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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.isolate{isolation:isolate}.float-end{float:inline-end}.float-left{float:left}.float-right{float:right}.float-start{float:inline-start}.clear-end{clear:inline-end}.clear-left{clear:left}.clear-right{clear:right}.clear-start{clear:inline-start}.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}}.ms-1{margin-inline-start:var(--spacing)}.me-1{margin-inline-end:var(--spacing)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.\!ml-auto{margin-left:auto!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-20{height:calc(var(--spacing) * 20)}.h-screen{height:100vh}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-y-\[0\.05em\]{--tw-translate-y:.05em;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.gap-1{gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-gray-200{background-color:var(--color-gray-200)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.whitespace-nowrap{white-space:nowrap}.tab-1{tab-size:1}.tab-2{tab-size:2}.text-margin{color:var(--color-margin)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}@media (min-width:40rem){.sm\:pr-2{padding-right:calc(var(--spacing) * 2)}}.rtl\:-scale-x-100:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}}:root{--font-heading:var(--font-latin-heading);--font-body:var(--font-latin-body);--lh-body:1.75;--lh-tight:1.2;--measure:68ch;--size-adjust:1;--tracking:1;--rail-w:19.25rem;--shell-break:55rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[dir=rtl]{--font-heading:var(--font-arabic);--font-body:var(--font-arabic);--lh-body:1.95;--lh-tight:1.5;--measure:58ch;--size-adjust:1.12;--tracking:0}[dir=rtl] [lang=en]{--tracking:1;font-family:var(--font-latin-body)}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-latin.woff2)format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+??,U+100-17F,U+2010-205E,U+20AC,U+2122,U+2190,U+2192,U+2197}@font-face{font-family:Lora;src:url(/fonts/lora-latin.woff2)format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+??,U+100-17F,U+2010-205E,U+20AC,U+2122,U+2190,U+2192,U+2197}@font-face{font-family:Lora;src:url(/fonts/lora-latin-italic.woff2)format("woff2-variations");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+??,U+100-17F,U+2010-205E,U+20AC,U+2122,U+2190,U+2192,U+2197}@font-face{font-family:Amiri;src:url(/fonts/amiri-arabic.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Amiri;src:url(/fonts/amiri-arabic-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Amiri;src:url(/fonts/amiri-arabic-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Amiri;src:url(/fonts/amiri-arabic-bolditalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Cormorant Fallback;src:local(Georgia),local(Times New Roman),local(Liberation Serif);ascent-override:92.4%;descent-override:28.7%;line-gap-override:0%}@font-face{font-family:Lora Fallback;src:local(Georgia),local(Times New Roman),local(Liberation Serif);ascent-override:100.6%;descent-override:27.4%;line-gap-override:0%}@font-face{font-family:Amiri Fallback;src:local(Geeza Pro),local(Noto Naskh Arabic),local(Times New Roman);ascent-override:112.4%;descent-override:63.4%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--color-page);color:var(--color-ink);font-family:var(--font-body);font-size:calc(var(--text-base) * var(--size-adjust));line-height:var(--lh-body);text-align:start;margin:0;font-weight:400}a{color:var(--color-link);text-underline-offset:3px;text-decoration:none;text-decoration-thickness:1px}a:hover{color:var(--color-rubric);text-decoration:underline}:where(a,button,summary,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-rubric);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:var(--lh-tight);margin:0}p{margin:0 0 1.1em}p:last-child{margin-bottom:0}hr{border:0;border-block-start:1px solid var(--color-rule);margin-block:2.25rem 0}.tnum{font-feature-settings:"tnum"}.shell{grid-template-columns:var(--rail-w) minmax(0, 1fr);min-height:100dvh;display:grid}.rail{background:var(--color-rail);color:var(--color-rail-ink);border-inline-end:1px solid var(--color-rail-line);flex-direction:column;align-self:start;gap:2.125rem;block-size:100dvh;padding:2.5rem 1.75rem;display:flex;position:sticky;inset-block-start:0;overflow-y:auto}.rail a{color:inherit}.rail-head{flex-direction:column;gap:1.25rem;display:flex}.rail-portrait{background:var(--color-rail-ink);border-radius:50%;flex:0 0 8.25rem;block-size:8.25rem;inline-size:8.25rem;padding:6px}.rail-portrait img{object-fit:cover;border-radius:50%;block-size:100%;inline-size:100%;display:block}.rail-portrait-fallback{background:var(--color-rail-ink);block-size:100%;inline-size:100%;color:var(--color-rail);font-family:var(--font-heading);letter-spacing:calc(.02em * var(--tracking));border-radius:50%;place-items:center;font-size:2.5rem;line-height:1;display:grid}.rail-name{font-family:var(--font-heading);font-size:calc(1.625rem * var(--size-adjust));margin:0;font-weight:600;line-height:1.15}.rail-role{font-size:calc(.72rem * var(--size-adjust));letter-spacing:calc(.2em * var(--tracking));text-transform:uppercase;color:var(--color-rail-accent);margin:5px 0 0}.rail-status{font-size:calc(.78rem * var(--size-adjust));color:var(--color-rail-muted);align-items:center;gap:8px;margin:9px 0 0;display:flex}.rail-status:before{content:"";background:var(--color-rail-accent);border-radius:50%;flex:0 0 6px;block-size:6px;inline-size:6px;box-shadow:0 0 0 3px #db6d5138}.rail-nav{flex-direction:column;gap:2px;display:flex}.rail-nav a{color:var(--color-rail-dim);font-size:calc(.84rem * var(--size-adjust));letter-spacing:calc(.06em * var(--tracking));border-inline-start:2px solid #0000;align-items:baseline;gap:12px;padding-block:8px;padding-inline:14px 0;text-decoration:none;transition:color .18s,border-color .18s;display:flex}.rail-nav a:hover{color:var(--color-rail-ink);border-inline-start-color:#edefea80;text-decoration:none}.rail-nav a[aria-current=page]{color:var(--color-rail-ink);border-inline-start-color:var(--color-rail-accent)}.rail-num{font-family:var(--font-heading);letter-spacing:calc(.16em * var(--tracking));color:var(--color-rail-numeral);font-feature-settings:"tnum";font-size:.6875rem}.rail-nav a[aria-current=page] .rail-num{color:var(--color-rail-accent)}.rail-foot{font-size:calc(.78rem * var(--size-adjust));flex-direction:column;gap:.75rem;display:flex}.rail-social{font-size:calc(.8rem * var(--size-adjust));color:var(--color-rail-dim);flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.rail-social a{color:inherit;align-items:center;gap:9px;padding-block:.3rem;text-decoration:none;transition:color .18s;display:inline-flex}.rail-social a:hover{color:var(--color-rail-accent);text-decoration:none}.rail-social-icon{opacity:.85;flex:0 0 14px}.rail-colophon{border-block-start:1px solid var(--color-rail-line);font-family:var(--font-heading);letter-spacing:calc(.2em * var(--tracking));color:var(--color-rail-numeral);font-feature-settings:"tnum";margin:0;padding-block-start:.875rem;font-size:.66rem}.main{min-inline-size:0;padding:4.25rem 2.875rem 4.5rem}.column{flex-direction:column;gap:4.75rem;max-inline-size:47.5rem;display:flex}.column-wide{max-inline-size:68rem}@media (max-width:55rem){.shell{grid-template-columns:minmax(0,1fr)}.rail{border-inline-end:0;border-block-end:1px solid var(--color-rail-line);gap:1.5rem;block-size:auto;padding:1.875rem 1.5rem;position:relative}.rail-head{flex-direction:row;align-items:center;gap:1.25rem}.rail-portrait{flex:0 0 4.5rem;block-size:4.5rem;inline-size:4.5rem}.rail-portrait-fallback{font-size:1.375rem}.main{padding:2.5rem 1.375rem 3.5rem}.column{gap:3.5rem}}.section-head{flex-wrap:wrap;align-items:center;gap:14px;margin-block-end:1.25rem;display:flex}.section-head h1,.section-head h2{font-family:var(--font-heading);font-weight:600;font-size:calc(.94rem * var(--size-adjust));letter-spacing:calc(.2em * var(--tracking));text-transform:uppercase;margin:0}[dir=rtl] .section-head h1,[dir=rtl] .section-head h2,[dir=rtl] .kicker,[dir=rtl] .rail-role,[dir=rtl] .rail-social,[dir=rtl] .rail-colophon,[dir=rtl] .meta-label,[dir=rtl] .section-note{text-transform:none}.section-rule{background:var(--color-ink);flex:1;block-size:1px;min-inline-size:20px}.section-note{font-size:calc(.69rem * var(--size-adjust));letter-spacing:calc(.14em * var(--tracking));text-transform:uppercase;color:var(--color-margin)}.lede{font-family:var(--font-heading);color:var(--color-ink);text-wrap:pretty;max-inline-size:var(--measure);margin:0 0 1.15rem;font-size:clamp(1.125rem,2.4vw,1.5625rem);line-height:1.5}.body-copy{font-size:calc(.94rem * var(--size-adjust));color:var(--color-ink-2);text-wrap:pretty;max-inline-size:var(--measure);margin:0;line-height:1.8}.kicker{font-size:calc(.66rem * var(--size-adjust));letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-rubric)}.meta-label{font-size:calc(.66rem * var(--size-adjust));letter-spacing:calc(.18em * var(--tracking));text-transform:uppercase;color:var(--color-margin)}.measure{max-inline-size:var(--measure)}.mark{border-block-end:1px solid var(--color-rubric);padding-block-end:2px;position:relative}.link-row{font-size:calc(var(--text-sm) * var(--size-adjust));flex-wrap:wrap;gap:0 1.4rem;margin-block-start:.9rem;display:flex}.proj-grid{border-block-start:1px solid var(--color-rule);border-inline-start:1px solid var(--color-rule);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.proj-filter-wrap{margin-block-start:1.25rem}.proj-filter{flex-wrap:wrap;gap:6px;margin-block-end:1.25rem;display:flex}.proj-pill{font-size:calc(.69rem * var(--size-adjust));letter-spacing:calc(.12em * var(--tracking));text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid var(--color-rule);color:var(--color-ink-3);cursor:pointer;background:0 0;padding:6px 12px;transition:border-color .18s,background .18s,color .18s}[dir=rtl] .proj-pill{text-transform:none}.proj-pill:hover{border-color:var(--color-rubric);color:var(--color-ink)}:is(.proj-filter-wrap:has(#tag-all:checked) label[for=tag-all],.proj-filter-wrap:has(#tag-commerce:checked) label[for=tag-commerce],.proj-filter-wrap:has(#tag-tools:checked) label[for=tag-tools],.proj-filter-wrap:has(#tag-education:checked) label[for=tag-education],.proj-filter-wrap:has(#tag-services:checked) label[for=tag-services],.proj-filter-wrap:has(#tag-social:checked) label[for=tag-social]){background:var(--color-rail);border-color:var(--color-rail);color:var(--color-rail-ink)}:is(.proj-filter-wrap:has(#tag-all:focus-visible) label[for=tag-all],.proj-filter-wrap:has(#tag-commerce:focus-visible) label[for=tag-commerce],.proj-filter-wrap:has(#tag-tools:focus-visible) label[for=tag-tools],.proj-filter-wrap:has(#tag-education:focus-visible) label[for=tag-education],.proj-filter-wrap:has(#tag-services:focus-visible) label[for=tag-services],.proj-filter-wrap:has(#tag-social:focus-visible) label[for=tag-social]){outline:2px solid var(--color-rubric);outline-offset:2px}:is(.proj-filter-wrap:has(#tag-commerce:checked) .proj-grid>.proj-card:not([data-tags~=commerce]),.proj-filter-wrap:has(#tag-tools:checked) .proj-grid>.proj-card:not([data-tags~=tools]),.proj-filter-wrap:has(#tag-education:checked) .proj-grid>.proj-card:not([data-tags~=education]),.proj-filter-wrap:has(#tag-services:checked) .proj-grid>.proj-card:not([data-tags~=services]),.proj-filter-wrap:has(#tag-social:checked) .proj-grid>.proj-card:not([data-tags~=social])){display:none}.proj-card{border-inline-end:1px solid var(--color-rule);border-block-end:1px solid var(--color-rule);flex-direction:column;gap:8px;min-block-size:9.375rem;padding:1.25rem;transition:background .18s;display:flex}.proj-card:hover{background:var(--color-field)}.proj-card h3{font-family:var(--font-heading);font-weight:600;font-size:calc(1.1875rem * var(--size-adjust));margin:0}.proj-card h3 a{color:inherit;text-decoration:none}.proj-card h3 a:hover{color:var(--color-rubric)}.proj-card p{font-size:calc(.84rem * var(--size-adjust));color:var(--color-ink-3);text-wrap:pretty;margin:0;line-height:1.65}.proj-foot{justify-content:space-between;align-items:baseline;gap:12px;margin-block-start:auto;padding-block-start:.5rem;display:flex}.proj-view{font-size:calc(.69rem * var(--size-adjust));letter-spacing:calc(.12em * var(--tracking));text-transform:uppercase;color:var(--color-rubric);white-space:nowrap;text-decoration:none}[dir=rtl] .proj-view{text-transform:none}.proj-view:hover{text-decoration:underline}.stack-term{font-family:var(--font-latin-body)}.proj-tech{font-family:var(--font-latin-body);font-size:calc(.66rem * var(--size-adjust));letter-spacing:calc(.12em * var(--tracking));text-transform:uppercase;color:var(--color-margin)}.hero-bio{margin-block-start:1.15rem}.contact-list{margin-block-start:1.5rem}.row-list{flex-direction:column;display:flex}.contact-row{border-block-end:1px solid var(--color-rule);color:var(--color-ink);justify-content:space-between;gap:14px;padding-block:11px;text-decoration:none;display:flex}.contact-row:hover{color:var(--color-rubric);text-decoration:none}.contact-row .value{font-size:calc(.84rem * var(--size-adjust));text-align:end;word-break:break-word}.prose-body{max-inline-size:var(--measure);text-align:start;color:var(--color-ink-2)}.prose-body>*+*{margin-block-start:1.1em}.prose-body h2{font-size:calc(var(--text-md) * var(--size-adjust));color:var(--color-ink);margin-block:2.1em .5em}.prose-body h3{font-size:calc(1.1875rem * var(--size-adjust));color:var(--color-ink);margin-block:1.8em .4em}.prose-body h4{font-size:calc(var(--text-base) * var(--size-adjust));color:var(--color-margin);margin-block:1.6em .3em;font-weight:400}.prose-body :is(h2,h3,h4):first-child{margin-block-start:0}.prose-body ul{margin-block:0 1.1em;padding-inline-start:1.4em;list-style:outside}.prose-body ol{margin-block:0 1.1em;padding-inline-start:1.4em;list-style:decimal}.prose-body li::marker{color:var(--color-margin)}.prose-body li+li{margin-block-start:.35em}.prose-body a{unicode-bidi:isolate;text-decoration:underline}.prose-body strong{color:var(--color-ink);font-weight:600}.prose-body em{font-style:italic}.prose-body hr{margin-block:2.25rem}.prose-body table{border-collapse:collapse;inline-size:100%;font-size:calc(var(--text-sm) * var(--size-adjust));font-feature-settings:"tnum"}.prose-body :is(th,td){text-align:start;border-block-end:1px solid var(--color-rule);padding-block:.45rem;padding-inline:0 .8rem}.prose-body th{color:var(--color-margin);font-weight:600;font-family:var(--font-heading);letter-spacing:calc(.08em * var(--tracking));text-transform:uppercase;font-size:calc(.72rem * var(--size-adjust))}[dir=rtl] .prose-body th{text-transform:none}.prose-body figure{margin:1.6em 0}.prose-body figure img{block-size:auto;inline-size:100%;display:block}.prose-body figcaption{font-size:calc(var(--text-xs) * var(--size-adjust));color:var(--color-margin);margin-block-start:.5rem}.prose-aside{font-size:calc(var(--text-xs) * var(--size-adjust));color:var(--color-margin);border-inline-start:1px solid var(--color-rule);margin-block:1.6em;padding-inline-start:.9rem;line-height:1.65}.anim{opacity:0;animation:.5s cubic-bezier(.2,.7,.3,1) forwards riseIn;transform:translateY(8px)}.anim:first-child{animation-delay:.28s}.anim:nth-child(2){animation-delay:.4s}.anim:nth-child(3){animation-delay:.52s}.anim:nth-child(4){animation-delay:.64s}.anim:nth-child(5){animation-delay:.76s}.anim:nth-child(6){animation-delay:.88s}@keyframes riseIn{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.anim{opacity:1;animation:none;transform:none}}.sr-only:not(:focus):not(:active){clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.sr-only:focus{z-index:20;background:var(--color-field);color:var(--color-ink);border:1px solid var(--color-rule);padding:.5rem .9rem;position:absolute;inset-block-start:.5rem;inset-inline-start:.5rem}.hidden-control{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.link-row a,.rail-social a{align-items:baseline;padding-block:.3rem;display:inline-flex}.nf{flex-direction:column;gap:clamp(2.5rem,6vw,4.5rem);display:flex}.nf-back{text-align:end;font-size:calc(.82rem * var(--size-adjust))}.nf-back a,.nf-explore a{border-block-end:1px solid var(--color-rule);align-items:baseline;gap:6px;padding-block-end:2px;text-decoration:none;display:inline-flex}.nf-back a:hover,.nf-explore a:hover{color:var(--color-rubric);border-block-end-color:var(--color-rubric);text-decoration:none}.nf-main{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);display:grid}.nf-kicker{color:var(--color-rubric)}.nf-title{font-family:var(--font-heading);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:400;line-height:var(--lh-tight);letter-spacing:calc(-.012em * var(--tracking));margin-block-start:.5rem}.nf-body{max-inline-size:26em;margin-block-start:1rem}.nf-actions{flex-wrap:wrap;gap:12px;margin-block-start:2rem;display:flex}.nf-button{border:1px solid var(--color-rule);border-radius:var(--radius-sm);font-size:calc(.84rem * var(--size-adjust));color:var(--color-ink);align-items:center;gap:8px;padding:.85rem 1.4rem;text-decoration:none;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.nf-button:hover{background:var(--color-field);border-color:var(--color-ink);text-decoration:none}.nf-button-solid{background:var(--color-rubric);border-color:var(--color-rubric);color:var(--color-page)}.nf-button-solid:hover{background:#8e3626}@supports (color:color-mix(in lab, red, red)){.nf-button-solid:hover{background:color-mix(in srgb, var(--color-rubric) 82%, var(--color-ink))}}.nf-button-solid:hover{border-color:#8e3626}@supports (color:color-mix(in lab, red, red)){.nf-button-solid:hover{border-color:color-mix(in srgb, var(--color-rubric) 82%, var(--color-ink))}}.nf-button-solid:hover{color:var(--color-page)}.nf-arrow{flex-shrink:0}.nf-figure{justify-content:center;align-items:center;gap:clamp(.75rem,2vw,1.75rem);display:flex}.nf-art{block-size:auto;inline-size:min(100%,17.5rem);color:var(--color-margin)}.nf-art-void{fill:var(--color-ink);stroke:none}.nf-art-moon,.nf-art-star{fill:var(--color-page);stroke:none}.nf-art-horizon{stroke:var(--color-rail-dim)}.nf-art-light{stroke:var(--color-rule)}.nf-aside{writing-mode:vertical-rl;text-orientation:mixed;font-size:calc(.62rem * var(--size-adjust));letter-spacing:calc(.2em * var(--tracking));text-transform:uppercase;color:var(--color-margin);max-block-size:14rem}[dir=rtl] .nf-figure{flex-direction:column}[dir=rtl] .nf-aside{writing-mode:horizontal-tb;text-transform:none;text-align:center;max-block-size:none;max-inline-size:20em}.nf-foot{border-block-start:1px solid var(--color-rule);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem 2rem;padding-block-start:clamp(1.5rem,4vw,2.5rem);display:flex}.nf-quote{font-family:var(--font-heading);font-style:italic;font-size:calc(var(--text-md) * var(--size-adjust));line-height:var(--lh-tight);color:var(--color-ink-2);border-inline-start:1px solid var(--color-rule);max-inline-size:18em;padding-inline-start:1rem}[dir=rtl] .nf-quote{font-style:normal}.nf-explore{font-size:calc(.84rem * var(--size-adjust));flex-wrap:wrap;align-items:baseline;gap:1.25rem;display:flex}@media (max-width:55rem){.nf-main{grid-template-columns:minmax(0,1fr)}.nf-figure{display:none}.nf-back{text-align:start}}@media not all and (max-width:55rem){.rail-disclosure{display:contents}.rail-summary{display:none}.rail-disclosure::details-content{content-visibility:visible;block-size:auto}.rail-disclosure>.rail-nav,.rail-disclosure>.rail-foot{display:flex}}@media (max-width:55rem){.rail-disclosure{display:block}.rail-summary{cursor:pointer;border:1px solid var(--color-rail-border);border-radius:var(--radius-sm);inline-size:fit-content;letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-rail-ink);align-items:center;gap:8px;padding:8px 13px;font-size:.69rem;list-style:none;display:inline-flex}[dir=rtl] .rail-summary{text-transform:none}.rail-summary::-webkit-details-marker{display:none}.rail-summary:after{content:"+";font-family:var(--font-heading);font-size:.9rem;line-height:1}.rail-disclosure[open] .rail-summary:after{content:"−"}.rail-disclosure[open] .rail-summary{border-color:var(--color-rail-accent)}.rail-disclosure>.rail-nav,.rail-disclosure>.rail-foot{margin-block-start:1.25rem}}.rail-email{border:1px solid var(--color-rail-border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;transition:border-color .18s;display:flex}.rail-email:hover{border-color:var(--color-rail-accent)}.rail-email-address{color:var(--color-rail-muted);word-break:break-all;font-size:.75rem;text-decoration:none}.rail-email-address:hover{color:var(--color-rail-ink);text-decoration:underline}.rail-email-copy{cursor:pointer;letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-rail-accent);white-space:nowrap;background:0 0;border:0;padding:.3rem 0;font-family:inherit;font-size:.625rem}[dir=rtl] .rail-email-copy{text-transform:none}.rail-email-copy:hover{color:var(--color-rail-ink)}.section-label{font-family:var(--font-heading);font-weight:600;font-size:calc(.94rem * var(--size-adjust));letter-spacing:calc(.2em * var(--tracking));text-transform:uppercase;color:var(--color-ink);margin:0}[dir=rtl] .section-label{text-transform:none}.hero-statement{font-family:var(--font-heading);font-size:clamp(1.75rem,4.2vw,2.875rem);line-height:var(--lh-tight);letter-spacing:calc(-.008em * var(--tracking));text-wrap:pretty;max-inline-size:var(--measure);margin:0;font-weight:400}[dir=rtl] .hero-statement{font-weight:400;line-height:1.5}.hero-gloss{border-block-start:1px solid var(--color-rule);max-inline-size:var(--measure);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:2.25rem 0 0;display:grid}.hero-gloss>div{border-block-end:1px solid var(--color-rule);padding-block:.75rem;padding-inline-end:1.5rem}.hero-gloss dt{font-family:var(--font-heading);font-size:calc(.84rem * var(--size-adjust));color:var(--color-ink);font-weight:600}.hero-gloss dd{font-size:calc(.75rem * var(--size-adjust));color:var(--color-margin);text-wrap:pretty;margin:.15rem 0 0;line-height:1.6}@media (max-width:55rem){.hero-gloss{grid-template-columns:minmax(0,1fr)}.hero-gloss>div{padding-inline-end:0}}.detail-list{border-block-start:1px solid var(--color-rule);max-inline-size:var(--measure);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.detail-row{border-block-end:1px solid var(--color-rule);padding-block:.75rem;padding-inline-end:1.5rem}.detail-row dd{font-size:calc(.84rem * var(--size-adjust));color:var(--color-ink-2);margin:.2rem 0 0;line-height:1.7}.detail-row dd>span.block+span.block{margin-block-start:.15rem}@media (max-width:55rem){.detail-list{grid-template-columns:minmax(0,1fr)}.detail-row{padding-inline-end:0}}.rail-download-block{flex-direction:column;gap:6px;display:flex}.rail-download{border:1px solid var(--color-rail-accent);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;text-decoration:none;transition:background .18s;display:flex}.rail-download:hover{background:#db6d5124}@supports (color:color-mix(in lab, red, red)){.rail-download:hover{background:color-mix(in srgb, var(--color-rail-accent) 14%, transparent)}}.rail-download:hover{text-decoration:none}.rail-download-label{letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-rail-accent);font-size:.66rem}.rail-download-format{letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-rail-dim);white-space:nowrap;font-size:.625rem}[dir=rtl] .rail-download-label,[dir=rtl] .rail-download-format{text-transform:none}.rail-download-meta{color:var(--color-rail-numeral);font-size:.66rem;line-height:1.5}.timeline{max-inline-size:var(--measure);flex-direction:column;display:flex}.tl-item{padding-block-end:1.25rem;padding-inline-start:1.5rem;position:relative}.tl-item:before{content:"";background:var(--color-rule);inline-size:1px;position:absolute;inset-block:.55rem 0;inset-inline-start:4px}.tl-item:last-child:before{block-size:0;inset-block-end:auto}.tl-summary{cursor:pointer;border-radius:var(--radius-sm);gap:2px;margin-inline:-.5rem;padding-block:.35rem;padding-inline:.5rem;list-style:none;transition:background .18s;display:grid}.tl-summary:hover{background:#a83a220f}@supports (color:color-mix(in lab, red, red)){.tl-summary:hover{background:color-mix(in srgb, var(--color-rubric) 6%, transparent)}}.tl-summary:focus-visible{background:#a83a220f}@supports (color:color-mix(in lab, red, red)){.tl-summary:focus-visible{background:color-mix(in srgb, var(--color-rubric) 6%, transparent)}}.tl-summary:hover .tl-role{color:var(--color-rubric)}.tl-summary:hover .tl-node{border-color:var(--color-rubric)}.tl-summary::-webkit-details-marker{display:none}.tl-node{border:1px solid var(--color-ink);background:var(--color-page);box-sizing:border-box;border-radius:50%;block-size:9px;inline-size:9px;position:absolute;inset-block-start:.5rem;inset-inline-start:0}.tl-node-current{background:var(--color-rubric);border-color:var(--color-rubric)}.tl-item[open]>.tl-summary .tl-node{border-color:var(--color-rubric)}.tl-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.tl-role{font-family:var(--font-heading);font-weight:600;font-size:calc(1.1875rem * var(--size-adjust));color:var(--color-ink);transition:color .18s}.tl-dates{font-size:calc(.75rem * var(--size-adjust));color:var(--color-ink-3);font-style:italic}.tl-employer{font-size:calc(.84rem * var(--size-adjust));color:var(--color-rubric);font-style:italic}.tl-bullets{flex-direction:column;gap:5px;margin:.5rem 0 0;padding-inline-start:1.1rem;list-style:outside;display:flex}.tl-bullets li{font-size:calc(.84rem * var(--size-adjust));color:var(--color-ink-2);text-wrap:pretty;line-height:1.7}.tl-bullets li::marker{color:var(--color-margin)}.proj-group+.proj-group{margin-block-start:2.25rem}.proj-group-heading{font-family:var(--font-heading);font-weight:600;font-size:calc(.78rem * var(--size-adjust));letter-spacing:calc(.16em * var(--tracking));text-transform:uppercase;color:var(--color-margin);margin:0 0 .75rem}[dir=rtl] .proj-group-heading{text-transform:none}.skill-groups{max-inline-size:var(--measure);grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 2.5rem;display:grid}.skill-group{border-block-start:1px solid var(--color-ink);padding-block-start:.75rem}.skill-group-heading{font-family:var(--font-heading);font-weight:600;font-size:calc(.88rem * var(--size-adjust));letter-spacing:calc(.14em * var(--tracking));text-transform:uppercase;color:var(--color-ink);margin:0 0 .85rem}[dir=rtl] .skill-group-heading{text-transform:none}.skill-items{flex-direction:column;gap:.7rem;margin:0;display:flex}.skill-item dt{font-size:calc(.88rem * var(--size-adjust));color:var(--color-ink)}.skill-item dd{font-size:calc(.78rem * var(--size-adjust));color:var(--color-margin);text-wrap:pretty;margin:2px 0 0;line-height:1.55}.edu-row{border-block-end:1px solid var(--color-rule);max-inline-size:var(--measure);padding-block:1.125rem}.edu-meta{font-size:calc(.8rem * var(--size-adjust));color:var(--color-ink-3);margin:.2rem 0 0;font-style:italic}.edu-degree{font-family:var(--font-heading);font-weight:600;font-size:calc(1.125rem * var(--size-adjust));margin:0}.edu-note{font-size:calc(.84rem * var(--size-adjust));color:var(--color-margin);margin:.2rem 0 0}.service-note{margin-block-start:1.25rem}@media (max-width:55rem){.skill-groups{grid-template-columns:minmax(0,1fr);gap:1.75rem}}.about-prose{margin-block-start:2.25rem}.proj-header{flex-direction:column;gap:0;display:flex}.proj-back-row{margin:0 0 2rem}.proj-back{font-size:calc(.69rem * var(--size-adjust));letter-spacing:calc(.14em * var(--tracking));text-transform:uppercase;color:var(--color-ink-3);border:1px solid var(--color-rule);border-radius:var(--radius-sm);align-items:center;padding:8px 14px;text-decoration:none;transition:border-color .18s,color .18s;display:inline-flex}[dir=rtl] .proj-back{text-transform:none}.proj-back:hover{border-color:var(--color-rubric);color:var(--color-rubric);text-decoration:none}.proj-header .kicker{margin:0 0 .5rem}.proj-title{font-family:var(--font-heading);letter-spacing:calc(-.012em * var(--tracking));text-wrap:pretty;margin:0;font-size:clamp(2rem,5vw,3.25rem);font-weight:400;line-height:1.05}[dir=rtl] .proj-title{line-height:1.4}.proj-lede{font-family:var(--font-heading);font-size:calc(1.1875rem * var(--size-adjust));color:var(--color-ink-2);max-inline-size:var(--measure);text-wrap:pretty;margin:.75rem 0 0;line-height:1.5}.proj-header .detail-list{margin-block-start:2.25rem}.detail-row:last-child:nth-child(odd){grid-column:1/-1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
