.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{color-scheme:dark;--ink: #080807;--ink-1: #0e0d0c;--ink-2: #171512;--ivory: #f5efe5;--ivory-2: #d8d0c4;--dim: #9a9287;--dim-2: #6f675d;--signal: #ff6a2a;--signal-hov: #ff9a68;--signal-dim: rgba(255, 106, 42, .12);--signal-glow: rgba(255, 106, 42, .3);--status-live: #7fb58b;--status-agent: #9fb8b0;--status-hot: #ff6a2a;--status-cold: #a2aecb;--status-warn: #d09a55;--line: rgba(245, 239, 229, .11);--line-2: rgba(245, 239, 229, .17);--line-3: rgba(245, 239, 229, .34);--font-display: "Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--type-hero-name-size: clamp(3rem, 7vw, 5rem);--type-page-title-size: clamp(2.2rem, 5vw, 3.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: 1080px;--layout-max-w-narrow: 1080px;--layout-nav-h: 64px;--shadow-card-hover: 0 20px 44px rgba(0, 0, 0, .32);--shadow-connect-hover: 0 16px 34px rgba(0, 0, 0, .24);--surface-card: rgba(255, 255, 255, .035);--surface-raised: rgba(255, 255, 255, .055);--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(max-width:768px){:root{--gutter: 1.25rem;--layout-nav-h: 58px;--section-pad: 3rem}}.type-hero{font-family:var(--font-display);font-size:var(--type-hero-name-size);font-weight:700;letter-spacing:0;line-height:.98}.type-page-title{font-family:var(--font-display);font-size:var(--type-page-title-size);font-weight:700;letter-spacing:0;line-height:1.04}.type-h1{font-family:var(--font-display);font-size:var(--type-h1-size);font-weight:700;letter-spacing:0;line-height:1.18}.type-h2{font-family:var(--font-display);font-size:var(--type-h2-size);font-weight:700;letter-spacing:0;text-transform:none;line-height:1.35;color:var(--ivory)}.type-h3{font-family:var(--font-display);font-size:var(--type-h3-size);font-weight:700;line-height:1.35}.type-h4{font-family:var(--font-display);font-size:var(--type-h4-size);font-weight:700;line-height:1.4}.type-body{font-family:var(--font-display);font-size:var(--type-body-size);font-weight:400;line-height:1.7}.type-small{font-family:var(--font-display);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-display);font-size:var(--type-caption-size);font-weight:500;letter-spacing:0;text-transform:none;color:var(--dim)}.btn{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line-3);border-radius:var(--radius-sm);background:var(--ivory);color:#080807;padding:.68rem 1rem;font-family:var(--font-display);font-size:var(--type-small-size);font-weight:700;line-height:1;cursor:pointer;text-decoration:none;transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease}.btn:hover{background:var(--signal);border-color:var(--signal);color:#080807}.btn:disabled,.btn[aria-disabled=true]{background:var(--line-2);border-color:transparent;color:var(--dim-2);cursor:not-allowed}.btn--primary{background:var(--ivory);color:#080807;border-color:var(--ivory)}.btn--ghost{background:transparent;color:var(--ivory);border-color:color-mix(in srgb,var(--ivory) 28%,transparent)}.btn--ghost:hover{background:var(--signal-dim);border-color:var(--signal);color:var(--signal-hov)}.btn--link{min-height:0;background:transparent;color:var(--signal);border-color:transparent;padding:0;font-weight:700}.btn--link:hover{background:transparent;border-color:transparent;color:var(--signal-hov);text-decoration:underline;text-underline-offset:3px}.field{display:block;width:100%;min-width:0;min-height:42px;background:var(--ink-1);border:1px solid var(--line-2);color:var(--ivory);border-radius:var(--radius-sm);padding:.66rem .78rem;font-family:var(--font-display);font-size:var(--type-small-size);line-height:1.45;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.field:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-dim)}.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{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pill{display:inline-block;padding:.18rem .6rem;border-radius:var(--radius-pill);background:var(--signal-dim);color:var(--signal);font-family:var(--font-display);font-size:.72rem;font-weight:500;letter-spacing:.01em;line-height:1.3;border:1px solid transparent}.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{background:#7de2a31f;color:var(--status-agent)}.tag{display:inline-block;padding:.1rem .5rem;border-radius:20px;background:#e5a67914;color:var(--ivory-2);font-family:var(--font-mono);font-size:var(--type-mono-xs-size);border:1px solid var(--line-2);margin-right:.3rem}.card{position:relative;background:linear-gradient(145deg,rgba(255,255,255,.045),transparent 42%),var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-6);display:flex;flex-direction:column;gap:.35rem;color:inherit;text-decoration:none;transition:border-color var(--motion-card) ease,background var(--motion-card) ease,box-shadow var(--motion-card) ease,transform var(--motion-card) ease}.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);line-height:1.55;margin-bottom:.75rem}.card--writing .read-link{color:var(--signal);text-decoration:none;font-size:var(--type-small-size);font-weight:700}.card--writing .read-link:hover{color:var(--signal-hov);text-decoration:underline;text-underline-offset:3px}.section-head{display:grid;gap:.5rem;align-items:baseline}.section-head__num{display:none}.section-head__name{font-family:var(--font-display);font-size:var(--type-h2-size);font-weight:700;letter-spacing:0;text-transform:none;color:var(--ivory)}.section-head__name em{font-style:normal;font-weight:inherit;color:inherit}.section-head__meta{color:var(--dim);font-size:var(--type-small-size);max-width:34ch;text-align:left;line-height:1.55}.top-nav{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--ink) 88%,transparent);position:sticky;top:0;z-index:var(--z-nav);backdrop-filter:blur(16px);isolation:isolate;overflow:hidden}.top-nav__field{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.7;contain:layout paint;mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%)}.top-nav__field-dot{position:absolute;top:var(--field-y);left:var(--field-x);width:var(--field-size);height:var(--field-size);border-radius:999px;background:#f5efe580;opacity:var(--field-opacity);transform:translate3d(-50%,-50%,0);transform-origin:center;will-change:transform,opacity}.top-nav__field-dot--warm{background:#d8d0c475}.top-nav__field-dot--signal{background:#ff6a2a8f;box-shadow:0 0 10px #ff6a2a1f}.top-nav__inner{position:relative;z-index:2;max-width:var(--layout-max-w);margin:0 auto;padding:18px var(--gutter);display:flex;gap:2rem;align-items:center;justify-content:space-between;font-family:var(--font-display);font-size:var(--type-small-size)}.top-nav__brand{color:var(--ivory);font-weight:700;text-decoration:none;white-space:nowrap}.top-nav__brand:hover{color:var(--signal)}.top-nav__links{display:flex;gap:clamp(1rem,3vw,1.8rem);flex-wrap:wrap;justify-content:flex-end}.top-nav__link{color:var(--dim);min-height:28px;display:inline-flex;align-items:center;text-decoration:none;border-bottom:1px solid transparent;transition:color var(--motion-fast) ease,border-color var(--motion-fast) ease}.top-nav__link:hover,.top-nav__link.active{color:var(--ivory);border-bottom-color:var(--signal)}@media(max-width:640px){.top-nav__field{opacity:.58}.top-nav__inner{padding:14px var(--gutter);gap:1rem;align-items:flex-start;flex-direction:column}.top-nav__links{justify-content:flex-start}}.site-footer{border-top:1px solid var(--line);margin-top:3rem;position:relative;z-index:var(--z-content);color:var(--dim)}.site-footer__inner{max-width:var(--layout-max-w);margin:0 auto;padding:1.4rem var(--gutter);font-family:var(--font-display);font-size:var(--type-small-size);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.site-footer__inner a{color:var(--dim);text-decoration:none;transition:color var(--motion-fast) ease}.site-footer__inner a:hover{color:var(--signal)}.site-footer__right{display:flex;gap:1rem;flex-wrap:wrap}@media(max-width:640px){.site-footer__inner{align-items:flex-start;flex-direction:column}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{background:radial-gradient(circle at 72% -10%,rgba(255,106,42,.11),transparent 24rem),linear-gradient(180deg,rgba(255,106,42,.035),transparent 18rem),var(--ink);color:var(--ivory);font-family:var(--font-display);font-size:var(--type-body-size);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(245,239,229,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(245,239,229,.028) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(180deg,rgba(0,0,0,.42),transparent 42rem);content:""}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}h1{font-size:var(--type-h1-size);line-height:1.16;font-weight:700}h2{font-size:var(--type-h2-size);line-height:1.35;font-weight:700}h3{font-size:var(--type-h3-size);line-height:1.35;font-weight:700}h4{font-size:var(--type-h4-size);line-height:1.4;font-weight:700}em{font-style:italic;color:inherit}strong,b{font-weight:700;color:var(--ivory)}small{font-size:var(--type-small-size);line-height:1.5}code,pre{font-family:var(--font-mono)}.container{position:relative;z-index:var(--z-content);max-width:var(--layout-max-w);margin:0 auto;padding:0 var(--gutter)}.container--narrow{max-width:760px}.page-main{position:relative;z-index:var(--z-content);padding-top:0;padding-bottom:3rem}.page-shell{max-width:var(--layout-max-w);margin:0 auto;padding:0 var(--gutter)}.section-split{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:clamp(2rem,6vw,5rem);padding:var(--section-pad) 0;border-top:1px solid var(--line);align-items:start}.section-split>.section-head{padding:0}.section-split__content{min-width:0}.page-split{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:clamp(4rem,9vw,7rem) 0 3rem;border-bottom:1px solid var(--line)}.page-header__kicker{font-size:var(--type-small-size);color:var(--dim);margin-bottom:.85rem}.page-header__title{font-size:var(--type-page-title-size);font-weight:700;line-height:1.04;color:var(--ivory);margin-bottom:1rem}.page-header__title em,.page-header__lede em{color:inherit;font-style:normal}.page-header__lede{font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.65;color:var(--ivory-2);max-width:66ch}.page-aside{display:flex;gap:1rem;flex-wrap:wrap;color:var(--dim);font-size:var(--type-small-size)}.page-aside__stat{display:flex;gap:.4rem;align-items:baseline}.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(max-width:820px){.section-split{grid-template-columns:1fr;gap:1.25rem;padding:3rem 0}.page-split{padding-top:3.5rem}}@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-home-work-slot=pending],html[data-portfolio-motion=enhanced] [data-home-scroll-slot=pending],html[data-portfolio-motion=enhanced] [data-writing-motion=pending]{opacity:0;transform:translate(-34px);filter:blur(5px)}html[data-portfolio-motion=enhanced] [data-motion-reveal=visible],html[data-portfolio-motion=enhanced] [data-home-work-slot=visible],html[data-portfolio-motion=enhanced] [data-home-scroll-slot=visible],html[data-portfolio-motion=enhanced] [data-writing-motion=visible],html[data-portfolio-motion=reduced] [data-motion-reveal],html[data-portfolio-motion=reduced] [data-home-work-slot],html[data-portfolio-motion=reduced] [data-home-scroll-slot],html[data-portfolio-motion=reduced] [data-writing-motion]{opacity:1;transform:none;filter:none}.motion-card{transform:translateY(0);transition:border-color var(--motion-card) ease,background-color var(--motion-card) ease,box-shadow var(--motion-card) ease,transform var(--motion-card) ease}.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{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}[data-motion-reveal],[data-home-work-slot],[data-home-scroll-slot],[data-writing-motion]{opacity:1!important;transform:none!important;filter:none!important}}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
