[data-theme=bento]{--bn-ground:var(--ge-color-page-bg);--bn-paper:var(--ge-color-surface);--bn-ink:var(--ge-color-text);--bn-ink-2:var(--ge-color-text-muted);--bn-cobalt:var(--ge-color-accent);--bn-saffron:#ffc53d;--bn-saffron-2:#5b420c;--bn-ice:#ccd8ff;--bn-ice-2:#3a4478;--bn-rose:#ffbdd2;--bn-rose-2:#6a2540;--bn-on-ink:#f4f3ff;--bn-on-ink-2:#b4b8e6;--bn-radius:var(--ge-radius-lg);--bn-gap:var(--ge-spacing-tight);--bn-pad:20px;--bn-ease:cubic-bezier(.16, 1, .3, 1);--bn-small:.9375rem;background:var(--bn-ground);min-height:100vh;color:var(--bn-ink);font-family:var(--ge-font-body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.5}[data-theme=bento] ::selection{background:var(--bn-saffron);color:var(--bn-ink)}[data-theme=bento] .bn-root{padding:var(--bn-gap);container:bento/inline-size}[data-theme=bento] :focus-visible{outline:3px solid var(--t-focus,var(--bn-cobalt));outline-offset:3px;border-radius:12px}[data-theme=bento] a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}[data-theme=bento] .bn-sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-theme=bento] .bn-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:var(--bn-areas-base);gap:var(--bn-gap);max-width:1400px;margin-inline:auto;display:grid}@container bento (min-width:40rem){[data-theme=bento] .bn-grid{--bn-gap:10px;--bn-pad:24px;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-areas:var(--bn-areas-md)}}@container bento (min-width:64rem){[data-theme=bento] .bn-grid{--bn-gap:12px;--bn-pad:28px;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:var(--bn-areas-lg);margin-block:12px}}[data-theme=bento] .bn-tile{min-width:0;padding:var(--bn-pad);border-radius:var(--bn-radius);background:var(--t-bg);color:var(--t-fg);overflow-wrap:anywhere;--ge-color-text:var(--t-fg);--ge-color-text-muted:var(--t-fg-2);--ge-color-border:var(--t-rule);--ge-color-accent:var(--t-link);--ge-color-hint-ink:var(--t-fg-2);--ge-edit-page-bg:var(--t-bg);--ge-edit-focus-accent:var(--t-edit);--ge-edit-accent-contrast:var(--t-edit-ink);--ge-edit-accent-weak:color-mix(in srgb, var(--t-edit) 12%, transparent);--ge-edit-accent-line:color-mix(in srgb, var(--t-edit) 50%, transparent);--ge-edit-accent-rest:color-mix(in srgb, var(--t-edit) 45%, transparent);--ge-edit-accent-veil:color-mix(in srgb, var(--t-edit) 85%, transparent);view-transition-class:bn-tile;position:relative;container:tile/inline-size}[data-theme=bento] .bn-inner{flex-direction:column;height:100%;display:flex}[data-theme=bento] .bn-inner>*{flex:auto}@keyframes bn-settle{0%{translate:0 14px;scale:.95}}@media (prefers-reduced-motion:no-preference){[data-theme=bento] .bn-root[data-entrance] .bn-tile{animation:bn-settle .7s var(--bn-ease) backwards;animation-delay:calc(40ms + var(--bn-i,0) * 45ms)}}[data-theme=bento] .bn-paper{--t-edit:var(--bn-cobalt);--t-edit-ink:var(--bn-paper);--t-bg:var(--bn-paper);--t-fg:var(--bn-ink);--t-fg-2:var(--bn-ink-2);--t-rule:color-mix(in srgb, var(--bn-ink) 12%, transparent);--t-focus:var(--bn-cobalt);--t-link:var(--bn-cobalt)}[data-theme=bento] .bn-ink{--t-bg:var(--bn-ink);--t-fg:var(--bn-on-ink);--t-fg-2:var(--bn-on-ink-2);--t-rule:color-mix(in srgb, var(--bn-on-ink) 16%, transparent);--t-focus:var(--bn-saffron);--t-link:var(--bn-saffron);--t-edit:var(--bn-saffron);--t-edit-ink:var(--bn-ink);--ge-color-avatar-ink:var(--bn-saffron)}[data-theme=bento] .bn-ink ::selection{background:var(--bn-saffron);color:var(--bn-ink)}[data-theme=bento] .bn-saffron{--t-edit:var(--bn-cobalt);--t-edit-ink:var(--bn-paper);--t-bg:var(--bn-saffron);--t-fg:var(--bn-ink);--t-fg-2:var(--bn-saffron-2);--t-rule:color-mix(in srgb, var(--bn-ink) 20%, transparent);--t-focus:var(--bn-ink);--t-link:var(--bn-ink)}[data-theme=bento] .bn-saffron ::selection{background:var(--bn-ink);color:var(--bn-saffron)}[data-theme=bento] .bn-ice{--t-edit:var(--bn-cobalt);--t-edit-ink:var(--bn-paper);--t-bg:var(--bn-ice);--t-fg:var(--bn-ink);--t-fg-2:var(--bn-ice-2);--t-rule:color-mix(in srgb, var(--bn-ink) 14%, transparent);--t-focus:var(--bn-ink);--t-link:var(--bn-cobalt)}[data-theme=bento] .bn-rose{--t-edit:var(--bn-cobalt);--t-edit-ink:var(--bn-paper);--t-bg:var(--bn-rose);--t-fg:var(--bn-ink);--t-fg-2:var(--bn-rose-2);--t-rule:color-mix(in srgb, var(--bn-rose-2) 22%, transparent);--t-focus:var(--bn-ink);--t-link:var(--bn-ink)}[data-theme=bento] .bn-h2{font-family:var(--ge-font-display);letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:1.3125rem;font-weight:650;line-height:1.15}[data-theme=bento] .bn-h2--spaced{margin-bottom:14px}[data-theme=bento] .bn-soft{color:var(--t-fg-2);font-size:var(--bn-small);margin:6px 0 0}[data-theme=bento] .bn-count{color:var(--t-fg-2);font-family:var(--ge-font-body);font-size:var(--bn-small);font-weight:500}[data-theme=bento] .bn-tile-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:16px;display:flex}[data-theme=bento] .bn-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}[data-theme=bento] .bn-pill,[data-theme=bento] .bn-contact a,[data-theme=bento] .bn-links-inline .bn-link{border:1px solid var(--t-rule);max-width:100%;min-height:44px;color:var(--t-fg);font:inherit;font-size:var(--bn-small);white-space:nowrap;cursor:pointer;transition:background-color .16s, color .16s, transform .16s var(--bn-ease);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-weight:650;text-decoration:none;display:inline-flex}[data-theme=bento] .bn-contact a:hover,[data-theme=bento] .bn-links-inline .bn-link:hover{background:color-mix(in srgb, var(--t-fg) 8%, transparent)}[data-theme=bento] .bn-pill--outline{border:1.5px solid var(--t-fg)}[data-theme=bento] .bn-pill--outline:hover{background:var(--t-fg);color:var(--t-bg)}[data-theme=bento] .bn-pill:active,[data-theme=bento] .bn-contact a:active{transform:scale(.97)}[data-theme=bento] .bn-identity{flex-direction:column;gap:24px;display:flex}[data-theme=bento] .bn-id-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}[data-theme=bento] .bn-avatar{background:color-mix(in srgb, var(--bn-on-ink) 12%, transparent);border-radius:18px;width:76px;line-height:0;overflow:hidden}[data-theme=bento] .bn-avatar img{object-fit:cover;width:100%;height:auto;display:block}[data-theme=bento] [data-chrome=open-to-work]{border:1px solid color-mix(in srgb, var(--bn-saffron) 45%, transparent);color:var(--bn-saffron);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 10px;font-size:.875rem;font-weight:600;line-height:1.2;display:inline-flex}[data-theme=bento] [data-chrome=open-to-work]:before{content:"";background:var(--bn-saffron);border-radius:50%;width:8px;height:8px}[data-theme=bento] .bn-name{font-family:var(--ge-font-display);letter-spacing:-.035em;text-wrap:balance;overflow-wrap:normal;margin:0;font-size:clamp(2.5rem,12cqi,3.5rem);font-weight:700;line-height:.92}[data-theme=bento] .bn-bio{text-wrap:pretty;max-width:32ch;margin:14px 0 0;font-size:1.125rem;line-height:1.4}[data-theme=bento] .bn-about-inline{max-width:46ch;margin-top:14px}[data-theme=bento] .bn-about-inline .bn-h2{display:none}[data-theme=bento] .bn-about-inline .ge-md,[data-theme=bento] .bn-about-inline .ge-md p{color:var(--t-fg-2);margin:0;font-size:.97rem;line-height:1.55}[data-theme=bento] .bn-meta{color:var(--t-fg-2);font-size:var(--bn-small);flex-wrap:wrap;gap:6px 16px;margin-top:18px;display:flex}:is([data-theme=bento] .bn-meta span,[data-theme=bento] .bn-contact>span,[data-theme=bento] .bn-contact span:has(>svg)){align-items:center;gap:6px;display:inline-flex}[data-theme=bento] .bn-contact{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}[data-theme=bento] .bn-contact a[href^=mailto\:]{border-color:var(--bn-saffron);background:var(--bn-saffron);color:var(--bn-ink);order:-1}[data-theme=bento] .bn-contact a[href^=mailto\:]:hover{background:color-mix(in srgb, var(--bn-saffron) 82%, var(--bn-paper))}[data-theme=bento] .bn-contact>span{color:var(--t-fg-2);font-size:var(--bn-small)}[data-theme=bento] .bn-links-inline{margin-top:10px}[data-theme=bento] .bn-links-inline .bn-h2{display:none}[data-theme=bento] .bn-links-inline .bn-links>ul{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}[data-theme=bento] .bn-links-inline .bn-links>ul li{border:0}[data-theme=bento] .bn-links-inline .bn-link-host{display:none}[data-theme=bento] .bn-numbers{border-top:1px solid var(--t-rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:auto 0 0;padding-top:18px;display:grid}[data-theme=bento] .bn-numbers div{flex-direction:column;min-width:0;display:flex}[data-theme=bento] .bn-numbers dt{color:var(--t-fg-2);order:2;font-size:.875rem}[data-theme=bento] .bn-numbers dd{font-family:var(--ge-font-display);letter-spacing:-.03em;order:1;margin:0;font-size:clamp(1.5rem,8cqi,2.25rem);font-weight:700;line-height:1}@container tile (min-width:30rem){[data-theme=bento] .bn-avatar{border-radius:20px;width:96px}[data-theme=bento] .bn-name{font-size:clamp(3.25rem,13cqi,5.5rem)}[data-theme=bento] .bn-bio{font-size:1.375rem}}[data-theme=bento] .bn-featured{flex-direction:column;justify-content:space-between;gap:20px;display:flex}[data-theme=bento] .bn-featured--empty{justify-content:flex-start;align-items:flex-start;gap:12px}[data-theme=bento] .bn-lead{font-size:var(--bn-small);margin:0;font-weight:600}[data-theme=bento] .bn-bigstat{flex-wrap:wrap;align-items:flex-end;gap:8px 22px;display:flex}[data-theme=bento] .bn-bigstat p{margin:0}[data-theme=bento] .bn-bignum{font-family:var(--ge-font-display);letter-spacing:-.04em;font-size:clamp(3.25rem,20cqi,6.25rem);font-weight:700;line-height:.85;display:block}[data-theme=bento] .bn-biglabel{font-size:var(--bn-small);align-items:center;gap:6px;margin-top:10px;font-weight:600;display:flex}[data-theme=bento] .bn-forks{color:var(--t-fg-2);font-size:var(--bn-small);padding-bottom:4px;font-weight:550}[data-theme=bento] .bn-forks strong{color:var(--t-fg);letter-spacing:-.02em;font-size:1.5rem;font-weight:700}[data-theme=bento] .bn-project-name{font-family:var(--ge-font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,8cqi,2.5rem);font-weight:700;line-height:1}[data-theme=bento] .bn-project-name--lead{font-size:clamp(2.25rem,12cqi,4rem)}[data-theme=bento] .bn-desc{text-wrap:pretty;max-width:48ch;margin:12px 0 0;line-height:1.5}[data-theme=bento] .bn-repo-links{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}[data-theme=bento] .bn-private{color:var(--t-fg-2);font-size:var(--bn-small);align-items:center;gap:6px;font-weight:600;display:inline-flex}[data-theme=bento] .bn-activity{flex-direction:column;display:flex}[data-theme=bento] .bn-activity-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:18px;display:flex}[data-theme=bento] .bn-activity-total{font-family:var(--ge-font-display);letter-spacing:-.015em;margin:0;font-size:1.3125rem;font-weight:650;line-height:1.1}[data-theme=bento] .bn-activity-total strong{letter-spacing:-.04em;font-size:clamp(2.5rem,9cqi,3.75rem);font-weight:700;line-height:.9;display:block}[data-theme=bento] .bn-facts{flex-wrap:wrap;gap:8px 22px;margin:0;display:flex}[data-theme=bento] .bn-facts div{flex-direction:column;display:flex}[data-theme=bento] .bn-facts dt{color:var(--t-fg-2);order:2;font-size:.875rem}[data-theme=bento] .bn-facts dd{letter-spacing:-.02em;order:1;margin:0;font-size:1.375rem;font-weight:700;line-height:1.1}[data-theme=bento] .bn-heat{margin:auto 0 0}[data-theme=bento] .bn-heat>svg{width:100%;height:auto;aspect-ratio:var(--bn-heat-full);display:block}@container tile (max-width:34rem){[data-theme=bento] .bn-heat>svg{aspect-ratio:var(--bn-heat-narrow)}}[data-theme=bento] .bn-heat-month{fill:var(--t-fg-2);font-family:var(--ge-font-body);font-size:10.5px;font-weight:550}[data-theme=bento] .bn-legend{color:var(--t-fg-2);justify-content:flex-end;align-items:center;gap:4px;margin-top:10px;font-size:.8125rem;display:flex}[data-theme=bento] .bn-legend span:first-child{margin-right:4px}[data-theme=bento] .bn-legend span:last-child{margin-left:4px}[data-theme=bento] .bn-l0{fill:color-mix(in srgb, var(--bn-ink) 8%, transparent)}[data-theme=bento] .bn-l1{fill:color-mix(in srgb, var(--ge-color-graph) 40%, var(--bn-paper))}[data-theme=bento] .bn-l2{fill:color-mix(in srgb, var(--ge-color-graph) 70%, var(--bn-paper))}[data-theme=bento] .bn-l3{fill:var(--ge-color-graph)}[data-theme=bento] .bn-l4{fill:var(--bn-ink)}[data-theme=bento] .bn-project-list{display:grid}[data-theme=bento] .bn-project-row{border-top:1px solid var(--t-rule)}[data-theme=bento] .bn-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 14px;min-height:56px;padding:10px 0;text-decoration:none;display:grid}[data-theme=bento] a.bn-row:hover .bn-row-name{text-decoration:underline}[data-theme=bento] .bn-row-name{letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:1.0625rem;font-weight:650;display:inline-flex}[data-theme=bento] .bn-row-meta{color:var(--t-fg-2);font-size:var(--bn-small);flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}[data-theme=bento] .bn-row-meta>span{align-items:center;gap:5px;display:inline-flex}[data-theme=bento] .bn-row-meta b{color:var(--t-fg);font-weight:650}[data-theme=bento] .bn-row-desc{color:var(--t-fg-2);font-size:var(--bn-small);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}[data-theme=bento] .bn-mark{background:var(--bn-saffron);color:var(--bn-ink);letter-spacing:0;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:650}[data-theme=bento] .bn-entry{padding:18px 0 20px}@media (prefers-reduced-motion:no-preference){[data-theme=bento] .bn-root[data-entrance] .bn-entry{animation:bn-fade .32s var(--bn-ease) backwards}}@keyframes bn-fade{0%{opacity:0}}[data-theme=bento] .bn-entry-name{font-family:var(--ge-font-display);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:1.375rem;font-weight:700;display:flex}[data-theme=bento] .bn-entry-desc{max-width:52ch;color:var(--t-fg-2);margin:8px 0 12px;line-height:1.5}[data-theme=bento] .bn-entry-links{flex-wrap:wrap;gap:4px 18px;margin-top:6px;display:flex}[data-theme=bento] .bn-text-link{align-items:center;gap:5px;min-height:44px;font-weight:650;text-decoration:underline;display:inline-flex}@container tile (max-width:30rem){[data-theme=bento] .bn-row-desc{display:none}}@container tile (min-width:44rem){[data-theme=bento] .bn-more:has(.bn-entry) .bn-project-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}}@container tile (min-width:66rem){[data-theme=bento] .bn-more:has(.bn-entry) .bn-project-list{grid-template-columns:repeat(3,minmax(0,1fr))}}[data-theme=bento] .bn-stack{flex-direction:column;gap:18px;height:100%;display:flex}[data-theme=bento] .bn-chips{flex-wrap:wrap;gap:8px 6px;margin:auto 0 0;padding:0;list-style:none;display:flex}[data-theme=bento] .bn-chips li{border:1.5px solid var(--t-rule);border-radius:999px;align-items:center;min-height:36px;padding:0 13px;font-size:.97rem;font-weight:600;display:inline-flex}[data-theme=bento] .bn-chips li:nth-child(-n+3){border-color:var(--t-fg);background:var(--t-fg);color:var(--t-bg)}[data-theme=bento] .bn-chips[data-few=true] li{min-height:48px;font-family:var(--ge-font-display);letter-spacing:-.02em;padding:0 18px;font-size:1.375rem;font-weight:650}[data-theme=bento] .bn-resume{flex-direction:column;justify-content:space-between;gap:18px;display:flex}[data-theme=bento] .bn-resume .ge-resume{background:var(--bn-ink);width:auto;min-height:48px;color:var(--bn-on-ink);border:0;border-radius:999px;justify-content:center;align-self:stretch;padding:0 18px;font-size:1rem}[data-theme=bento] .bn-resume .ge-resume:hover{background:var(--bn-cobalt)}[data-theme=bento] .bn-resume .ge-resume:focus-visible{outline-color:var(--bn-cobalt)}[data-theme=bento] .bn-about .bn-h2{margin-bottom:14px}[data-theme=bento] .bn-about .ge-md{text-wrap:pretty;max-width:62ch;font-size:1.0625rem;line-height:1.6}@container tile (min-width:62rem){[data-theme=bento] .bn-about .ge-md{columns:2;column-gap:48px;max-width:none}[data-theme=bento] .bn-about .ge-md>*{break-inside:avoid}}[data-theme=bento] .bn-article{border-top:1px solid var(--t-rule);padding:14px 0 16px;text-decoration:none;display:block}[data-theme=bento] .bn-article-title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:1.125rem;font-weight:650;line-height:1.3}[data-theme=bento] .bn-article:hover .bn-article-title{text-underline-offset:.22em;text-decoration:underline;text-decoration-thickness:1px}[data-theme=bento] .bn-article-meta{color:var(--t-fg-2);flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.875rem;display:flex}[data-theme=bento] .bn-more-link{min-height:44px;color:var(--t-fg);align-items:center;margin-top:6px;font-weight:650;text-decoration:underline;display:inline-flex}[data-theme=bento] .bn-quotes{gap:22px;display:grid}[data-theme=bento] .bn-quote{margin:0}[data-theme=bento] .bn-quote blockquote{text-wrap:pretty;margin:0;font-size:1.0625rem;line-height:1.5}[data-theme=bento] .bn-quotes>:first-child .bn-quote blockquote{max-width:40ch;font-family:var(--ge-font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,4cqi,1.875rem);font-weight:600;line-height:1.22}[data-theme=bento] .bn-quote figcaption{color:var(--t-fg-2);font-size:var(--bn-small);margin-top:10px}[data-theme=bento] .bn-quote figcaption b{color:var(--t-fg);font-weight:650}[data-theme=bento] .bn-quote-mark{color:var(--bn-rose-2);margin-bottom:10px;display:block}@container tile (min-width:40rem){[data-theme=bento] .bn-quotes{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}[data-theme=bento] .bn-quotes>:first-child{grid-column:1/-1}[data-theme=bento] .bn-quotes>:not(:first-child,a){border-top:1px solid var(--t-rule);padding-top:18px}[data-theme=bento] .bn-quotes>a{grid-column:1/-1}}[data-theme=bento] .bn-links>ul{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));column-gap:28px;margin:14px 0 0;padding:0;list-style:none;display:grid}[data-theme=bento] .bn-links>ul li{border-top:1px solid var(--t-rule)}[data-theme=bento] .bn-link{align-items:center;gap:12px;min-height:52px;font-weight:650;text-decoration:none;display:flex}[data-theme=bento] .bn-link:hover .bn-link-label{text-decoration:underline}[data-theme=bento] .bn-link-host{min-width:0;color:var(--t-fg-2);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}[data-theme=bento] .bn-link-arrow{color:var(--t-fg-2);flex:none;margin-left:auto}[data-theme=bento] .bn-footer{justify-content:center;max-width:1400px;margin:18px auto 8px;display:flex}[data-theme=bento] .bn-footer:empty{display:none}[data-theme=bento] [data-chrome=folio-badge]{min-height:44px;color:var(--bn-ink-2);align-items:center;font-size:.875rem;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:reduce){[data-theme=bento] .bn-pill,[data-theme=bento] .bn-contact a{transition:none}}::view-transition-group(*.bn-tile){animation-duration:.5s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion:reduce){::view-transition-group(*.bn-tile){animation:none}::view-transition-old(*.bn-tile){animation:none}::view-transition-new(*.bn-tile){animation:none}}