:root{--color-green: oklch(48% .06 210);--color-green-deep: oklch(38% .055 210);--color-green-muted: oklch(58% .045 210);--color-amber: oklch(62% .06 55);--color-amber-deep: oklch(48% .055 55);--color-amber-light: oklch(94% .03 55);--color-ink: oklch(28% .02 240);--color-bg: oklch(98% .008 85);--color-bg-tint: oklch(95.5% .012 80);--color-surface: oklch(99.5% .006 85);--color-on-primary: oklch(97% .02 210);--color-text: var(--color-ink);--ease-out: cubic-bezier(.25, 1, .5, 1);--color-text-muted: oklch(48% .025 220);--color-border: oklch(88% .015 80);--color-accent: var(--color-green);--color-accent-hover: var(--color-green-deep);--color-link: var(--color-green-deep);--color-focus: var(--color-amber);--scroll-offset: 5.5rem;--badge-product: oklch(94% .03 210);--badge-product-text: oklch(38% .055 210);--badge-project: oklch(93% .028 175);--badge-project-text: oklch(40% .05 175);--badge-experiment: oklch(93% .035 55);--badge-experiment-text: oklch(45% .06 55);--badge-research: oklch(94% .025 230);--badge-research-text: oklch(40% .05 230);--badge-content: oklch(94% .02 75);--badge-content-text: oklch(42% .04 65);--badge-ai: oklch(93% .03 215);--badge-ai-text: oklch(39% .05 215);--badge-home: oklch(92% .03 55);--badge-home-text: oklch(44% .055 55);--shadow-primary: oklch(38% .06 210 / .22);--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;--font-sans: var(--font-body);--font-mono: ui-monospace, "Cascadia Code", Menlo, monospace;--text-caption: .8125rem;--text-sm: .9375rem;--text-body: 1.0625rem;--text-lead: 1.25rem;--text-subhead: clamp(1.375rem, 2.5vw, 1.75rem);--text-display: clamp(2rem, 5vw, 3.125rem);--leading-tight: 1.12;--leading-snug: 1.25;--leading-body: 1.65;--leading-caption: 1.4;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4.5rem;--space-section: clamp(2rem, 5vw, 3rem);--space-hero-top: clamp(2.25rem, 7vw, 4.5rem);--container-inline: max(1rem, env(safe-area-inset-left, 0px));--radius: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px oklch(28% .02 240 / .06);--shadow-card: 0 4px 18px oklch(28% .02 240 / .07);--shadow-card-hover: 0 10px 28px var(--shadow-primary);--max-width: 72rem;--prose-width: 42rem}@media(prefers-color-scheme:dark){:root{--color-green: oklch(62% .07 210);--color-green-deep: oklch(72% .06 210);--color-green-muted: oklch(55% .05 210);--color-amber: oklch(72% .07 55);--color-amber-deep: oklch(78% .06 55);--color-ink: oklch(94% .01 240);--color-bg: oklch(18% .02 240);--color-bg-tint: oklch(21% .022 235);--color-surface: oklch(24% .025 235);--color-text: oklch(94% .01 240);--color-text-muted: oklch(72% .025 220);--color-border: oklch(32% .025 235);--color-link: oklch(78% .08 210);--color-focus: oklch(78% .08 55);--badge-product: oklch(28% .04 210);--badge-product-text: oklch(82% .06 210);--badge-project: oklch(28% .035 175);--badge-project-text: oklch(84% .06 175);--badge-experiment: oklch(30% .04 55);--badge-experiment-text: oklch(84% .07 55);--badge-research: oklch(28% .035 230);--badge-research-text: oklch(82% .06 230);--badge-content: oklch(29% .03 75);--badge-content-text: oklch(84% .06 65);--badge-ai: oklch(28% .04 215);--badge-ai-text: oklch(83% .06 215);--badge-home: oklch(30% .04 55);--badge-home-text: oklch(84% .07 55);--shadow-primary: oklch(62% .07 210 / .35);--shadow-card: 0 4px 20px oklch(0% 0 0 / .35);--shadow-card-hover: 0 10px 28px var(--shadow-primary);--color-on-primary: oklch(22% .03 210)}.hero__emphasis{color:var(--color-link)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);color:var(--color-text);background-color:var(--color-bg);font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1;-webkit-font-smoothing:antialiased}img,svg{max-width:100%;height:auto}a{color:var(--color-link);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:var(--space-md);z-index:100;padding:var(--space-sm) var(--space-md);background:var(--color-green);color:var(--color-on-primary);text-decoration:none;border-radius:var(--radius);font-weight:500}.skip-link:focus-visible{top:var(--space-md)}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:max(var(--container-inline),env(safe-area-inset-left,0px)) max(var(--container-inline),env(safe-area-inset-right,0px))}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--color-border);background:var(--color-surface);padding-top:env(safe-area-inset-top,0px)}.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm) var(--space-lg);padding-block:var(--space-md)}.site-logo{display:inline-grid;grid-template-columns:auto 1fr;column-gap:.5rem;row-gap:.1rem;align-items:center;min-width:0;text-decoration:none;color:var(--color-text)}.site-logo:hover,.site-logo:focus-visible{color:var(--color-text)}.site-logo__mark{grid-column:1;grid-row:1;width:10px;height:10px;border-radius:3px;background:var(--color-green);transform:rotate(-8deg)}.site-logo__text{grid-column:2;grid-row:1;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lead);line-height:var(--leading-snug);letter-spacing:-.025em}.site-logo__tagline{grid-column:2;grid-row:2;font-family:var(--font-body);font-size:var(--text-caption);font-weight:var(--weight-medium);line-height:var(--leading-caption);color:var(--color-text-muted);letter-spacing:.01em}.site-logo__accent{color:var(--color-green)}.site-nav{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin:0;padding:0}.site-nav a{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);padding:.5em 1em;border-radius:var(--radius-pill);transition:background .2s var(--ease-out),color .2s var(--ease-out)}.site-nav a:hover{color:var(--color-text);background:var(--color-bg-tint)}.site-nav a:focus-visible{color:var(--color-text);background:var(--color-bg-tint)}.site-nav a:active{background:color-mix(in srgb,var(--color-green) 12%,var(--color-bg-tint))}main{padding-block:0}.section{padding-block:var(--space-section);scroll-margin-top:calc(var(--scroll-offset) + env(safe-area-inset-top,0px))}#projects,#contact{scroll-margin-top:calc(var(--scroll-offset) + env(safe-area-inset-top,0px))}.section--tinted{background:var(--color-bg-tint);border-block:1px solid var(--color-border)}.section__title{font-family:var(--font-display);font-size:var(--text-subhead);font-weight:var(--weight-bold);line-height:var(--leading-snug);margin:0 0 var(--space-lg);letter-spacing:-.03em;color:var(--color-text)}.section__title:before{content:"";display:block;width:2.25rem;height:3px;border-radius:var(--radius-pill);background:var(--color-green);margin-bottom:var(--space-md)}.section__lead{font-size:var(--text-lead);font-weight:var(--weight-regular);line-height:var(--leading-body);color:var(--color-text-muted);max-width:var(--prose-width);margin:0 0 var(--space-xl)}.hero{padding-block:var(--space-hero-top) var(--space-section)}.hero__inner{position:relative}.hero__title{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.035em;margin:0 0 var(--space-lg);max-width:min(18ch,100%);text-wrap:balance}.hero__emphasis{font-weight:var(--weight-bold);color:var(--color-green-deep)}.hero__subtitle{font-size:var(--text-lead);font-weight:var(--weight-regular);line-height:var(--leading-body);color:var(--color-text-muted);max-width:min(38ch,100%);margin:0 0 var(--space-xl)}.hero__actions{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.7rem 1.4rem;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;border-radius:var(--radius-pill);border:2px solid transparent;cursor:pointer;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out)}.btn:active{transform:translateY(0)}.btn--primary{background:var(--color-green);color:var(--color-on-primary);box-shadow:0 2px 8px var(--shadow-primary)}.btn--primary:hover,.btn--primary:active,.btn--primary:focus-visible{color:var(--color-on-primary);background:var(--color-green-deep);box-shadow:0 4px 12px var(--shadow-primary)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover{border-color:var(--color-amber);color:var(--color-amber-deep);background:color-mix(in srgb,var(--color-amber) 8%,var(--color-surface))}@media(prefers-color-scheme:dark){.btn--secondary:hover{color:var(--color-amber)}}.prose{max-width:var(--prose-width)}.prose p{margin:0 0 var(--space-md);font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-text-muted);max-width:65ch}.prose p:last-child{margin-bottom:0}.card-grid{display:grid;gap:var(--space-lg);grid-template-columns:1fr}.card-grid--projects{grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr))}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-sm);height:100%;min-width:0;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s var(--ease-out)}.card--link{text-decoration:none;color:inherit}.card--link:focus-visible{outline-offset:4px}@media(hover:hover)and (pointer:fine){.btn:hover{transform:translateY(-1px)}.card--project:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--color-green) 35%,var(--color-border));box-shadow:var(--shadow-card-hover);color:inherit}}.card--project:active{border-color:color-mix(in srgb,var(--color-green) 28%,var(--color-border))}.card__title{font-family:var(--font-display);font-size:var(--text-lead);font-weight:var(--weight-semibold);line-height:var(--leading-snug);margin:0;letter-spacing:-.02em;display:flex;align-items:baseline;gap:.35em;flex-wrap:wrap;overflow-wrap:anywhere}.card__external{font-size:.85em;font-weight:500;color:var(--color-green-muted);line-height:1}.card--coming-soon{opacity:.85}.card__description{font-size:var(--text-sm);line-height:var(--leading-body);color:var(--color-text-muted);margin:0;flex:1;overflow-wrap:anywhere}.card__meta{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center;margin-top:auto;padding-top:var(--space-sm);min-width:0}.badge,.tag{max-width:100%;overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--font-body);font-size:var(--text-caption);font-weight:var(--weight-semibold);padding:.25em .65em;border-radius:var(--radius-pill);line-height:var(--leading-caption);letter-spacing:.03em}.badge--product{background:var(--badge-product);color:var(--badge-product-text)}.badge--project{background:var(--badge-project);color:var(--badge-project-text)}.badge--experiment{background:var(--badge-experiment);color:var(--badge-experiment-text)}.badge--research{background:var(--badge-research);color:var(--badge-research-text)}.badge--content{background:var(--badge-content);color:var(--badge-content-text)}.badge--ai{background:var(--badge-ai);color:var(--badge-ai-text)}.badge--home{background:var(--badge-home);color:var(--badge-home-text)}.tag{font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--color-text-muted)}.value-list{list-style:none;margin:0;padding:0;max-width:var(--prose-width);display:flex;flex-direction:column;gap:var(--space-lg)}.value-list__item{padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.value-list__item:last-child{padding-bottom:0;border-bottom:none}.value-list__title{font-family:var(--font-display);font-size:var(--text-lead);font-weight:var(--weight-semibold);line-height:var(--leading-snug);margin:0 0 var(--space-xs);letter-spacing:-.02em;color:var(--color-text);overflow-wrap:anywhere}.value-list__description{margin:0;font-size:var(--text-sm);line-height:var(--leading-body);color:var(--color-text-muted);max-width:58ch}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.tally-placeholder{padding:var(--space-2xl);text-align:center;background:var(--color-surface);border:2px dashed color-mix(in srgb,var(--color-green) 30%,var(--color-border));border-radius:var(--radius-lg);color:var(--color-text-muted)}.tally-placeholder__hint{font-size:var(--text-sm);line-height:var(--leading-body);margin-top:var(--space-sm)}.tally-placeholder code{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-green-deep);background:color-mix(in srgb,var(--color-green) 10%,transparent);padding:.15em .4em;border-radius:4px}.tally-wrapper{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-card);background:var(--color-surface)}.tally-embed{display:block;width:100%;margin:0;padding:0;border:0;overflow:hidden;vertical-align:top;background:transparent}.tally-error{padding:var(--space-xl);background:color-mix(in srgb,var(--color-amber) 8%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-amber) 35%,var(--color-border));border-radius:var(--radius-lg);color:var(--color-text)}.tally-error__title{font-family:var(--font-display);font-weight:var(--weight-semibold);margin:0 0 var(--space-sm)}.tally-error__detail,.tally-error__fallback{font-size:var(--text-sm);line-height:var(--leading-body);color:var(--color-text-muted);margin:0 0 var(--space-sm)}.tally-error__fallback:last-child,.tally-error__detail:last-child{margin-bottom:0}.empty-state,.not-found__lead{font-size:var(--text-lead);line-height:var(--leading-body);color:var(--color-text-muted);margin:0;max-width:var(--prose-width)}.not-found__actions{margin:var(--space-xl) 0 0}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding-block:var(--space-lg);margin-top:var(--space-lg)}.site-footer__inner{display:flex;flex-direction:column;gap:var(--space-sm)}@media(min-width:640px){.site-footer__inner{flex-direction:row;justify-content:space-between;align-items:center}}.site-footer__nav{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);list-style:none;margin:0;padding:0}.site-footer__nav a{display:inline-flex;align-items:center;min-height:2.25rem;padding:.35em .75em;font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;color:var(--color-text-muted);border-radius:var(--radius-pill);transition:background .2s var(--ease-out),color .2s var(--ease-out)}.site-footer__nav a:hover,.site-footer__nav a:focus-visible{color:var(--color-text);background:var(--color-bg-tint)}.site-footer__copy{font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-text-muted);margin:var(--space-xs) 0 0;width:100%}@media(min-width:640px){.site-footer__copy{text-align:right;margin-top:0;width:auto}}@media(min-width:640px){:root{--container-inline: 1.5rem}}@media(max-width:479px){.site-header__inner{flex-direction:column;align-items:stretch}.site-nav{width:100%;justify-content:flex-start}.hero__actions .btn{width:100%}}@media(min-width:480px)and (max-width:719px){.site-logo__tagline{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(min-width:720px){.site-header__inner{flex-wrap:nowrap}}@media(min-width:768px){.hero__title{max-width:20ch}}@media(min-width:1024px){#contact .tally-wrapper,#contact .tally-placeholder,#contact .tally-error{max-width:40rem}}
