/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-font-weight: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;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:"Satoshi", sans-serif;--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-gray-200:oklch(92.8% .006 264.531);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:calc(var(--radius) - 2px);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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:"Satoshi", sans-serif;--default-mono-font-family:"Commit Mono", monospace;--color-brand-background:var(--brand-background);--color-brand-primary:var(--brand-primary);--color-brand-secondary:var(--brand-secondary);--color-primary:var(--primary)}}@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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);color:var(--foreground);font-family:Satoshi,sans-serif}html{font-family:Satoshi,sans-serif}}@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}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.ms-4{margin-inline-start:calc(var(--spacing) * 4)}.mr-2{margin-right:calc(var(--spacing) * 2)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.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}.inline-grid{display:inline-grid}.table{display:table}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-\[400px\]{width:400px}.w-full{width:100%}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.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}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-input{border-color:var(--input)}.bg-background{background-color:var(--background)}.bg-destructive{background-color:var(--destructive)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-600{background-color:var(--color-green-600)}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-primary{background-color:var(--primary)}.p-0{padding:0}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-start{text-align:start}.font-sans{font-family:Satoshi,sans-serif}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.text-destructive{color:var(--destructive)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow,.shadow\/elevation{--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,)}.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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in{--tw-enter-opacity:0}.paused{animation-play-state:paused}.running{animation-play-state:running}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:0deg}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Excon;src:url(/fonts/Excon.woff2)format("woff2");font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi.woff2)format("woff2");font-display:swap}@font-face{font-family:Zodiak;src:url(/fonts/Zodiak.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/CommitMono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/CommitMono-700.woff2)format("woff2");font-weight:700;font-display:swap}body{background-attachment:fixed;min-height:100vh;margin:0;padding:0}a{color:inherit}:root{--brand-background:#faf9f6;--brand-primary:#033dcd;--brand-secondary:#88a0b9;--brand-accent:#fffeab;--ink:var(--brand-primary);--ink-soft:var(--brand-primary)}@supports (color:color-mix(in lab, red, red)){:root{--ink-soft:color-mix(in srgb, var(--brand-primary) 80%, var(--brand-background))}}:root{--rule:var(--brand-secondary)}@supports (color:color-mix(in lab, red, red)){:root{--rule:color-mix(in srgb, var(--brand-secondary) 55%, transparent)}}:root{--rule-strong:var(--brand-primary);--shell:76rem;--gutter:clamp(1rem, 4vw, 3rem);--header-h:4rem;--background:var(--brand-background);--foreground:var(--brand-primary);--card:var(--brand-background)}@supports (color:color-mix(in lab, red, red)){:root{--card:color-mix(in srgb, var(--brand-background) 96%, white)}}:root{--card-foreground:var(--brand-primary);--popover:var(--brand-background)}@supports (color:color-mix(in lab, red, red)){:root{--popover:color-mix(in srgb, var(--brand-background) 94%, white)}}:root{--popover-foreground:var(--brand-primary);--primary:var(--brand-primary);--primary-foreground:var(--brand-background);--secondary:var(--brand-secondary);--secondary-foreground:var(--brand-primary);--muted:oklch(97% 0 0);--muted-foreground:var(--brand-secondary);--accent:var(--brand-secondary);--accent-foreground:var(--brand-background);--destructive:var(--brand-primary);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(90.5% .182 98.111);--chart-2:oklch(79.5% .184 86.047);--chart-3:oklch(68.1% .162 75.834);--chart-4:oklch(55.4% .135 66.442);--chart-5:oklch(47.6% .114 61.907);--radius:.875rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:var(--brand-primary);--sidebar-primary:oklch(68.1% .162 75.834);--sidebar-primary-foreground:oklch(98.7% .026 102.212);--sidebar-accent:var(--brand-secondary);--sidebar-accent-foreground:var(--brand-background);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:var(--brand-primary);--foreground:var(--brand-background);--card:oklch(20.5% 0 0);--card-foreground:var(--brand-background);--popover:oklch(20.5% 0 0);--popover-foreground:var(--brand-background);--primary:var(--brand-background);--primary-foreground:var(--brand-primary);--secondary:var(--brand-secondary);--secondary-foreground:var(--brand-background);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:var(--brand-secondary);--accent-foreground:var(--brand-background);--destructive:var(--brand-background);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(90.5% .182 98.111);--chart-2:oklch(79.5% .184 86.047);--chart-3:oklch(68.1% .162 75.834);--chart-4:oklch(55.4% .135 66.442);--chart-5:oklch(47.6% .114 61.907);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(79.5% .184 86.047);--sidebar-primary-foreground:oklch(98.7% .026 102.212);--sidebar-accent:oklch(79.5% .184 86.047);--sidebar-accent-foreground:oklch(42.1% .095 57.708);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{margin:0;padding:0;overflow-x:clip}#root{min-height:100vh}html{scroll-behavior:smooth;scrollbar-color:var(--brand-primary) transparent}@supports (color:color-mix(in lab, red, red)){html{scrollbar-color:color-mix(in srgb, var(--brand-primary) 35%, transparent) transparent}}html{caret-color:var(--brand-primary);-webkit-tap-highlight-color:transparent}::selection{background:var(--brand-accent);color:var(--ink)}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}a,button,[role=button],summary,label{touch-action:manipulation}a{text-underline-offset:.2em}@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}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}body{font-optical-sizing:auto;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Satoshi,sans-serif;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{letter-spacing:-.015em;font-kerning:normal;text-wrap:balance;color:var(--ink);font-family:Zodiak,serif;font-weight:400;line-height:1.1}p{text-wrap:pretty}code,pre,kbd,samp,time{font-family:Commit Mono,monospace}time,.tabular{font-variant-numeric:tabular-nums}.skip-nav{background:var(--ink);color:var(--brand-background);z-index:200;padding:8px 12px;text-decoration:none;position:absolute;top:-40px;left:0}.skip-nav:focus-visible{top:0}.layout{isolation:isolate;flex-direction:column;min-height:100vh;display:flex;position:relative}.main-content{z-index:1;flex:1;position:relative}.paper-grain{z-index:0;pointer-events:none;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.stipple{z-index:0;pointer-events:none;position:fixed;top:0;left:0}@property --lamp-r{syntax:"<length>";inherits:false;initial-value:0}.stipple-veil{--lamp-x:-999px;--lamp-y:-999px;z-index:0;pointer-events:none;background:color-mix(in srgb, var(--brand-background) 50%, transparent);-webkit-mask-image:radial-gradient(circle var(--lamp-r) at var(--lamp-x) var(--lamp-y), transparent 0%, black 100%);mask-image:radial-gradient(circle var(--lamp-r) at var(--lamp-x) var(--lamp-y), transparent 0%, black 100%);-webkit-mask-image:radial-gradient(circle var(--lamp-r) at var(--lamp-x) var(--lamp-y), transparent 0%, black 100%);transition:--lamp-r var(--dur-slow) var(--ease-out);position:fixed;inset:0}.stipple-veil.is-lit{--lamp-r:190px}.page{max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.section{border-top:1px solid var(--rule-strong);grid-template-columns:minmax(0,1fr) minmax(0,3fr);column-gap:clamp(2rem,5vw,5rem);margin-top:clamp(5rem,11vw,8.5rem);padding-top:1.25rem;display:grid}.section-head{top:calc(var(--header-h) + 1.25rem);align-self:start;position:sticky}.section-title{letter-spacing:-.02em;font-size:clamp(1.75rem,3vw,2.25rem)}.section-count{letter-spacing:0;color:var(--ink-soft);vertical-align:top;font-variant-numeric:tabular-nums;margin-left:.4em;font-family:Commit Mono,monospace;font-size:.75rem}.section-footer{margin-top:1.75rem}.section-note{color:var(--ink-soft)}@media (width<=860px){.section{grid-template-columns:minmax(0,1fr);row-gap:1.75rem}.section-head{position:static}}.page-header{padding-top:calc(var(--header-h) + clamp(3.5rem, 9vw, 6.5rem));padding-bottom:clamp(2.5rem,6vw,4rem)}.page-title{letter-spacing:-.03em;animation:fadeInUp var(--dur-entrance) var(--ease-out) both;font-size:clamp(2.75rem,7vw,4.75rem);line-height:1}.page-lede{max-width:38rem;color:var(--ink-soft);animation:fadeInUp var(--dur-entrance) var(--ease-out) .12s both;margin-top:1.25rem;font-size:clamp(1.0625rem,1.6vw,1.25rem)}.page-note{color:var(--ink-soft);margin-top:2rem}.text-link{color:var(--ink);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.25em;transition:text-decoration-color var(--dur-base) var(--ease-out)}.text-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.arrow-link{color:var(--ink);text-underline-offset:.3em;align-items:center;gap:.5rem;font-weight:500;text-decoration-line:underline;text-decoration-thickness:1px;display:inline-flex}.arrow-link svg{transition:translate var(--dur-base) var(--ease-out)}.arrow-link:hover svg{translate:.25rem}.header{height:calc(var(--header-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);z-index:100;background:color-mix(in srgb, var(--brand-background) 88%, transparent);-webkit-backdrop-filter:blur(10px);transition:border-color var(--dur-slow) var(--ease-out);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.header.is-scrolled,.header.is-open{border-bottom-color:var(--rule)}.header-content{max-width:var(--shell);height:100%;padding-inline:var(--gutter);justify-content:space-between;align-items:center;gap:2rem;margin-inline:auto;display:flex}.header-mark{letter-spacing:-.01em;align-items:center;gap:.6rem;font-family:Zodiak,serif;font-size:1.125rem;font-weight:500;text-decoration:none;display:inline-flex}.header-logo{flex-shrink:0;width:1.75rem;height:1.75rem}.header-logo .logo-stop{transform-box:fill-box;transform-origin:50%;transition:scale var(--dur-slow) var(--ease-out)}.header-mark:hover .logo-stop{scale:1.3}.header-nav{align-items:center;gap:clamp(1rem,2.5vw,2rem);display:flex}.header-link{color:var(--ink-soft);text-underline-offset:.45em;transition:color var(--dur-base) var(--ease-out), text-decoration-color var(--dur-base) var(--ease-out);font-size:.9375rem;font-weight:500;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.header-link:hover{color:var(--ink);-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.header-link.active{color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.header-link-file{border:1px dashed var(--rule);border-radius:3px;padding:.2rem .5rem;font-family:Commit Mono,monospace;font-size:.78rem;font-weight:400;text-decoration:none}.header-link-file:hover{border-style:solid;border-color:var(--ink)}.mobile-menu-btn{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;min-height:44px;padding:.5rem 0;font-size:.9375rem;font-weight:500;display:none}.mobile-nav{display:none}@media (width<=760px){.header-nav{display:none}.mobile-menu-btn{display:block}.mobile-nav{inset:calc(var(--header-h) + env(safe-area-inset-top)) 0 0;padding:2rem var(--gutter);background:var(--brand-background);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);flex-direction:column;gap:.25rem;display:flex;position:fixed}.header.is-open .mobile-nav{opacity:1;visibility:visible;transition:opacity var(--dur-base) var(--ease-out), visibility 0s}.mobile-nav .header-link{opacity:0;translate:0 var(--rise);transition:opacity var(--dur-slow) var(--ease-out), translate var(--dur-slow) var(--ease-out);padding-block:.4rem;font-family:Zodiak,serif;font-size:2.25rem;font-weight:400}.mobile-nav .header-link-file{align-self:flex-start;margin-top:1rem;padding:.35rem .6rem;font-family:Commit Mono,monospace;font-size:.875rem}.header.is-open .mobile-nav .header-link{opacity:1;transition-delay:calc(var(--i,0) * 40ms + 40ms);translate:0}}.footer{z-index:1;margin-top:clamp(6rem,12vw,10rem);position:relative}.footer-content{width:min(100% - 2 * var(--gutter), var(--shell) - 2 * var(--gutter));border-top:1px solid var(--rule-strong);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;margin-inline:auto;padding:1.5rem 0 2.5rem;font-size:.875rem;display:flex}.footer-copy{color:var(--ink-soft)}.footer-links{flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;display:flex}.footer-link{text-underline-offset:.3em;min-height:44px;transition:text-decoration-color var(--dur-base) var(--ease-out);align-items:center;gap:.45rem;font-weight:500;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px;display:inline-flex}.footer-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.footer-icon{flex-shrink:0;width:1rem;height:1rem}.hero{padding-top:calc(var(--header-h) + clamp(4rem, 12vw, 9rem));grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(2rem,6vw,6rem);display:grid}.hero-name{letter-spacing:-.01em;text-transform:uppercase;flex-wrap:wrap;column-gap:.28em;font-family:Excon,sans-serif;font-size:clamp(3.5rem,11vw,6rem);font-weight:400;line-height:.92;display:flex}.hero-name-word{padding-block:.04em;display:inline-flex;overflow:clip}.hero-name-letter{display:inline-block}.hero-role{letter-spacing:-.015em;margin-top:1.5rem;font-family:Zodiak,serif;font-size:clamp(1.375rem,2.6vw,1.875rem);line-height:1.2}.hero-lede{max-width:34rem;color:var(--ink-soft);margin-top:1rem;font-size:clamp(1.0625rem,1.5vw,1.1875rem)}.hero-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:2rem;font-size:.875rem;display:flex}.hero-meta>*+:before{content:"";vertical-align:middle;background:var(--rule);width:1.5rem;height:1px;margin-right:1rem;display:inline-block}.hero-portrait{aspect-ratio:4/5;border-radius:2px;width:clamp(9rem,17vw,14.5rem);display:block;overflow:hidden}.hero-portrait img{object-fit:cover;object-position:center 12%;width:100%;height:100%;transition:scale var(--dur-slow) var(--ease-out)}.hero-portrait:hover img{scale:1.035}@media (width<=640px){.hero{grid-template-columns:minmax(0,1fr);gap:2rem}.hero-portrait{order:-1;width:6.5rem}}.work-link.is-linked,.writing-link,.contact-link{background-image:linear-gradient(var(--brand-accent), var(--brand-accent));transition:background-size var(--dur-slow) var(--ease-out);background-repeat:no-repeat;background-size:0% 100%;text-decoration:none}.work-link.is-linked:hover,.writing-link:hover,.contact-link:hover{background-size:100% 100%}.work-link:focus-visible,.writing-link:focus-visible,.contact-link:focus-visible{outline-offset:-2px}.work-arrow{color:var(--ink);justify-content:flex-end;font-size:1.125rem;display:flex}.work-arrow svg{transition:translate var(--dur-base) var(--ease-out)}.work-link:hover .work-arrow svg,.writing-link:hover .work-arrow svg{translate:2px -2px}.work-group+.work-group{margin-top:3rem}.work-group-title{letter-spacing:0;color:var(--ink-soft);padding-bottom:.75rem;font-family:Satoshi,sans-serif;font-size:.875rem;font-weight:500}.work-list,.writing-list,.journey-list,.contact-list{border-top:1px solid var(--rule);list-style:none}.work-row,.writing-row,.journey-row,.contact-list>li{border-bottom:1px solid var(--rule)}.work-link{grid-template-columns:3.5rem minmax(0,1fr) 5.5rem 1.25rem;align-items:baseline;gap:1.5rem;margin-inline:-.75rem;padding:1.05rem .75rem;display:grid}.work-year,.writing-date,.journey-when{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-family:Commit Mono,monospace;font-size:.8125rem}.work-main{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:baseline;gap:.25rem 1.5rem;display:grid}.work-title{letter-spacing:-.01em;font-family:Zodiak,serif;font-size:1.3125rem;font-weight:500;line-height:1.2}.work-summary{color:var(--ink-soft)}.work-status{color:var(--ink-soft);align-items:center;gap:.45rem;font-size:.8125rem;display:inline-flex}.work-status:is(.active,.upcoming):before{content:"";border-radius:50%;flex-shrink:0;width:.4rem;height:.4rem}.work-status.active:before{background:var(--ink)}.work-status.upcoming:before{box-shadow:inset 0 0 0 1px var(--ink)}.work-status.retired{text-decoration:line-through;text-decoration-thickness:1px}.work-index.is-detailed .work-group+.work-group{margin-top:clamp(4rem,8vw,6rem)}.work-index.is-detailed .work-group-title{letter-spacing:-.015em;color:var(--ink);padding-bottom:1rem;font-family:Zodiak,serif;font-size:clamp(1.5rem,2.6vw,1.875rem);font-weight:400}.work-index.is-detailed .work-link{grid-template-columns:4.5rem minmax(0,1fr) 5.5rem 1.25rem;padding-block:1.5rem}.work-index.is-detailed .work-main{flex-direction:column;gap:.6rem;display:flex}.work-index.is-detailed .work-title{font-size:clamp(1.5rem,2.4vw,1.875rem)}.work-index.is-detailed .work-summary{max-width:62ch;font-size:1.0625rem}.work-tech{color:var(--ink-soft);font-size:.875rem}.work-figure{max-width:42rem;margin:0 0 1.75rem 6rem}.work-figure img{border:1px solid var(--rule);border-radius:3px;width:100%;height:auto;display:block}@media (width<=720px){.work-link,.work-index.is-detailed .work-link{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"year status arrow""main main main";gap:.4rem 1rem}.work-year{grid-area:year}.work-status{grid-area:status}.work-arrow{grid-area:arrow}.work-main{grid-area:main;grid-template-columns:minmax(0,1fr)}.work-figure{margin-left:0}}.work-preview{aspect-ratio:1200/630;clip-path:inset(0 0 100% round 3px);opacity:0;transition:clip-path .52s var(--ease-out), opacity var(--dur-base) var(--ease-out);margin-top:1.75rem;position:relative}.work-preview.is-visible{clip-path:inset(0 round 3px);opacity:1}.work-preview-image{object-fit:cover;object-position:top center;border:1px solid var(--rule);opacity:0;width:100%;height:100%;transition:opacity var(--dur-base) linear;border-radius:3px;position:absolute;inset:0}.work-preview-image.is-active{opacity:1}@media (width<=860px),not ((hover:hover) and (pointer:fine)){.work-preview{display:none}}.writing-link{grid-template-columns:5.5rem minmax(0,1fr) 11rem 1.25rem;align-items:baseline;gap:1.5rem;margin-inline:-.75rem;padding:1.05rem .75rem;display:grid}.writing-main{flex-direction:column;gap:.5rem;display:flex}.writing-title{letter-spacing:-.01em;font-family:Zodiak,serif;font-size:1.3125rem;font-weight:500;line-height:1.25}.writing-description{max-width:62ch;color:var(--ink-soft)}.writing-meta{color:var(--ink-soft);flex-direction:column;font-size:.875rem;display:flex}.writing-list.is-detailed .writing-link{padding-block:1.5rem}.writing-list.is-detailed .writing-title{font-size:clamp(1.375rem,2.2vw,1.75rem)}@media (width<=720px){.writing-link{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date arrow""main main""meta meta";gap:.4rem 1rem}.writing-date{grid-area:date}.writing-link .work-arrow{grid-area:arrow}.writing-main{grid-area:main}.writing-meta{flex-direction:row;grid-area:meta;gap:.75rem}}.journey-row{grid-template-columns:6rem minmax(0,1fr) 6.5rem;align-items:baseline;gap:1.5rem;padding-block:.9rem;display:grid}.journey-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:baseline;gap:.25rem 1.5rem;display:grid}.journey-role{letter-spacing:-.01em;font-family:Zodiak,serif;font-size:1.125rem;font-weight:500;line-height:1.25}.journey-org,.journey-kind{color:var(--ink-soft)}.journey-kind{text-align:right;font-size:.8125rem}.journey-list.is-detailed .journey-row{grid-template-columns:11rem minmax(0,1fr) 6.5rem;padding-block:1.5rem}.journey-list.is-detailed .journey-main{flex-direction:column;gap:.35rem;display:flex}.journey-list.is-detailed .journey-role{font-size:clamp(1.375rem,2.2vw,1.625rem)}.journey-summary{max-width:62ch;margin-top:.35rem}.journey-highlights{color:var(--ink-soft);font-size:.875rem}@media (width<=720px){.journey-row,.journey-list.is-detailed .journey-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"when kind""main main";gap:.35rem 1rem}.journey-when{grid-area:when}.journey-kind{grid-area:kind}.journey-main{grid-area:main;grid-template-columns:minmax(0,1fr)}}.contact-lede{max-width:62ch;color:var(--ink-soft);margin-bottom:1.5rem;font-size:1.125rem}.contact-link{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1.5rem;margin-inline:-.75rem;padding:1rem .75rem;display:flex}.contact-label{letter-spacing:-.025em;font-family:Zodiak,serif;font-size:clamp(1.875rem,4.5vw,3rem);line-height:1.05}.contact-detail{color:var(--ink-soft);font-family:Commit Mono,monospace;font-size:.875rem}.about-bio{grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:start;column-gap:clamp(2rem,5vw,5rem);display:grid}.about-portrait{aspect-ratio:4/5;border-radius:2px;overflow:hidden}.about-portrait img{object-fit:cover;object-position:center 12%;width:100%;height:100%}.prose{max-width:62ch;font-size:1.125rem;line-height:1.65}.prose p+p{margin-top:1.1em}.skills-list{border-top:1px solid var(--rule)}.skills-row{border-bottom:1px solid var(--rule);grid-template-columns:9rem minmax(0,1fr);gap:.25rem 1.5rem;padding-block:.9rem;display:grid}.skills-row dt{font-weight:500}.skills-row dd{color:var(--ink-soft)}@media (width<=860px){.about-bio{grid-template-columns:minmax(0,1fr);row-gap:2rem}.about-portrait{width:10rem}}@media (width<=520px){.skills-row{grid-template-columns:minmax(0,1fr)}}.not-found{padding-top:calc(var(--header-h) + clamp(4rem, 14vw, 10rem))}.not-found-code{color:var(--ink-soft);margin-bottom:1rem;font-family:Commit Mono,monospace;font-size:.875rem}.not-found .page-lede{margin-bottom:2rem}:root{--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.14s;--dur-base:.24s;--dur-slow:.42s;--dur-entrance:.8s;--rise:8px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(var(--rise))}to{opacity:1;transform:translateY(0)}}@keyframes reveal{0%{opacity:0;translate:0 var(--rise)}to{opacity:1;translate:none}}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}@keyframes letterRise{0%{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes portraitReveal{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes portraitSettle{0%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes loaderDot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.hero-name-letter{animation:letterRise .95s var(--ease-out) calc(80ms + var(--i,0) * 45ms) both}.hero-role{animation:fadeInUp var(--dur-entrance) var(--ease-out) .48s both}.hero-lede{animation:fadeInUp var(--dur-entrance) var(--ease-out) .58s both}.hero-meta{animation:fadeInUp var(--dur-entrance) var(--ease-out) .68s both}.hero-portrait{animation:portraitReveal 1.1s var(--ease-out) .22s both}.hero-portrait img{animation:portraitSettle 1.5s var(--ease-out) .22s both}.page-transition{animation:pageEnter var(--dur-slow) var(--ease-out) both}.page-loader{min-height:60vh;animation:pageEnter var(--dur-base) var(--ease-out) .25s both;justify-content:center;align-items:center;gap:.4rem;display:flex}.page-loader-dot{background:var(--ink);width:.45rem;height:.45rem;animation:loaderDot 1s var(--ease-in-out) infinite;border-radius:50%}.page-loader-dot:nth-child(2){animation-delay:.12s}.page-loader-dot:nth-child(3){animation-delay:.24s}.motion-ok [data-reveal]:not(.is-revealed){opacity:0}.motion-ok [data-reveal].is-revealed{animation:reveal .7s var(--ease-out) var(--reveal-delay,0s) both}@media (prefers-reduced-motion:reduce){:root{--rise:0px}html{scroll-behavior:auto}.page-loader-dot,.hero-portrait img{animation:none}.hero-name-letter,.hero-portrait{animation-name:pageEnter}.work-preview-frame{transition:opacity var(--dur-base) linear;clip-path:none}}
