@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:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-md:.375rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.rounded{border-radius:.25rem}}:root{--color-page:#fff;--color-surface:#f7f7f7;--color-surface-strong:#eee;--color-text:#303033;--color-muted:#9a9a9d;--color-soft:#c6c6ca;--color-link:#00e;--color-focus:#00e;--color-current:#f97316;--space-page-x:clamp(1.25rem, 7vw, 9.625rem);--radius-lg:1.5rem;--radius-md:1rem;--font-stack:"SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html{background:var(--color-page);color:var(--color-text);font-family:var(--font-stack);text-rendering:geometricprecision;font-size:15px;line-height:1}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--color-link)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}::selection{background:var(--color-link);color:#fff}.home-page{min-height:100vh;overflow:hidden}.intro-section{min-height:88vh;padding:clamp(5rem,16vh,12.5rem) var(--space-page-x) 4.5rem;gap:clamp(2.5rem,7vw,6rem);display:grid}.intro-copy{max-width:58rem}.intro-name{color:var(--color-muted);letter-spacing:0;margin:0 0 1.2rem;font-size:clamp(1.35rem,2vw,2.1rem);font-weight:400}.intro-updated{color:var(--color-muted);margin:0 0 .35rem;font-size:.82rem;font-weight:400;line-height:1.2}.intro-copy h1{max-width:58rem;color:var(--color-text);letter-spacing:0;margin:0;font-size:clamp(2.35rem,3.05vw,3.55rem);font-weight:400;line-height:1.12}.intro-meta{grid-template-columns:minmax(0,1.35fr) minmax(12rem,.65fr);gap:clamp(2rem,8vw,10rem);max-width:56rem;display:grid}.intro-meta h2{color:var(--color-muted);margin:0 0 1.05rem;font-size:1.05rem;font-weight:450}.intro-meta ul{margin:0;padding:0;list-style:none}.intro-meta li,.intro-meta a{color:var(--color-text);font-size:1.18rem;font-weight:400;line-height:1.22}.intro-meta li{color:var(--color-muted)}.intro-meta strong{color:var(--color-text);font-weight:500}.experience-muted{color:var(--color-muted)}.experience-period{color:var(--color-muted);font-size:.67em}.intro-meta em{border:1px solid var(--color-current);margin-left:.25rem;padding:.18rem .35rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.intro-meta em{border:1px solid color-mix(in srgb,var(--color-current),#fff 55%)}}.intro-meta em{color:var(--color-current);vertical-align:.12em;border-radius:999px;font-size:.72rem;font-style:normal;line-height:1}.intro-meta .experience-list{margin-left:-.78rem;display:grid}.intro-meta .link-list{margin-left:-.78rem}.motion-link{min-height:1.35em;color:var(--color-text);font:inherit;line-height:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;padding:0 0 0 .78rem;display:inline-flex;position:relative}.motion-link__label{will-change:transform;transition:transform .15s;display:inline-block;transform:translate(0)}.motion-link:before{content:"";opacity:0;will-change:transform,opacity;background:#111;border-radius:50%;width:.38rem;height:.38rem;transition:opacity .15s,transform .15s;position:absolute;top:.58em;left:0;transform:translate(.25rem)translateY(-50%)scale(.7)}@media(hover:hover)and (pointer:fine){.motion-link:hover{color:var(--color-text)}.motion-link:hover .motion-link__label{transform:translate(.35rem)}.motion-link:hover:before{opacity:1;transform:translate(0)translateY(-50%)scale(1)}}.motion-link:active .motion-link__label{transform:translate(.25rem)}.work-section{padding:0 clamp(1rem,5vw,6.25rem) 6rem}.section-heading{padding:0 calc(var(--space-page-x) - clamp(1rem,5vw,6.25rem)) 1.25rem;justify-content:space-between;align-items:end;gap:2rem;display:flex}.section-heading h2{margin:0;font-size:clamp(1.5rem,2vw,2rem);font-weight:450}.section-heading p{max-width:28rem;color:var(--color-muted);margin:0;font-size:1rem;font-weight:400;line-height:1.35}.project-table{padding:0 calc(var(--space-page-x) - clamp(1rem,5vw,6.25rem));display:grid}.project-row{border-top:1px solid var(--color-surface-strong);min-height:4.35rem;color:var(--color-text);grid-template-columns:minmax(8rem,.28fr) minmax(0,1fr) 3rem;align-items:center;gap:clamp(1.5rem,5vw,5rem);padding:.95rem 0;display:grid}.project-row:last-child{border-bottom:1px solid var(--color-surface-strong)}.project-row p,.project-row small{color:var(--color-muted);margin:0;font-size:clamp(1rem,1.8vw,1.7rem);font-weight:400;line-height:1.15}.project-row>span,.project-row>a{min-width:0;color:var(--color-text);font-size:clamp(1.25rem,1.85vw,2rem);font-weight:400;line-height:1.12}.project-row>a.motion-link{margin-left:-.78rem}.project-row small{justify-self:end;font-size:clamp(.9rem,1.4vw,1.25rem)}.experience-modal{border-radius:var(--radius-md);width:min(34rem,100vw - 2rem);max-width:none;color:var(--color-text);background:0 0;border:0;margin:auto;padding:0}.experience-modal::backdrop{background:#ffffffb8}.experience-modal__panel{border:1px solid var(--color-surface-strong);border-radius:var(--radius-md);background:#fff;gap:1rem;padding:clamp(1.25rem,3vw,2rem);display:grid;box-shadow:0 1.5rem 5rem #0000001a}.experience-modal__close{color:var(--color-muted);font:inherit;cursor:pointer;background:0 0;border:0;justify-self:end;padding:0}.experience-modal__period,.experience-modal__panel p{color:var(--color-muted);margin:0;font-size:1rem;font-weight:400;line-height:1.35}.experience-modal__panel h2{color:var(--color-text);margin:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:400;line-height:1.05}.case-page{min-height:100vh;padding:clamp(2rem,8vw,7rem) var(--space-page-x)}.about-page{min-height:100vh;padding:clamp(2rem,8vw,7rem) var(--space-page-x) 7rem}.back-link{color:var(--color-muted);font-weight:400}.about-hero{gap:.75rem;margin-top:clamp(4rem,11vw,8rem);margin-bottom:clamp(3rem,8vw,6rem);display:grid}.about-hero p{color:var(--color-muted);margin:0;font-size:.9rem;line-height:1.2}.about-hero h1{max-width:58rem;color:var(--color-text);margin:0;font-size:clamp(3rem,8vw,7rem);font-weight:400;line-height:.98}.about-content{grid-template-columns:minmax(0,1fr) minmax(13rem,.38fr);align-items:start;gap:clamp(2.5rem,9vw,9rem);max-width:70rem;display:grid}.about-copy{gap:1.45rem;display:grid}.about-copy p{color:var(--color-text);margin:0;font-size:clamp(1.4rem,2.2vw,2.15rem);font-weight:400;line-height:1.22}.about-stack h2{color:var(--color-muted);margin:0 0 1rem;font-size:1.05rem;font-weight:450}.about-stack ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.about-stack li{border:1px solid var(--color-surface-strong);color:var(--color-text);border-radius:999px;padding:.48rem .68rem;font-size:.95rem;line-height:1}.case-hero{gap:2rem;max-width:62rem;margin-top:clamp(4rem,12vw,9rem);display:grid}.case-hero p{color:var(--color-muted);margin:0;font-size:1.05rem;font-weight:400;line-height:1.35}.case-hero h1{margin:0;font-size:clamp(3rem,9vw,8rem);font-weight:520;line-height:.92}.case-hero ul{flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.case-hero li{border:1px solid var(--color-surface-strong);border-radius:999px;padding:.55rem .75rem;font-weight:400}@media(max-width:900px){.intro-section{min-height:auto}.intro-meta,.section-heading,.about-content{flex-direction:column;grid-template-columns:1fr;align-items:start}.project-row{grid-template-columns:minmax(0,1fr) 2.5rem;gap:1rem;min-height:4rem;padding:.85rem 0}.project-row p{grid-column:1/-1;font-size:.9rem}}@media(max-width:620px){.intro-section{gap:3rem;padding-top:3.75rem}.intro-name{font-size:1.4rem}.intro-updated{font-size:.78rem}.intro-copy h1{font-size:clamp(2.05rem,10.4vw,2.65rem);line-height:1.08}.intro-meta li,.intro-meta a{font-size:1.05rem}.work-section{padding-inline:.75rem}.section-heading,.project-table{padding-inline:.5rem}.project-row>span,.project-row>a{font-size:1.25rem}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
