:root{--bg:#f4ede3;--fg:#1f1a17;--muted:#6e6255;--accent:#c75c31;--line:#d9cabb;--surface:#fffaf2;--surface-strong:#fffaf2f0;--shadow:0 28px 60px #3a23121a}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg)}body{min-height:100vh;margin:0;font-family:Georgia,Times New Roman,serif}a{color:inherit}button,input,textarea{font:inherit}.site-theme{background:var(--theme-bg,var(--bg));color:var(--theme-fg,var(--fg));min-height:100vh;position:relative;overflow:clip}.site-theme:before{background:radial-gradient(circle at top left, color-mix(in srgb, var(--theme-accent,var(--accent)) 18%, transparent), transparent 34%), radial-gradient(circle at 85% 12%, #ffffff8c, transparent 28%);content:"";pointer-events:none;position:absolute;inset:0}.site-theme[data-background-mode=solid]:before{background:linear-gradient(#fff3,#0000 30%)}.site-theme[data-background-mode=image]:before{background:linear-gradient(#f4ede3c7,#f4ede3eb)}.site-theme__backdrop{opacity:.16;pointer-events:none;position:absolute;inset:0}.site-theme__backdrop-image{object-fit:cover}.site-shell{z-index:1;max-width:1180px;margin:0 auto;padding:28px 20px 72px;position:relative}.site-header{border-bottom:1px solid var(--theme-line,var(--line));justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:48px;padding-bottom:18px;display:flex}.site-brand{max-width:460px}.site-brand__link{align-items:center;gap:16px;text-decoration:none;display:inline-flex}.site-brand__logo{object-fit:cover;border-radius:22px;width:72px;height:72px;display:block}.site-brand__copy{gap:6px;display:grid}.site-title{letter-spacing:.02em;font-size:1.35rem;font-weight:700}.site-header__tagline{color:var(--theme-muted,var(--muted));max-width:36ch;margin:0;font-size:.95rem;line-height:1.5;display:none}.site-header__meta{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px 14px;max-width:420px;display:flex}.site-main{gap:28px;display:grid}.hero{align-items:start;column-gap:clamp(28px,5vw,72px);min-height:min(76svh,820px);padding:8px 0 12px;display:grid}.hero__content{gap:18px;min-width:0;max-width:36rem;display:grid}.hero__eyebrow,.section__eyebrow{color:var(--theme-accent,var(--accent));letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:700}.hero h1,.section__title{overflow-wrap:break-word;min-width:0;margin:0}.hero h1{letter-spacing:-.03em;font-size:clamp(2.8rem,5.4vw,4.9rem);line-height:.95}.hero__lede,.section__content,.site-footer,.form-feedback{color:var(--theme-muted,var(--muted))}.hero__lede,.section__content{font-size:1.05rem;line-height:1.8}.hero__actions,.locale-switcher,.obfuscated-email,.site-footer__links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero__actions{margin-top:8px}.hero__media{justify-self:end;width:100%;max-width:470px;position:relative}.hero__media:before{background:var(--theme-accent,var(--accent));content:"";opacity:.12;border-radius:36px;position:absolute;inset:16px -12px -16px 12px}.hero__image{background:var(--theme-surface,var(--surface));border:1px solid var(--theme-line,var(--line));box-shadow:var(--shadow);object-fit:cover;z-index:1;border-radius:34px;width:100%;height:auto;display:block;position:relative}.section{background:var(--surface-strong);border:1px solid var(--theme-line,var(--line));box-shadow:var(--shadow);border-radius:32px;padding:28px}.section__title{letter-spacing:-.04em;margin-bottom:20px;font-size:clamp(2rem,4vw,3.2rem);line-height:.92}.profile-section__body:after{clear:both;content:"";display:block}.profile-section__media{float:left;max-width:min(260px,100%);width:min(var(--profile-section-image-width,20%), 260px);margin:0 24px 16px 0}.profile-section__image{background:var(--theme-surface,var(--surface));border:1px solid var(--theme-line,var(--line));box-shadow:var(--shadow);border-radius:24px;width:100%;height:auto;display:block}.about-layout{gap:18px;display:grid}.about-layout__intro,.about-block p{margin:0}.about-block{border-top:1px solid var(--theme-line,var(--line));gap:10px;padding-top:18px;display:grid}.about-block:first-of-type{border-top:0;padding-top:0}.about-block__title{color:var(--theme-accent,var(--accent));margin:0;font-size:1rem;line-height:1.4}.about-block__list{gap:8px;margin:0;padding-left:1.2rem;display:grid}.hero__actions a,.obfuscated-email button,.ui-button{background:var(--theme-accent,var(--accent));border:1px solid var(--theme-accent,var(--accent));color:#fff8ef;cursor:pointer;border-radius:999px;min-height:44px;padding:10px 18px;text-decoration:none}.hero__actions a:last-child,.ui-button--ghost,.hero__actions--muted a{border-color:var(--theme-line,var(--line));color:var(--theme-fg,var(--fg));background:0 0}.locale-switcher__link,.meta-link{color:var(--theme-muted,var(--muted));border-bottom:1px solid #0000;font-size:.9rem;text-decoration:none}.locale-switcher{gap:6px}.locale-switcher__item{align-items:center;gap:6px;display:inline-flex}.locale-switcher__frame,.locale-switcher__separator{color:var(--theme-muted,var(--muted));font-size:.9rem}.meta-link,.locale-switcher__link.is-active{border-color:var(--theme-accent,var(--accent))}.stack{gap:14px;display:grid}.stack label{gap:6px;display:grid}.ui-input,.ui-textarea{border:1px solid var(--theme-line,var(--line));color:var(--theme-fg,var(--fg));background:#ffffffb8;border-radius:18px;width:100%;padding:12px 14px}.honeypot{position:absolute;left:-9999px}.text-link{color:var(--theme-accent,var(--accent));text-underline-offset:.16em;text-decoration-thickness:1px}.selected-projects{gap:18px;display:grid}.selected-projects-section>.section__eyebrow,.selected-projects-section>.section__content>.selected-projects__intro,.projects-listing-section>.section__eyebrow{display:none}.project-detail{gap:18px;display:grid}.project-detail__intro,.project-card__intro{align-items:start;gap:14px;display:grid}.project-detail__copy,.project-card__copy{gap:10px;min-width:0;display:grid}.project-detail__block{border-top:1px solid var(--theme-line,var(--line));gap:10px;padding-top:18px;display:grid}.project-detail__block:first-child{border-top:0;padding-top:0}.project-detail__role{color:var(--theme-muted,var(--muted))}.project-detail__section-title{color:var(--theme-accent,var(--accent));margin:0;font-size:.92rem;line-height:1.4}.project-detail__list{margin:0;padding-left:1.2rem}.project-detail__block p{margin:0}.project-card{border-top:1px solid var(--theme-line,var(--line));gap:10px;padding-top:18px;display:grid}.project-card:first-child{border-top:0;padding-top:0}.project-card h3{color:var(--theme-accent,var(--accent));margin:0;font-size:.92rem;line-height:1.4}.project-card h3 a{color:inherit;text-decoration:none}.project-card__image{border:1px solid var(--theme-line,var(--line));object-fit:cover;background:#ffffffb8;border-radius:22px;width:180px;height:180px;display:block}.project-card__role,.project-card__summary,.selected-projects__footer{margin:0}.project-card__role{color:inherit;font-size:inherit;letter-spacing:normal;text-transform:none}.project-card__stack{flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none;display:flex}.project-card__stack li{border:1px solid var(--theme-line,var(--line));color:var(--theme-fg,var(--fg));border-radius:999px;padding:5px 10px;font-size:.88rem}.selected-projects__footer{margin-top:20px}@media (min-width:721px){.project-card__intro--with-image,.project-detail__intro--with-image{grid-template-columns:180px minmax(0,1fr)}.project-detail__intro .project-card__image{width:180px;height:180px}}.site-footer{border-top:1px solid var(--theme-line,var(--line));gap:12px;margin-top:12px;padding-top:12px;font-size:.95rem;display:grid}.site-footer__links{justify-content:flex-start}.site-footer__text{margin:0}@media (max-width:860px){.site-header{flex-direction:column}.site-header__meta{justify-content:flex-start;align-items:flex-start;max-width:none}.hero{grid-template-columns:1fr;gap:32px;min-height:auto}.hero__media{justify-self:stretch;max-width:none}.profile-section__media{float:none;width:min(100%,220px);max-width:min(220px,100%);margin:0 0 20px}}@media (max-width:640px){.hero h1{font-size:clamp(2.2rem,9vw,3.4rem)}}@media (min-width:861px){.hero{grid-template-columns:minmax(0, min(var(--hero-text-width,60%), calc(100% - 260px))) minmax(260px, calc(100% - var(--hero-text-width,60%)))}.hero__media{justify-self:stretch;max-width:none}.hero__content,.hero__content>*{width:100%;min-width:0;max-width:100%}}
