@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{color-scheme:light;--ink:#ece8e1;--ink-1:#e3ded5;--ink-2:#d2ccc1;--ivory:#0d0d0f;--ivory-2:#3b3b40;--dim:#6c6b70;--dim-2:#8d8a86;--night:#0b0b0d;--night-2:#16161a;--bone:#eeebe6;--bone-2:#b3aea6;--bone-3:#77736d;--subtitle:#fbf6e4;--signal:#0d0d0f;--signal-hov:#3b3b40;--signal-dim:#0d0d0f14;--signal-glow:#0d0d0f2e;--status-live:#3f7a4a;--status-agent:#4d6a63;--status-hot:#b3261e;--status-cold:#4a5a86;--status-warn:#9a6a22;--line:#0d0d0f1f;--line-2:#0d0d0f2e;--line-3:#0d0d0f5c;--font-display:"Funnel Display", "Helvetica Neue", Arial, system-ui, sans-serif;--font-body:"Funnel Sans", "Helvetica Neue", Arial, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, Menlo, monospace;--type-hero-name-size:clamp(3rem, 9vw, 7.5rem);--type-page-title-size:clamp(2.8rem, 7vw, 6rem);--type-h1-size:clamp(1.7rem, 3vw, 2.1rem);--type-h2-size:1.05rem;--type-h3-size:1.05rem;--type-h4-size:.98rem;--type-body-size:16px;--type-small-size:14px;--type-caption-size:12px;--type-mono-md-size:13px;--type-mono-sm-size:11.5px;--type-mono-xs-size:11px;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-18:4.5rem;--gutter:2rem;--section-pad:4rem;--section-head-pad:0 0 1.25rem;--radius-sm:6px;--radius-md:8px;--radius-lg:8px;--radius-xl:8px;--radius-pill:999px;--layout-max-w:1280px;--layout-max-w-narrow:1080px;--layout-nav-h:64px;--shadow-card-hover:0 28px 40px -22px #00000073;--shadow-connect-hover:0 16px 34px #0000003d;--surface-card:#ffffff59;--surface-raised:#ffffff80;--motion-fast:.16s;--motion-card:.18s;--motion-slow:.42s;--z-base:1;--z-content:2;--z-nav:100;--z-overlay:200;--z-tooltip:300}@media (width<=768px){:root{--gutter:1.25rem;--layout-nav-h:58px;--section-pad:3rem}}.type-hero{font-family:var(--font-body);font-size:var(--type-hero-name-size);letter-spacing:0;font-weight:700;line-height:.98}.type-page-title{font-family:var(--font-body);font-size:var(--type-page-title-size);letter-spacing:0;font-weight:700;line-height:1.04}.type-h1{font-family:var(--font-body);font-size:var(--type-h1-size);letter-spacing:0;font-weight:700;line-height:1.18}.type-h2{font-family:var(--font-body);font-size:var(--type-h2-size);letter-spacing:0;text-transform:none;color:var(--ivory);font-weight:700;line-height:1.35}.type-h3{font-family:var(--font-body);font-size:var(--type-h3-size);font-weight:700;line-height:1.35}.type-h4{font-family:var(--font-body);font-size:var(--type-h4-size);font-weight:700;line-height:1.4}.type-body{font-family:var(--font-body);font-size:var(--type-body-size);font-weight:400;line-height:1.7}.type-small{font-family:var(--font-body);font-size:var(--type-small-size);font-weight:400;line-height:1.5}.type-caption,.type-mono-sm,.type-mono-xs,.type-mono-md{font-family:var(--font-body);font-size:var(--type-caption-size);letter-spacing:0;text-transform:none;color:var(--dim);font-weight:500}.btn{border:1.5px solid var(--ivory);border-radius:var(--radius-pill);min-height:44px;color:var(--ivory);font-family:var(--font-body);cursor:pointer;transition:background var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease;background:0 0;justify-content:center;align-items:center;gap:.45rem;padding:.8rem 1.4rem;font-size:14px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--ivory);color:var(--ink)}.btn:disabled,.btn[aria-disabled=true]{border-color:var(--line-2);color:var(--dim-2);cursor:not-allowed;background:0 0}.btn--primary{background:var(--ivory);color:var(--ink)}.btn--primary:hover{color:var(--ivory);background:0 0}.btn--ghost{background:0 0}.btn--link{min-height:0;color:var(--signal);background:0 0;border-color:#0000;padding:0;font-weight:700}.btn--link:hover{color:var(--signal-hov);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.field{background:var(--ink-1);border:1px solid var(--line-2);width:100%;min-width:0;min-height:42px;color:var(--ivory);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--type-small-size);transition:border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;padding:.66rem .78rem;line-height:1.45;display:block}.field:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-dim);outline:none}.field::placeholder{color:var(--dim);opacity:1}.field[aria-invalid=true]{border-color:var(--status-hot);box-shadow:0 0 0 3px #b23a3524}.field:disabled{color:var(--dim-2);cursor:not-allowed;background:var(--ink-2)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pill{border-radius:var(--radius-pill);background:var(--signal-dim);color:var(--signal);font-family:var(--font-body);letter-spacing:.01em;border:1px solid #0000;padding:.18rem .6rem;font-size:.72rem;font-weight:500;line-height:1.3;display:inline-block}.pill--signal{background:var(--signal-dim);color:var(--signal)}.pill--dim{background:var(--surface-raised);color:var(--ivory-2);border-color:var(--line-2)}.pill--agent{color:var(--status-agent);background:#7de2a31f}.tag{color:var(--ivory-2);font-family:var(--font-mono);font-size:var(--type-mono-xs-size);border:1px solid var(--line-2);background:#e5a67914;border-radius:20px;margin-right:.3rem;padding:.1rem .5rem;display:inline-block}.card{background:linear-gradient(145deg, #fff6, transparent 42%), var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-6);color:inherit;transition:border-color var(--motion-card) ease, background var(--motion-card) ease, box-shadow var(--motion-card) ease, transform var(--motion-card) ease;flex-direction:column;gap:.35rem;text-decoration:none;display:flex;position:relative}.card:hover{border-color:color-mix(in srgb, var(--signal) 44%, var(--line-3));background:var(--surface-card);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card--project,.card--writing,.card--belief,.card--hub,.card--spotlight{border-radius:var(--radius-md)}.card--writing h3{font-size:var(--type-h3-size);margin-bottom:.2rem}.card--writing .date{color:var(--dim);font-size:var(--type-small-size);margin-bottom:.45rem}.card--writing .desc{color:var(--ivory-2);font-size:var(--type-small-size);margin-bottom:.75rem;line-height:1.55}.card--writing .read-link{color:var(--signal);font-size:var(--type-small-size);font-weight:700;text-decoration:none}.card--writing .read-link:hover{color:var(--signal-hov);text-underline-offset:3px;text-decoration:underline}.section-head{align-items:baseline;gap:.5rem;display:grid}.section-head__num{display:none}.section-head__name{font-family:var(--font-body);font-size:var(--type-h2-size);letter-spacing:0;text-transform:none;color:var(--ivory);font-weight:700}.section-head__name em{font-style:normal;font-weight:inherit;color:inherit}.section-head__meta{color:var(--dim);font-size:var(--type-small-size);text-align:left;max-width:34ch;line-height:1.55}.top-nav{z-index:var(--z-nav);position:relative}.top-nav__inner{max-width:var(--layout-max-w);padding:18px var(--gutter);border-bottom:1px solid var(--line);background-clip:content-box;justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;display:flex}.top-nav__brand{color:var(--ivory);white-space:nowrap;text-decoration:none}.top-nav__links{gap:clamp(1rem,3vw,1.9rem);display:flex}.top-nav__link{color:var(--ivory);min-height:28px;font-family:var(--font-body);align-items:center;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.top-nav__link:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .5s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.top-nav__link:hover:after,.top-nav__link:focus-visible:after,.top-nav__link.active:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.top-nav__link:after{transition:none}}@media (width<=480px){.top-nav__inner{gap:.75rem}.top-nav__link{font-size:14px}}.site-footer{border-top:1px solid var(--line);z-index:var(--z-content);color:var(--dim);position:relative}.site-footer__inner{max-width:var(--layout-max-w);padding:1.4rem var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.site-footer__inner a{color:var(--dim);transition:color var(--motion-fast) ease;text-decoration:none}.site-footer__inner a:hover{color:var(--signal)}.site-footer__right{flex-wrap:wrap;gap:1rem;display:flex}@media (width<=640px){.site-footer__inner{flex-direction:column;align-items:flex-start}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--ink);color:var(--ivory);font-family:var(--font-body);font-size:var(--type-body-size);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4  0 0 0 0 .38  0 0 0 0 .34  0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");line-height:1.6;overflow-x:hidden}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--signal);outline-offset:3px}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ivory);letter-spacing:0;text-wrap:balance}h1{font-size:var(--type-h1-size);font-weight:700;line-height:1.16}h2{font-size:var(--type-h2-size);font-weight:700;line-height:1.35}h3{font-size:var(--type-h3-size);font-weight:700;line-height:1.35}h4{font-size:var(--type-h4-size);font-weight:700;line-height:1.4}em{color:inherit;font-style:italic}strong,b{color:var(--ivory);font-weight:700}small{font-size:var(--type-small-size);line-height:1.5}code,pre{font-family:var(--font-mono)}.container{z-index:var(--z-content);max-width:var(--layout-max-w);padding:0 var(--gutter);margin:0 auto;position:relative}.container--narrow{max-width:760px}.page-main{z-index:var(--z-content);padding-top:0;padding-bottom:3rem;position:relative}.page-shell{max-width:var(--layout-max-w);padding:0 var(--gutter);margin:0 auto}.section-split{padding:var(--section-pad) 0;border-top:1px solid var(--line);grid-template-columns:minmax(180px,240px) 1fr;align-items:start;gap:clamp(2rem,6vw,5rem);display:grid}.section-split>.section-head{padding:0}.section-split__content{min-width:0}.page-split{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:1rem;padding:clamp(4rem,9vw,7rem) 0 3rem;display:grid}.page-header__kicker{font-size:var(--type-small-size);color:var(--dim);margin-bottom:.85rem}.page-header__title{font-family:var(--font-display);font-size:var(--type-page-title-size);letter-spacing:-.045em;color:var(--ivory);margin-bottom:1rem;font-weight:700;line-height:.95}.page-header__title em,.page-header__lede em{color:inherit;font-style:normal}.page-header__lede{color:var(--ivory-2);max-width:66ch;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.65}.page-aside{color:var(--dim);font-size:var(--type-small-size);flex-wrap:wrap;gap:1rem;display:flex}.page-aside__stat{align-items:baseline;gap:.4rem;display:flex}.page-aside__stat b{color:var(--ivory);font-size:1rem}.page-aside__stat .label{color:var(--dim)}section{min-height:auto}.section-stack{padding:2rem 0}.section-tight{padding-top:0}.section-top-space{padding-top:4rem}.section-title{margin-bottom:1.4rem}.reveal{opacity:1;transform:none}@media (width<=820px){.section-split{grid-template-columns:1fr;gap:1.25rem;padding:3rem 0}.page-split{padding-top:3.5rem}}.mono-label{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;font-size:11px}@keyframes reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}[data-motion-ready=true]{will-change:transform, opacity}html[data-portfolio-motion=enhanced] [data-motion-reveal=pending],html[data-portfolio-motion=enhanced] [data-writing-motion=pending]{opacity:0;transform:translateY(10px)}html[data-portfolio-motion=enhanced] [data-motion-reveal=visible],html[data-portfolio-motion=enhanced] [data-writing-motion=visible],html[data-portfolio-motion=reduced] [data-motion-reveal],html[data-portfolio-motion=reduced] [data-writing-motion]{opacity:1;filter:none;transform:none}.motion-card{transition:border-color var(--motion-card) ease, background-color var(--motion-card) ease, box-shadow var(--motion-card) ease, transform var(--motion-card) ease;transform:translateY(0)}.motion-card__proof{transition:color var(--motion-card) ease, opacity var(--motion-card) ease, transform var(--motion-card) ease}.motion-card:hover,.motion-card:focus-within{border-color:color-mix(in srgb, var(--signal) 44%, var(--line-2));background:color-mix(in srgb, var(--surface-raised) 86%, var(--signal-dim));box-shadow:0 18px 44px color-mix(in srgb, var(--ink) 13%, transparent), 0 0 0 1px color-mix(in srgb, var(--signal) 18%, transparent)}.motion-card:hover .motion-card__proof,.motion-card:focus-within .motion-card__proof{color:var(--ivory);opacity:1;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-motion-reveal],[data-writing-motion]{opacity:1!important;filter:none!important;transform:none!important}}
