@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_dc177b0e-module__78ed6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_dc177b0e-module__78ed6G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0v2ipp7s07_p9.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.44ks8kcggj012.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.1ii7211jqpzi_.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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_a4c6eeb8-module__HgmG9q__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_a4c6eeb8-module__HgmG9q__variable{--font-portfolio:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f53f4557ddd9f7a6-s.0m27yxnqbjygb.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:700;font-display:swap;src:url(../media/5256dd17dd2ccf14-s.3rq2mce8ozlxj.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:700;font-display:swap;src:url(../media/fe48c93add1d142c-s.1iowrflh516kh.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:700;font-display:swap;src:url(../media/5689d89b20a4bd5b-s.08xli7-4ntimz.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:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a7e15459c1805da0-s.p.05ymlrkv94iec.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%}.ibm_plex_mono_af74af10-module__C8oQUq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal;font-weight:700}.ibm_plex_mono_af74af10-module__C8oQUq__variable{--font-compact-name:"IBM Plex Mono", "IBM Plex Mono Fallback"}
.InfoDrawer-module__8eun2W__trigger{min-height:44px;color:var(--identity-ink);font:400 1rem/24px var(--font-portfolio), Arial, sans-serif;letter-spacing:-.04em;cursor:pointer;align-items:center;gap:8px;padding:10px 0;display:inline-flex}.InfoDrawer-module__8eun2W__trigger span{font-size:1.25em}.InfoDrawer-module__8eun2W__trigger:hover{text-underline-offset:4px;text-decoration:underline}.InfoDrawer-module__8eun2W__trigger:focus-visible{outline:2px solid var(--identity-ink);outline-offset:4px}[data-collapsed=true] .InfoDrawer-module__8eun2W__trigger{font-size:.875rem}.InfoDrawer-module__8eun2W__drawer{--info-orange:#ff542a;background:var(--info-orange);color:#20160f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:min(760px,60vw);max-width:100%;height:100dvh;max-height:none;font:400 1.125rem/1.5 var(--font-portfolio), Arial, sans-serif;letter-spacing:-.025em;text-align:left;pointer-events:auto;transform-origin:0;border:0;margin:0;padding:0;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:16px 0 60px #0000001f}.InfoDrawer-module__8eun2W__drawer[open]{animation:.48s cubic-bezier(.2,.75,.2,1) both InfoDrawer-module__8eun2W__unfold}.InfoDrawer-module__8eun2W__drawer::backdrop{background:#0f11122e;animation:.48s both InfoDrawer-module__8eun2W__veil}.InfoDrawer-module__8eun2W__drawer[data-closing=true]{animation:.28s ease-in both InfoDrawer-module__8eun2W__fold}.InfoDrawer-module__8eun2W__drawer[data-closing=true]::backdrop{animation:.28s reverse both InfoDrawer-module__8eun2W__veil}.InfoDrawer-module__8eun2W__sheet{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;overflow-y:auto}.InfoDrawer-module__8eun2W__header{z-index:1;padding:max(16px, env(safe-area-inset-top)) 36px 12px;background:var(--info-orange);font:400 .875rem/1.4 var(--font-mono), monospace;letter-spacing:-.04em;border-bottom:1px solid #20160f40;justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.InfoDrawer-module__8eun2W__header h2{font:inherit}.InfoDrawer-module__8eun2W__close{cursor:pointer;align-items:center;gap:14px;min-height:44px;display:inline-flex}.InfoDrawer-module__8eun2W__close span{font:300 1.875rem/1 Arial,sans-serif}.InfoDrawer-module__8eun2W__drawer :is(a,button,input):focus-visible{outline-offset:4px;outline:2px solid}.InfoDrawer-module__8eun2W__drawer a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}.InfoDrawer-module__8eun2W__drawer a:hover{text-decoration:underline}.InfoDrawer-module__8eun2W__drawer ::selection{color:#ffbca6;background:#20160f}.InfoDrawer-module__8eun2W__content{padding:28px 36px max(48px, env(safe-area-inset-bottom))}.InfoDrawer-module__8eun2W__contact{border-top:1px solid #20160f40;margin-top:32px;padding-top:24px}.InfoDrawer-module__8eun2W__emailRow{flex-wrap:wrap;align-items:center;gap:0 16px;display:flex}.InfoDrawer-module__8eun2W__email{overflow-wrap:anywhere;padding-block:6px;font-size:clamp(1.25rem,2.3vw,1.75rem);line-height:1.4}.InfoDrawer-module__8eun2W__copy{min-height:44px;font:400 .75rem/1.4 var(--font-mono), monospace;cursor:pointer;text-underline-offset:4px;text-decoration:underline}.InfoDrawer-module__8eun2W__linkedin{align-items:center;gap:18px;min-height:44px;font-size:1rem;display:inline-flex}.InfoDrawer-module__8eun2W__status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.InfoDrawer-module__8eun2W__copyError{margin-top:8px;font-size:.875rem;display:block}.InfoDrawer-module__8eun2W__manual{background:0 0;border:1px solid;width:100%;margin-top:8px;padding:8px;font-size:1rem}.InfoDrawer-module__8eun2W__statement{border-top:1px solid #20160f40;padding-top:28px}.InfoDrawer-module__8eun2W__label{font:400 .75rem/1.5 var(--font-mono), monospace;letter-spacing:-.03em;margin:0 0 22px}.InfoDrawer-module__8eun2W__statement p{margin:0 0 24px}.InfoDrawer-module__8eun2W__statement .InfoDrawer-module__8eun2W__lead{letter-spacing:-.055em;text-wrap:pretty;margin-bottom:36px;font-size:clamp(1.875rem,3.1vw,2.6875rem);line-height:1.1}.InfoDrawer-module__8eun2W__intro{padding-bottom:28px}.InfoDrawer-module__8eun2W__bio{text-wrap:pretty;max-width:48ch;margin-inline:auto}.InfoDrawer-module__8eun2W__bio p{margin:0}.InfoDrawer-module__8eun2W__bio p+p{margin-top:12px}@keyframes InfoDrawer-module__8eun2W__unfold{0%{transform:perspective(1800px)translate(-100%)rotateY(12deg)}to{transform:perspective(1800px)translate(0)rotateY(0)}}@keyframes InfoDrawer-module__8eun2W__fold{to{transform:perspective(1800px)translate(-100%)rotateY(8deg)}}@keyframes InfoDrawer-module__8eun2W__veil{0%{background:#0f111200}to{background:#0f11122e}}@media (max-width:760px){.InfoDrawer-module__8eun2W__drawer{width:100%;font-size:1.125rem}.InfoDrawer-module__8eun2W__header,.InfoDrawer-module__8eun2W__content{padding-inline:24px}.InfoDrawer-module__8eun2W__email{font-size:1.5rem}.InfoDrawer-module__8eun2W__statement .InfoDrawer-module__8eun2W__lead{font-size:clamp(1.875rem,7.6vw,2.6875rem)}}@media (max-width:380px){.InfoDrawer-module__8eun2W__header,.InfoDrawer-module__8eun2W__content{padding-inline:20px}.InfoDrawer-module__8eun2W__email{font-size:1.375rem}}@media (prefers-reduced-motion:reduce){.InfoDrawer-module__8eun2W__drawer[open],.InfoDrawer-module__8eun2W__drawer[data-closing=true],.InfoDrawer-module__8eun2W__drawer::backdrop{animation:none}}@media (forced-colors:active){.InfoDrawer-module__8eun2W__drawer{border-right:1px solid canvastext}.InfoDrawer-module__8eun2W__header,.InfoDrawer-module__8eun2W__contact,.InfoDrawer-module__8eun2W__statement{border-color:canvastext}}
.InfoPortrait-module__QRuBFq__portrait{width:200px;max-width:100%;margin:0 auto 24px}.InfoPortrait-module__QRuBFq__frame{aspect-ratio:640/952;background:#20160f14;width:100%;overflow:hidden}.InfoPortrait-module__QRuBFq__image{object-fit:contain;width:100%;height:auto;display:block}@media (max-width:760px){.InfoPortrait-module__QRuBFq__portrait{width:160px}}
.FluidAsciiBackground-module__cY1QxG__backdrop{--sky-a:#87a9c5;--sky-b:#adc4d6;--sky-c:#d1dfe8;pointer-events:none;z-index:0;background:linear-gradient(var(--sky-a), var(--sky-b) 55%, var(--sky-c));position:fixed;inset:0;overflow:hidden}html[data-theme=dark] .FluidAsciiBackground-module__cY1QxG__backdrop{--sky-a:#071021;--sky-b:#153666;--sky-c:#29374d}.FluidAsciiBackground-module__cY1QxG__backdrop canvas{opacity:0;width:100%;height:100%;transition:opacity .6s;display:block}.FluidAsciiBackground-module__cY1QxG__backdrop[data-ready=true] canvas{opacity:1}@media (prefers-reduced-motion:reduce){.FluidAsciiBackground-module__cY1QxG__backdrop canvas{transition:none}}.FluidAsciiBackground-module__cY1QxG__backdrop[data-muted=true]{--reading-paper:#f7f9fa;background:linear-gradient(color-mix(in srgb, var(--sky-a) 68%, var(--reading-paper)), color-mix(in srgb, var(--sky-b) 68%, var(--reading-paper)) 55%, color-mix(in srgb, var(--sky-c) 68%, var(--reading-paper)))}html[data-theme=dark] .FluidAsciiBackground-module__cY1QxG__backdrop[data-muted=true]{--reading-paper:#06080b}
.AsciiGarden-module__L7H95q__garden{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;inset:0}.AsciiGarden-module__L7H95q__garden[data-active=false]{visibility:hidden}@media (prefers-reduced-motion:reduce){.AsciiGarden-module__L7H95q__garden{display:none}}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--portfolio-accent:#4135ad}*,:before,:after,::backdrop{--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-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@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-mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--spacing:.25rem;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--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-bg:#000;--color-fg:#fff;--color-dim:#8f8f8f;--color-faint:#484848;--color-accent:#cee2dd}}@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}html{-webkit-text-size-adjust:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5;transition:background-color .45s;overflow-x:hidden}::selection{background:var(--color-accent);color:var(--color-bg)}a{color:var(--color-fg);text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);-webkit-text-decoration-color:var(--color-faint);-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.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}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.left-1{left:calc(var(--spacing) * 1)}.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}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.aspect-\[16\/10\]{aspect-ratio:16/10}.h-12{height:calc(var(--spacing) * 12)}.h-full{height:100%}.min-h-svh{min-height:100svh}.w-16{width:calc(var(--spacing) * 16)}.w-full{width:100%}.max-w-\[60ch\]{max-width:60ch}.max-w-\[420px\]{max-width:420px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--color-faint\)\]{border-color:var(--color-faint)}.border-\[var\(--color-fg\)\]{border-color:var(--color-fg)}.bg-\[color-mix\(in_srgb\,var\(--color-fg\)_8\%\,transparent\)\]{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--color-fg\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-fg) 8%,transparent)}}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing) * 2)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[9px\]{font-size:9px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-\[var\(--color-bg\)\]{color:var(--color-bg)}.text-dim{color:var(--color-dim)}.text-faint{color:var(--color-faint)}.text-fg{color:var(--color-fg)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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}.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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.sepia{--tw-sepia:sepia(100%);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,)}.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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:border-\[var\(--color-dim\)\]:hover{border-color:var(--color-dim)}.hover\:text-fg:hover{color:var(--color-fg)}}@media (min-width:40rem){.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-6{padding-block:calc(var(--spacing) * 6)}}@media (min-width:64rem){.lg\:aspect-auto{aspect-ratio:auto}.lg\:h-\[clamp\(320px\,52vh\,600px\)\]{height:clamp(320px,52vh,600px)}.lg\:w-\[300px\]{width:300px}.lg\:shrink-0{flex-shrink:0}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:calc(var(--spacing) * 8)}.lg\:overflow-y-auto{overflow-y:auto}}}:root{--identity-paper:190 214 235;--identity-ink:#233d48;--name-ink:#e84c08;--name-edge:#702000;--name-width:300px;--weather-ink:#142029;--weather-muted:#2c3b45;--chrome-height:205px}html[data-theme=dark]{--identity-paper:8 15 29;--identity-ink:#cee2dd;--name-ink:#ff9854;--name-edge:#ffd5aa;--weather-ink:#f4f7f6;--weather-muted:#c6d5d2}.site-chrome{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 32px 26px;display:flex;position:fixed;inset:0 0 auto}.site-identity{min-width:var(--name-width);pointer-events:auto;flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.site-identity-links{flex-shrink:0;align-items:center;gap:20px;display:flex}.site-chrome .site-portfolio{font-family:var(--font-portfolio), Arial, sans-serif;letter-spacing:-.04em;color:var(--identity-ink);padding:12px 0;font-size:1rem;text-decoration:none}.site-name{width:var(--name-width);padding:0;text-decoration:none;display:block;position:relative}.site-name-expanded{opacity:1;transform-origin:0 0;grid-template-rows:1fr;transition:grid-template-rows .42s,opacity .24s,transform .42s;display:grid}.site-name-expanded>.ascii-fit{min-height:0;overflow:hidden}.site-name-compact{white-space:nowrap;font:700 clamp(12px, 1.1vw, 16px)/24px var(--font-compact-name), monospace;color:var(--name-ink);opacity:0;transition:opacity .28s,transform .42s;position:absolute;top:0;left:0;transform:translateY(8px)}.site-identity[data-collapsed=true] .site-name{min-height:24px}.site-identity[data-collapsed=true] .site-name-expanded{opacity:0;pointer-events:none;grid-template-rows:0fr;transform:scale(.92)}.site-identity[data-collapsed=true] .site-name-compact{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.site-name-expanded,.site-name-compact{transition:none}}.site-name .ascii-fit{width:var(--name-width)}.site-name .ascii{letter-spacing:0;font-variation-settings:"wght" 900;width:100%;max-width:100%;color:var(--name-ink);-webkit-text-stroke:.48px var(--name-edge);paint-order:stroke fill;text-shadow:0 0 1px var(--name-ink), 0 0 12px var(--name-ink);font-size:3.913cqw;font-weight:900;line-height:1.08;animation:none}@supports (color:color-mix(in lab, red, red)){.site-name .ascii{text-shadow:0 0 1px var(--name-ink), 0 0 12px color-mix(in srgb, var(--name-ink) 16%, transparent)}}.site-name .ascii{cursor:pointer;touch-action:pan-y}html[data-theme=light] .site-name .ascii,.site-name [data-ripple-name]{color:var(--name-ink)}.site-name .ascii [data-ripple-name]{-webkit-text-stroke-color:var(--name-edge);text-shadow:0 0 1px var(--name-ink), 0 0 12px var(--name-ink)}@supports (color:color-mix(in lab, red, red)){.site-name .ascii [data-ripple-name]{text-shadow:0 0 1px var(--name-ink), 0 0 12px color-mix(in srgb, var(--name-ink) 16%, transparent)}}.site-name:focus-visible{outline:2px solid var(--identity-ink);outline-offset:4px}.site-content{z-index:1;padding-top:var(--chrome-expanded-height,var(--chrome-height));overflow-anchor:none;-webkit-mask-image:linear-gradient(to bottom, transparent var(--page-clip-top,0px), #000 var(--page-clip-top,0px));-webkit-mask-image:linear-gradient(to bottom, transparent var(--page-clip-top,0px), #000 var(--page-clip-top,0px));-webkit-mask-image:linear-gradient(to bottom, transparent var(--page-clip-top,0px), #000 var(--page-clip-top,0px));mask-image:linear-gradient(to bottom, transparent var(--page-clip-top,0px), #000 var(--page-clip-top,0px));position:relative}.site-content:has([data-portfolio-gate]){box-sizing:border-box;height:100dvh;padding-top:var(--chrome-height);flex-direction:column;display:flex;overflow:clip}.site-content:has([data-portfolio-gate])>.portfolio-surface{overscroll-behavior-y:none;flex:1;min-height:0;overflow-y:auto}.site-content:has([data-portfolio-gate]) [data-portfolio-gate]{min-height:100%}:is(html:has([data-portfolio-gate]),body:has([data-portfolio-gate])){overscroll-behavior-y:none}.site-content:has([data-weather-explorer]){height:100dvh;padding-top:var(--chrome-height);flex-direction:column;display:flex;overflow:clip}.home-page{min-height:calc(100svh - var(--chrome-expanded-height,var(--chrome-height)));padding:24px 32px;padding-bottom:max(0px, min(calc(var(--chrome-expanded-height,var(--chrome-height)) + 24px), calc(100svh - var(--chrome-expanded-height,var(--chrome-height)) - var(--story-height,0px) - 24px)));justify-content:center;align-items:center;font-size:1rem;line-height:1.65;display:flex;position:relative}.home-copy{z-index:1;max-width:51ch;position:relative}.home-story{width:100%;max-width:620px;position:relative}.home-copy .rule{font-size:.875rem}.home-copy .text-dim,.home-copy .text-faint,.home-copy .rule-label{color:var(--weather-muted)}.weather-clocks{pointer-events:auto;color:var(--weather-ink);text-align:right;min-width:0;font-family:var(--font-mono), monospace}.weather-cities{gap:28px;display:flex}.weather-city{cursor:pointer;max-width:19ch;min-height:32px;font:.875rem/1.5 var(--font-mono), monospace;text-align:right;color:var(--weather-muted);flex-direction:column;align-items:flex-end;padding:0 0 5px;display:flex}.weather-city-line{align-items:baseline;gap:12px;display:flex}.weather-city-name{transition:none}.weather-city[aria-pressed=true] .weather-city-name{color:var(--weather-ink);font-weight:800}.weather-city[aria-pressed=false]:is(:hover,:focus-visible) .weather-city-name{color:var(--identity-ink);text-underline-offset:5px;text-decoration:underline}.clock-time{font-variant-numeric:tabular-nums;font-size:.8125rem}.site-chrome .clock-time{color:var(--weather-muted)}.weather-hour{color:var(--weather-muted);overflow-wrap:anywhere;font-size:.75rem}.site-chrome .weather-more{min-width:63px;min-height:32px;font:.75rem/1.5 var(--font-mono), monospace;color:var(--weather-muted);align-content:center;display:inline-block}@supports (color:color-mix(in lab, red, red)){.site-chrome .weather-more{color:color-mix(in srgb, var(--weather-muted) 72%, transparent)}}.site-chrome .weather-more{text-decoration:none}.weather-more [data-ripple-more]{color:var(--more-ink,inherit)}.weather-more [data-more-label]{line-height:1;display:inline-block}.site-chrome .weather-more:is(:hover,:focus-visible){color:var(--weather-ink);text-underline-offset:4px;text-decoration:underline}.weather-more:is(:hover,:focus-visible) [data-ripple-more]{color:var(--more-hover-ink,inherit)}.site-chrome .weather-more:focus-visible{outline:2px solid var(--weather-ink);outline-offset:3px}@media (forced-colors:active){.site-chrome .weather-more,.weather-more [data-ripple-more]{color:linktext}}.portfolio-link-access{min-height:max(0px, calc(100svh - var(--chrome-expanded-height,var(--chrome-height))))}.weather-source{justify-content:flex-end;gap:12px;margin-top:3px;font-size:.75rem;display:flex}.weather-source a{color:var(--weather-muted);text-decoration-color:#0000}.weather-source a:hover{color:var(--identity-ink);text-decoration-color:currentColor}@media (max-width:760px){.weather-source-label{display:none}.site-chrome{gap:16px;padding:20px 20px 22px}.weather-cities{flex-direction:column;align-items:flex-end;gap:8px}.clock-seconds{display:none}.weather-source{flex-wrap:wrap;gap:2px 10px;max-width:19ch}.site-identity{max-width:var(--name-width)}:root{--name-width:clamp(214px, 64vw, 280px);--chrome-height:245px}.home-page{padding-inline:24px}.home-copy{max-width:100%}}@media (max-width:410px){.site-chrome{gap:8px;padding:16px 12px 22px}.weather-city{max-width:100%}.weather-city-line{flex-wrap:wrap;justify-content:flex-end;gap:0 7px}.clock-time{font-size:.75rem}.weather-source{max-width:110px}:root{--chrome-height:242px}}@media (max-width:760px) and (max-height:740px){.home-page{padding-top:12px}}@media (pointer:coarse){.weather-city,.site-chrome .weather-more{min-height:44px}}.site-chrome:has([data-site-identity][data-collapsed=true]){flex-wrap:wrap;align-items:center;gap:0 24px;padding-block:8px}.site-identity[data-collapsed=true]{flex-wrap:nowrap;gap:16px;min-width:0;max-width:none}.site-identity[data-collapsed=true] .site-name{align-items:center;width:auto;min-width:0;max-width:100%;min-height:44px;display:flex}.site-identity[data-collapsed=true] .site-name-expanded{width:var(--name-width);position:absolute;top:0;left:0}.site-identity[data-collapsed=true] .site-name-compact{font-size:.875rem;line-height:24px;position:relative;top:auto}.site-identity[data-collapsed=true] .site-portfolio{padding-block:10px;font-size:.875rem;line-height:24px}.site-chrome:has([data-collapsed=true]) .weather-clocks{margin-left:auto}.site-chrome:has([data-collapsed=true]) :is(.weather-hour,.weather-more,.clock-seconds){display:none}.site-chrome:has([data-collapsed=true]) .weather-cities{flex-flow:wrap;justify-content:flex-end;gap:0 20px}.site-chrome:has([data-collapsed=true]) .weather-city{justify-content:center;max-width:none;min-height:44px;padding:0;font-size:.8125rem}.site-chrome:has([data-collapsed=true]) .weather-city-line{flex-wrap:nowrap;align-items:baseline;gap:8px;line-height:24px}.site-chrome:has([data-collapsed=true]) .clock-time{font-size:inherit}@media (max-width:600px){.site-identity[data-collapsed=true]{flex-wrap:wrap;justify-content:space-between;gap:0 12px;width:100%}.site-identity[data-collapsed=true] .site-name-compact{white-space:normal;font-size:.75rem}.site-chrome:has([data-collapsed=true]) .weather-clocks{width:100%}.site-chrome:has([data-collapsed=true]) .weather-cities{justify-content:space-between;gap:0 12px}}.portfolio-surface{--folio-bg:#f6f7f9;--folio-ink:#192026;--folio-muted:var(--weather-muted);--folio-line:#dadddf;--folio-panel:#fff;--folio-glass:#fafbfddb;--folio-accent:var(--identity-ink);--folio-signal:#294336;--folio-active:#ddf5b2;--folio-shadow:0 8px 40px #19202617;min-height:max(0px, calc(100svh - var(--chrome-expanded-height,var(--chrome-height))));color:var(--folio-ink);font-family:var(--font-portfolio), Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:0 0;font-size:1rem;line-height:1.5}html[data-theme=dark] .portfolio-surface{--folio-bg:#121518;--folio-ink:#f1f3ef;--folio-muted:#adb4ba;--folio-line:#363c41;--folio-panel:#1d2226;--folio-glass:#1c2126e6;--folio-accent:var(--identity-ink);--folio-signal:#e0f5bb;--folio-shadow:0 8px 40px #0000003d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.portfolio-surface ::selection{color:#18241c;background:#d8efb2}.portfolio-surface :focus-visible{outline:2px solid var(--folio-accent);outline-offset:5px}.portfolio-work{max-width:1560px;margin:auto;padding:24px 36px;font-size:16px;line-height:1.65}.work-header,.work-header>div,.work-case-heading,.work-browser-heading,.work-footer{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.work-header{border-bottom:1px solid var(--color-faint);padding-bottom:18px;font-size:14px}.work-private,.work-eyebrow,.work-browser-heading,.work-credits,.work-tools,.work-footer{color:var(--color-dim);font-size:14px}.work-intro{max-width:880px;padding:36px 0 30px}.work-eyebrow{margin-bottom:12px}.work-eyebrow span{color:var(--color-accent)}.work-intro h1{letter-spacing:-1.6px;margin:0 0 18px;font-size:clamp(26px,3vw,42px);font-weight:500;line-height:1.2}.work-intro>p:last-child{max-width:76ch;color:var(--color-dim)}.work-selections{border-top:1px solid var(--color-faint);border-bottom:1px solid var(--color-faint);flex-wrap:wrap;gap:8px 24px;padding:14px 0;font-size:14px;display:flex}.work-selections a{color:var(--color-dim);padding:7px 0;text-decoration:none}.work-selections a[aria-current]{color:var(--color-fg);box-shadow:0 2px var(--color-accent)}.work-layout{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:48px;padding-top:32px;display:grid}.work-browser{scrollbar-width:thin;max-height:calc(100svh - 48px);padding:0 5px 4px 0;position:sticky;top:24px;overflow-y:auto}.work-browser-heading h2{font-weight:500}.work-search,.work-filter,.work-mobile-picker{color:var(--color-dim);margin-top:16px;font-size:14px;display:block}.portfolio-work input,.portfolio-work select{background:var(--color-bg);width:100%;min-height:44px;color:var(--color-fg);border:1px solid var(--color-faint);font:inherit;border-radius:0;margin-top:5px;padding:8px 10px;font-size:16px;display:block}.portfolio-work button{cursor:pointer}.portfolio-work button:disabled{cursor:default;opacity:.4}.work-project-list{margin-top:22px}.work-project-list button{text-align:left;border-top:1px solid var(--color-faint);grid-template-columns:26px 1fr 12px;gap:10px;width:100%;padding:16px 5px;font-size:14px;display:grid}.work-project-list button[aria-current]{box-shadow:inset 2px 0 var(--color-accent);background:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.work-project-list button[aria-current]{background:color-mix(in srgb, var(--color-fg) 5%, transparent)}}.work-project-list strong{font-weight:500;line-height:1.45;display:block}.work-project-list small{color:var(--color-dim);margin-top:6px;font-size:14px;display:block}.work-number{color:var(--color-dim)}.work-arrow{color:var(--color-accent);opacity:0}.work-project-list button[aria-current] .work-arrow,.work-project-list button:hover .work-arrow{opacity:1}.work-mobile-picker{display:none}.work-case{min-width:0}.work-case-heading>a{white-space:nowrap;font-size:14px}.work-case h2{letter-spacing:-1px;margin:0 0 14px;font-size:clamp(24px,2.5vw,34px);font-weight:500;line-height:1.2}.work-deck{color:var(--color-dim);max-width:70ch}.work-tags{color:var(--color-dim);flex-wrap:wrap;gap:7px 16px;margin:20px 0 26px;font-size:14px;display:flex}.work-tags .work-status{color:var(--color-fg);border-bottom:1px solid var(--color-accent)}.work-image-stage{aspect-ratio:16/10;background:#0d0d0d;place-items:center;width:100%;display:grid}@supports (color:color-mix(in lab, red, red)){.work-image-stage{background:color-mix(in srgb, var(--color-fg) 5%, var(--color-bg))}}.work-image-stage{border:1px solid var(--color-faint)}.work-image-stage img{object-fit:contain;width:100%;height:100%;max-height:660px}.work-image-stage p{padding:24px}.work-gallery figcaption{color:var(--color-dim);grid-template-columns:155px 1fr;gap:16px;padding-top:14px;font-size:14px;display:grid}.work-gallery-controls{justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:14px;display:flex}.work-gallery-controls button{min-width:36px;min-height:44px}.work-image-pages{flex-wrap:wrap;justify-content:center;display:flex}.work-image-pages button[aria-pressed=true]{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:6px}.work-scope{border-top:1px solid var(--color-faint);border-bottom:1px solid var(--color-faint);grid-template-columns:1.3fr 1fr;gap:36px;margin:32px 0;padding:24px 0;display:grid}.work-case h3{color:var(--color-dim);margin-bottom:8px;font-size:14px;font-weight:400}.work-scope ul{list-style:none}.work-scope li+li{margin-top:5px}.work-narrative{max-width:76ch;margin:24px 0}.work-credits{border-top:1px solid var(--color-faint);margin-top:32px;padding-top:20px}.work-tools{margin-top:16px}.work-links{flex-wrap:wrap;gap:20px;margin:20px 0;display:flex}.work-empty{color:var(--color-dim);padding:28px 0}.work-empty button,.work-image-stage button{text-decoration:underline}.work-footer{border-top:1px solid var(--color-faint);margin-top:70px;padding:20px 0}.work-skip{background:var(--color-bg);z-index:20;padding:12px;position:absolute;top:-100px}.work-skip:focus{top:8px}@media (min-width:1440px){.work-layout{grid-template-columns:350px minmax(0,1fr);gap:64px}}@media (max-width:900px){.portfolio-work{padding:20px}.work-layout{grid-template-columns:1fr;gap:32px}.work-browser{grid-template-columns:1fr 1fr;gap:0 16px;max-height:none;display:grid;position:static;overflow:visible}.work-browser-heading,.work-mobile-picker,.work-empty{grid-column:1/-1}.work-mobile-picker{display:block}.work-project-list{display:none}.work-header>div{gap:16px}.work-private{display:none}}@media (max-width:540px){.portfolio-work{padding:18px 16px}.work-intro{padding:28px 0 24px}.work-selections{gap:6px 18px}.work-layout{padding-top:24px}.work-scope{grid-template-columns:1fr;gap:22px}.work-gallery figcaption{grid-template-columns:1fr;gap:4px}.work-gallery-controls{gap:4px}.work-image-pages button{min-width:30px}.work-footer{flex-direction:column;gap:8px}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fbf9f4;--color-fg:#000;--color-dim:#67645e;--color-faint:#918c84;--color-accent:#233d48}.ascii-fit{width:100%;container-type:inline-size}@supports not (container-type:inline-size){.ascii{font-size:clamp(.5rem,1.7vw,.8rem)}}.ascii{font-family:var(--font-mono);white-space:pre;width:fit-content;max-width:100%;color:var(--identity-ink);text-shadow:0 0 16px;font-size:min(.9rem,3.96825cqw);font-weight:700;line-height:1.05;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.ascii{text-shadow:0 0 16px color-mix(in srgb, currentColor 30%, transparent)}}.ascii{cursor:crosshair;touch-action:none;transition:text-shadow .3s}html[data-theme=light] .ascii{color:var(--identity-ink);text-shadow:none}.ascii:hover{text-shadow:0 0 26px}@supports (color:color-mix(in lab, red, red)){.ascii:hover{text-shadow:0 0 26px color-mix(in srgb, currentColor 55%, transparent)}}@media (prefers-reduced-motion:reduce){.ascii{animation:none}}.rule{white-space:nowrap;overflow:hidden}.clock-time{color:var(--color-fg);letter-spacing:.02em}.rule-mark,.marker{color:var(--color-accent)}.rule-label{color:var(--color-dim)}.btn-accent{color:var(--color-accent);border-color:var(--color-accent);transition:background-color .18s,color .18s,border-color .18s}.btn-accent:hover:not(:disabled){background-color:var(--color-accent);color:var(--color-bg)}.copied{color:var(--color-accent)}@media (max-width:410px){.site-chrome:has([data-site-identity][data-collapsed=true]){grid-template-columns:minmax(0,1fr) auto;gap:0 12px;display:grid}.site-identity[data-collapsed=true]{display:contents}.site-identity[data-collapsed=true] .site-name{grid-column:1/-1;width:auto}.site-identity[data-collapsed=true] .site-identity-links{grid-area:2/1;gap:16px}.site-chrome:has([data-collapsed=true]) .weather-clocks{grid-area:2/2;width:auto}.site-chrome:has([data-collapsed=true]) .weather-cities{gap:10px}}@media (max-width:360px){.site-chrome:has([data-collapsed=true]) .clock-time{display:none}}@property --portfolio-accent{syntax:"<color>";inherits:true;initial-value:#4135ad}:root{--portfolio-on-accent:#fff}html[data-theme=dark]{--portfolio-on-accent:#101820}.portfolio-accent{--portfolio-accent:#4135ad;color:var(--portfolio-on-accent);text-decoration:none;animation:14s ease-in-out infinite portfolio-accent-day}html[data-theme=dark] .portfolio-accent{animation-name:portfolio-accent-night}.portfolio-accent-block{background:var(--portfolio-accent);color:var(--portfolio-on-accent);padding:.15em .48em .2em;transition:transform .22s;display:inline-block;transform:rotate(-2deg)}.portfolio-accent:hover .portfolio-accent-block,.portfolio-accent:focus-visible .portfolio-accent-block{transform:rotate(2deg)translateY(-1px)}.portfolio-accent-block [data-ripple-text]{color:inherit!important;text-decoration:none!important}.portfolio-accent:focus-visible{outline:2px solid var(--weather-ink);outline-offset:5px}@keyframes portfolio-accent-day{0%,to{--portfolio-accent:#4135ad}33%{--portfolio-accent:#005865}66%{--portfolio-accent:#942b68}}@keyframes portfolio-accent-night{0%,to{--portfolio-accent:#c8b9ff}33%{--portfolio-accent:#a3f0d1}66%{--portfolio-accent:#ffc3df}}@media (prefers-reduced-motion:reduce){.portfolio-accent{animation:none}html[data-theme=dark] .portfolio-accent{--portfolio-accent:#c8b9ff}.portfolio-accent-block{transition:none;transform:none}.portfolio-accent:hover .portfolio-accent-block,.portfolio-accent:focus-visible .portfolio-accent-block{transform:none}}@media (forced-colors:active){.portfolio-accent{animation:none}.portfolio-accent-block{color:canvas;background:linktext}}@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-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
