@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=Fira+Sans:wght@400;500;600;700&family=Fira+Mono:wght@400;500;700&display=swap");:root{--paper:#fbfaf8;--paper-sunk:#f4f2ed;--surface:#fff;--surface-2:#fcfbf9;--ink-900:#1a1917;--ink-700:#3d3a34;--ink-500:#6c6860;--ink-400:#918d83;--ink-300:#b4afa4;--line:#eae7df;--line-strong:#dad5ca;--accent-700:#000;--accent-600:#211f1c;--accent-500:#3d3a34;--accent-soft:#f0eee9;--accent-softer:#f7f6f2;--accent-ink:#211f1c;--accent2-700:#c64be8;--accent2-600:#de73ff;--accent2-soft:#f8e7fe;--accent2-softer:#fdf5ff;--accent2-ink:#9a29c4;--success-600:#21935a;--success-soft:#e7f5ec;--warning-600:#b77410;--warning-soft:#fbf1df;--danger-600:#ce4141;--danger-soft:#fbebeb;--bg-page:var(--paper);--bg-sunk:var(--paper-sunk);--surface-card:var(--surface);--surface-raised:var(--surface);--surface-sunk:var(--paper-sunk);--text-strong:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--text-on-accent:#fff;--border-subtle:var(--line);--border-strong:var(--line-strong);--accent:var(--accent-600);--accent-hover:var(--accent-700);--link:var(--accent-600);--link-hover:var(--accent-700);--highlight:var(--accent2-600);--highlight-hover:var(--accent2-700);--highlight-soft:var(--accent2-soft);--highlight-ink:var(--accent2-ink);--focus-ring:color-mix(in srgb,var(--accent2-600) 55%,transparent);--selection:var(--accent2-soft);--font-mono:"Fira Code","Fira Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;--font-sans:"Fira Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-display:var(--font-mono);--font-body:var(--font-sans);--font-ui:var(--font-sans);--font-code:var(--font-mono);--font-label:var(--font-mono);--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--text-5xl:64px;--lh-tight:1.1;--lh-snug:1.25;--lh-normal:1.5;--lh-relaxed:1.7;--ls-tighter:-0.03em;--ls-tight:-0.015em;--ls-normal:0;--ls-wide:0.04em;--ls-wider:0.12em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--content-max:720px;--page-max:1080px;--gutter:var(--space-6);--section-gap:var(--space-24);--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:28px;--r-full:999px;--shadow-xs:0 1px 2px rgba(26,25,23,.04);--shadow-sm:0 1px 3px rgba(26,25,23,.05),0 1px 2px rgba(26,25,23,.04);--shadow-md:0 2px 8px rgba(26,25,23,.06),0 1px 3px rgba(26,25,23,.04);--shadow-lg:0 8px 28px rgba(26,25,23,.08),0 2px 8px rgba(26,25,23,.05);--shadow-xl:0 20px 48px rgba(26,25,23,.12),0 6px 16px rgba(26,25,23,.06);--ring:0 0 0 3px var(--focus-ring);--dur-fast:120ms;--dur-base:180ms;--dur-slow:280ms;--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--transition-colors:color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard);--transition-transform:transform var(--dur-base) var(--ease-out)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur-base:0ms;--dur-slow:0ms}}:root[data-theme=dark]{--paper:#161513;--paper-sunk:#1f1d1a;--surface:#211f1c;--surface-2:#26241f;--surface-sunk:#1f1d1a;--ink-900:#f4f2ee;--ink-700:#dad5cc;--ink-500:#a29d92;--ink-400:#7c766c;--ink-300:#5e594f;--line:#302d28;--line-strong:#433f38;--accent-700:#fff;--accent-600:#f1eee8;--accent-500:#d8d3ca;--accent-soft:#2a2823;--accent-softer:#232019;--accent-ink:#f1eee8;--text-on-accent:#161513;--accent2-soft:#2e1e34;--accent2-softer:#241a29;--accent2-ink:#ebb2ff;--success-600:#7fd6a0;--success-soft:#15271c;--warning-600:#e0b061;--warning-soft:#2a2216;--danger-600:#e88a8a;--danger-soft:#2a1a1a;--shadow-xs:0 1px 2px rgba(0,0,0,.45);--shadow-sm:0 1px 3px rgba(0,0,0,.45);--shadow-md:0 2px 8px rgba(0,0,0,.5);--shadow-lg:0 10px 30px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.45);--shadow-xl:0 22px 50px rgba(0,0,0,.65);background:#161513}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}::selection{background:var(--selection)}body{margin:0;background:var(--bg-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-normal);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .35s var(--ease-standard),color .35s var(--ease-standard)}h1,h2,h3,h4,h5,h6{margin:0;color:var(--text-strong);font-family:var(--font-display);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}p{margin:0 0 var(--space-4)}a{color:var(--link);text-decoration:none;text-underline-offset:3px;transition:var(--transition-colors)}a:hover{color:var(--link-hover);text-decoration:underline}code,kbd,pre,samp{font-family:var(--font-code)}hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-8) 0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.av-eyebrow{font-family:var(--font-label);font-size:var(--text-eyebrow,var(--text-xs));font-weight:var(--fw-semibold);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--text-muted)}@keyframes av-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes av-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.av-view{animation:av-fade .4s var(--ease-out)}@media (prefers-reduced-motion:reduce){.av-view{animation:none!important}}.av-btn{--_bg:var(--accent);--_fg:var(--text-on-accent);--_bd:transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:var(--fw-medium);border:1px solid var(--_bd);background:var(--_bg);color:var(--_fg);border-radius:var(--r-md);cursor:pointer;white-space:nowrap;transition:var(--transition-colors),var(--transition-transform),box-shadow var(--dur-fast) var(--ease-standard);text-decoration:none;-webkit-font-smoothing:antialiased}.av-btn:focus-visible{outline:none;box-shadow:var(--ring)}.av-btn:active{transform:translateY(.5px)}.av-btn[aria-disabled=true],.av-btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.av-btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.av-btn--md{height:40px;padding:0 var(--space-4);font-size:var(--text-base)}.av-btn--lg{height:48px;padding:0 var(--space-6);font-size:var(--text-md)}.av-btn--primary:hover{--_bg:var(--accent-hover)}.av-btn--secondary{--_bg:var(--surface);--_fg:var(--text-strong);--_bd:var(--border-strong);box-shadow:var(--shadow-xs)}.av-btn--secondary:hover{--_bg:var(--surface-2);--_bd:var(--ink-300)}.av-btn--ghost{--_bg:transparent;--_fg:var(--text-body)}.av-btn--ghost:hover{--_bg:var(--paper-sunk);--_fg:var(--text-strong)}.av-btn--accentSoft{--_bg:var(--highlight-soft);--_fg:var(--highlight-ink)}.av-btn--accentSoft:hover{--_bg:var(--accent2-softer)}.av-btn--full{width:100%}.av-iconbtn{--_bg:transparent;--_fg:var(--text-muted);--_bd:transparent;display:inline-flex;align-items:center;justify-content:center;background:var(--_bg);color:var(--_fg);border:1px solid var(--_bd);border-radius:var(--r-md);cursor:pointer;padding:0;transition:var(--transition-colors),var(--transition-transform);text-decoration:none}.av-iconbtn:hover{--_fg:var(--text-strong);--_bg:var(--paper-sunk)}.av-iconbtn:focus-visible{outline:none;box-shadow:var(--ring)}.av-iconbtn:active{transform:translateY(.5px)}.av-iconbtn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.av-iconbtn--sm{width:32px;height:32px}.av-iconbtn--md{width:40px;height:40px}.av-iconbtn--lg{width:48px;height:48px}.av-iconbtn--outline{--_bd:var(--border-strong);--_bg:var(--surface);box-shadow:var(--shadow-xs)}.av-iconbtn--outline:hover{--_bd:var(--ink-300);--_bg:var(--surface-2)}.av-iconbtn--solid{--_bg:var(--accent);--_fg:var(--text-on-accent)}.av-iconbtn--solid:hover{--_bg:var(--accent-hover)}.av-field{display:flex;flex-direction:column;gap:var(--space-2)}.av-field__label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.av-field__hint{font-size:var(--text-xs);color:var(--text-muted)}.av-input{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-strong);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);height:40px;padding:0 var(--space-3);width:100%;transition:var(--transition-colors),box-shadow var(--dur-fast) var(--ease-standard)}.av-input::placeholder{color:var(--text-faint)}.av-input:hover{border-color:var(--ink-300)}.av-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.av-input[disabled]{background:var(--paper-sunk);color:var(--text-faint);cursor:not-allowed}.av-input--invalid{border-color:var(--danger-600)}.av-input--invalid:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger-600) 30%,transparent)}textarea.av-input{height:auto;padding:var(--space-3);line-height:var(--lh-normal);resize:vertical}.av-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);width:100%;padding:var(--space-4) 0;font-family:var(--font-ui)}.av-nav__brand{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:-.02em;text-decoration:none;display:inline-flex;align-items:baseline}.av-nav__brand .dot{color:var(--highlight)}.av-nav__links{display:flex;align-items:center;gap:var(--space-1)}.av-nav__link{font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;padding:6px var(--space-3);border-radius:var(--r-md);transition:var(--transition-colors)}.av-nav__link:hover{color:var(--text-strong);background:var(--paper-sunk)}.av-nav__link[aria-current=page]{color:var(--text-strong);font-weight:var(--fw-medium)}.av-nav__actions{display:flex;align-items:center;gap:var(--space-2)}@media (max-width:640px){.av-nav{flex-wrap:wrap;row-gap:var(--space-2)}.av-nav__links{order:3;width:100%;flex-wrap:wrap}}.av-tabs{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-ui)}.av-tabs--underline{gap:var(--space-5);border-bottom:1px solid var(--border-subtle)}.av-tab{font-size:var(--text-sm);color:var(--text-muted);background:none;border:none;cursor:pointer;padding:8px var(--space-3);border-radius:var(--r-md);transition:var(--transition-colors);font-family:inherit}.av-tab:hover{color:var(--text-strong)}.av-tabs--pill .av-tab[data-active=true]{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-xs)}.av-tabs--pill{background:var(--paper-sunk);padding:4px;border-radius:var(--r-md)}.av-tabs--underline .av-tab{padding:0 0 var(--space-3);border-radius:0;position:relative}.av-tabs--underline .av-tab[data-active=true]{color:var(--text-strong);font-weight:var(--fw-medium)}.av-tabs--underline .av-tab[data-active=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--highlight);border-radius:2px}.av-tab:focus-visible{outline:none;box-shadow:var(--ring)}.av-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-6);transition:var(--transition-colors),var(--transition-transform),box-shadow var(--dur-base) var(--ease-out)}.av-card--flat{box-shadow:none}.av-card--raised{box-shadow:var(--shadow-md);border-color:transparent}.av-card--sunk{background:var(--bg-sunk);border-color:transparent}.av-card--interactive{cursor:pointer}.av-card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.av-card--interactive:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.av-card--pad-none{padding:0}.av-card--pad-sm{padding:var(--space-4)}.av-card--pad-lg{padding:var(--space-8)}.av-tag{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--fw-medium);line-height:1;padding:5px var(--space-2);border-radius:var(--r-sm);white-space:nowrap;background:var(--paper-sunk);color:var(--text-body);border:1px solid transparent}.av-tag--md{font-size:var(--text-sm);padding:6px var(--space-3)}.av-tag--outline{background:transparent;border-color:var(--border-strong);color:var(--text-muted)}.av-tag--accent{background:var(--highlight-soft);color:var(--highlight-ink)}.av-tag__dot{width:6px;height:6px;background:currentColor;opacity:.8}.av-badge,.av-tag__dot{border-radius:var(--r-full)}.av-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--fw-medium);line-height:1;padding:4px 10px;white-space:nowrap}.av-badge__dot{width:6px;height:6px;border-radius:var(--r-full);background:currentColor}.av-badge--neutral{background:var(--paper-sunk);color:var(--text-muted)}.av-badge--accent{background:var(--highlight-soft);color:var(--highlight-ink)}.av-badge--success{background:var(--success-soft);color:var(--success-600)}.av-badge--warning{background:var(--warning-soft);color:var(--warning-600)}.av-badge--danger{background:var(--danger-soft);color:var(--danger-600)}.av-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-full);overflow:hidden;flex:none;background:var(--highlight-soft);color:var(--highlight-ink);font-family:var(--font-ui);font-weight:var(--fw-semibold);border:1px solid var(--border-subtle);-webkit-user-select:none;-moz-user-select:none;user-select:none}.av-avatar img{width:100%;height:100%;object-fit:cover;display:block}.av-avatar--square{border-radius:var(--r-md)}.av-avatar--sm{width:28px;height:28px;font-size:var(--text-xs)}.av-avatar--md{width:40px;height:40px;font-size:var(--text-sm)}.av-avatar--lg{width:56px;height:56px;font-size:var(--text-md)}.av-avatar--xl{width:88px;height:88px;font-size:var(--text-2xl)}.av-divider{border:none;background:var(--border-subtle)}.av-divider--h{height:1px;width:100%;margin:var(--space-6) 0}.av-divider--v{width:1px;align-self:stretch;margin:0 var(--space-4)}.av-divider--strong{background:var(--border-strong)}.av-divider--labeled{display:flex;align-items:center;gap:var(--space-4);background:none;height:auto;color:var(--text-faint);font-family:var(--font-label);font-size:var(--text-xs);letter-spacing:var(--ls-wide);text-transform:uppercase}.av-divider--labeled:after,.av-divider--labeled:before{content:"";flex:1 1;height:1px;background:var(--border-subtle)}.av-link{font-family:var(--font-ui);color:var(--link);text-decoration:none;display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:var(--transition-colors);border-bottom:1px solid transparent}.av-link:hover{color:var(--link-hover);border-bottom-color:currentColor}.av-link:focus-visible{outline:none;box-shadow:var(--ring);border-radius:2px}.av-link--muted{color:var(--text-body)}.av-link--muted:hover{color:var(--text-strong)}.av-link__arrow{transition:transform var(--dur-base) var(--ease-out)}.av-link:hover .av-link__arrow{transform:translateX(2px)}.av-link--ext .av-link__arrow{transform:translate(1px,-1px)}.av-link:hover.av-link--ext .av-link__arrow{transform:translate(3px,-3px)}.av-project{display:flex;flex-direction:column;gap:var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-5);text-decoration:none;transition:var(--transition-colors),var(--transition-transform),box-shadow var(--dur-base) var(--ease-out)}a.av-project{cursor:pointer}a.av-project:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.av-project__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.av-project__num{font-family:var(--font-code);font-size:var(--text-xs);color:var(--text-faint);letter-spacing:var(--ls-wide)}.av-project__arrow{color:var(--text-faint);transition:var(--transition-colors),transform var(--dur-base) var(--ease-out)}a.av-project:hover .av-project__arrow{color:var(--highlight);transform:translate(2px,-2px)}.av-project__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:var(--ls-tight)}.av-project__desc{font-size:var(--text-sm);line-height:var(--lh-relaxed);color:var(--text-muted);margin:0}.av-project__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.av-project__year{font-family:var(--font-code);font-size:var(--text-xs);color:var(--text-faint)}.av-post{display:flex;align-items:baseline;gap:var(--space-5);padding:var(--space-4) 0;text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:var(--transition-colors)}.av-post:hover{background:var(--surface-2)}.av-post__date{font-family:var(--font-code);font-size:var(--text-xs);color:var(--text-faint);letter-spacing:var(--ls-wide);white-space:nowrap;width:96px;flex:none}.av-post__main{flex:1 1;display:flex;flex-direction:column;gap:4px}.av-post__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--text-strong);transition:var(--transition-colors)}.av-post:hover .av-post__title{color:var(--highlight-ink)}.av-post__excerpt{font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-muted);margin:0}.av-post__meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-faint)}.av-post__read{white-space:nowrap}.av-exp{display:grid;grid-template-columns:132px 1fr;grid-gap:var(--space-6);gap:var(--space-6);padding:var(--space-5) 0;position:relative}.av-exp+.av-exp{border-top:1px solid var(--border-subtle)}.av-exp__period{font-family:var(--font-code);font-size:var(--text-xs);color:var(--text-faint);letter-spacing:var(--ls-wide);padding-top:3px}.av-exp__body{flex-direction:column}.av-exp__body,.av-exp__head{display:flex;gap:var(--space-2)}.av-exp__head{align-items:baseline;flex-wrap:wrap}.av-exp__role{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.av-exp__at{color:var(--text-faint)}.av-exp__org{font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--highlight-ink)}.av-exp__desc{font-size:var(--text-sm);line-height:var(--lh-relaxed);color:var(--text-muted);margin:0}.av-exp__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:2px}@media (max-width:560px){.av-exp{grid-template-columns:1fr;gap:var(--space-2)}}.av-project-preview{display:flex;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.av-project-preview:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.av-project-preview__img{height:auto;object-fit:cover;flex:none}