@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Playfair+Display:wght@600;700;800&family=Source+Serif+4:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap";:root{--color-page:var(--color-bg);--color-paper:color-mix(in srgb, var(--color-surface) 82%, transparent);--color-paper-solid:var(--color-surface);--color-ink:var(--color-text);--color-muted:color-mix(in srgb, var(--color-text) 72%, var(--color-bg));--color-accent:var(--color-brand-primary);--color-accent-soft:var(--color-accent-muted);--color-border:var(--color-border-subtle-ui);--color-border-strong:var(--color-border-strong-ui);--shadow-card:var(--color-shadow);--color-card-tint:color-mix(in srgb, var(--color-surface) 78%, transparent);--color-card-tint-strong:color-mix(in srgb, var(--color-surface) 92%, var(--color-bg));--color-tag-bg:color-mix(in srgb, var(--color-surface) 88%, var(--color-bg));--color-tag-text:var(--color-ink);--color-ghost-surface:color-mix(in srgb, var(--color-surface) 80%, var(--color-bg));--color-stat-surface:color-mix(in srgb, var(--color-surface) 84%, var(--color-bg));--color-media-overlay:color-mix(in srgb, var(--color-surface) 72%, transparent);--color-media-caption-bg:color-mix(in srgb, var(--color-surface) 78%, transparent);--color-media-caption-border:color-mix(in srgb, var(--color-border-strong) 56%, transparent);--color-media-caption-text:color-mix(in srgb, var(--color-ink) 84%, var(--color-bg));--font-display:"Playfair Display", "Times New Roman", serif;--font-body:"Source Serif 4", Georgia, serif;--font-sans:"Inter", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", Consolas, monospace;--radius-panel:1.5rem;color:var(--color-ink);background:radial-gradient(circle at top left, color-mix(in srgb, var(--color-accent) 18%, transparent), transparent 28%), radial-gradient(circle at top right, color-mix(in srgb, var(--color-text-muted) 16%, transparent), transparent 22%), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 84%, var(--color-bg)) 0%, var(--color-bg) 100%);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:17px;font-weight:400;line-height:1.6}*{box-sizing:border-box}html{scroll-padding-top:5rem}body{background:0 0;min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;background-image:linear-gradient(color-mix(in srgb, var(--color-ink) 6%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-ink) 6%, transparent) 1px, transparent 1px);background-size:36px 36px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000a6,#0000 85%);mask-image:linear-gradient(#000000a6,#0000 85%)}a{color:inherit;text-decoration:none}button,a{cursor:pointer}img{max-width:100%;display:block}#root{min-height:100vh}h1,h2,h3,h4{color:var(--color-ink);margin:0;font-weight:700;line-height:.98}h1,h2{font-family:var(--font-display);letter-spacing:-.05em}h1{max-width:10ch;font-size:clamp(3.7rem,9vw,7rem)}h2{font-size:clamp(2.4rem,5vw,4.4rem)}p{margin:0}code{font-family:var(--font-mono)}:focus-visible{outline:3px solid color-mix(in srgb, var(--color-accent) 42%, transparent);outline-offset:4px}::selection{background:color-mix(in srgb, var(--color-accent) 24%, transparent)}@media (width<=640px){:root{font-size:16px}}.site-shell{position:relative}.skip-link{background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-border-strong);z-index:20;border-radius:999px;padding:.65rem 1rem;transition:transform .18s;position:absolute;top:1rem;left:1rem;transform:translateY(-220%)}.skip-link:focus-visible{transform:translateY(0)}.site-nav{z-index:10;background:color-mix(in srgb, var(--color-paper) 92%, var(--color-surface) 8%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem clamp(4.8rem,8vw,6.5rem) 1rem clamp(1rem,2vw,2rem);display:flex;position:sticky;top:0}.site-nav a{color:var(--color-muted)}.site-mark{flex-direction:column;gap:.15rem;display:inline-flex}.site-mark strong{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.04em;font-size:1.1rem}.site-mark span,.nav-links a,.section-eyebrow,.meta-line,.eyebrow-inline,.timeline-year,.contact-kicker,.hero-aside-label,.hero-metrics dt{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;font-size:.76rem}.nav-links{flex-wrap:wrap;justify-content:flex-end;gap:.95rem;display:flex}.nav-links a{transition:color .18s,opacity .18s}.nav-links a:hover,.nav-links a:focus-visible,.hero-socials a:hover,.hero-socials a:focus-visible,.site-footer a:hover,.site-footer a:focus-visible{color:var(--color-ink)}.section{opacity:0;padding:clamp(3.5rem,8vw,7rem) clamp(1rem,4vw,3rem);transition:opacity .7s,transform .7s;transform:translateY(28px)}.section.is-visible{opacity:1;transform:none}.section-inner{width:min(100%,72rem);margin:0 auto}.section-header{gap:1rem;margin-bottom:clamp(2rem,4vw,3rem);display:grid}.section-header h2{max-width:12ch;margin:0}.section-header p{max-width:44rem;color:var(--color-muted);font-size:1.05rem}.hero-section{padding-top:clamp(4rem,7vw,6rem)}.hero-grid,.about-grid,.contact-panel{gap:1.5rem;display:grid}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(18rem,.9fr);align-items:start}.hero-summary{max-width:38rem;color:var(--color-muted);font-size:clamp(1.15rem,2vw,1.42rem);line-height:1.7}.hero-role{font-family:var(--font-sans);color:var(--color-ink);margin-bottom:1rem;font-size:1rem;font-weight:600}.hero-actions{flex-wrap:wrap;gap:.9rem;margin:2rem 0;display:flex}.button{min-height:2.9rem;font-family:var(--font-sans);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.2rem;font-weight:600;transition:transform .18s,border-color .18s,background .18s,color .18s;display:inline-flex}.button:hover,.button:focus-visible,.card:hover,.card:focus-within,.contact-link:hover,.contact-link:focus-visible{transform:translateY(-2px)}.button-primary{background:var(--color-ink);color:var(--color-text-inverse)}.button-primary:visited{color:var(--color-text-inverse)}.button-primary:hover,.button-primary:focus-visible{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.button-secondary{border-color:var(--color-border);color:var(--color-ink);background:color-mix(in srgb, var(--color-surface) 68%, transparent)}.button-secondary:hover,.button-secondary:focus-visible{border-color:var(--color-accent)}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:42rem;margin:0;display:grid}.hero-metrics div{border-top:1px solid var(--color-border);padding-top:1rem}.hero-metrics dt{color:var(--color-muted);margin-bottom:.75rem}.hero-metrics dd{font-family:var(--font-display);letter-spacing:-.05em;margin:0;font-size:clamp(1.5rem,4vw,2.5rem)}.hero-aside,.panel,.card,.contact-link{background:linear-gradient(180deg, var(--color-card-tint), var(--color-card-tint-strong)), var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-card)}.hero-aside,.panel,.card{padding:1.35rem}.hero-focus-list,.principles-list,.timeline-list{margin:0;padding:0;list-style:none}.hero-focus-list{gap:1rem;display:grid}.hero-focus-list li,.principles-list li,.timeline-list li{gap:.45rem;display:grid}.hero-focus-list span,.principles-list span,.contact-link span,.card h3,.panel h3,.timeline-list h4{color:var(--color-ink)}.hero-socials{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.hero-socials a{color:var(--color-muted);font-size:.95rem}.card-grid{gap:1.25rem;display:grid}.project-grid,.writing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{gap:1.1rem;min-height:100%;transition:transform .22s,border-color .22s,box-shadow .22s;display:grid}.card:hover,.card:focus-within,.contact-link:hover,.contact-link:focus-visible{border-color:color-mix(in srgb, var(--color-accent) 36%, var(--color-border));box-shadow:0 18px 40px color-mix(in srgb, var(--color-ink) 12%, transparent)}.card-media{border-radius:calc(var(--radius-panel) - .45rem);background:radial-gradient(circle at top left, color-mix(in srgb, var(--color-surface) 78%, transparent), transparent 38%), linear-gradient(145deg, var(--media-start), var(--media-end));align-items:flex-end;min-height:10rem;padding:1.1rem 1.1rem 1.2rem;display:flex;position:relative;overflow:hidden}.card-media:before{content:"";background:linear-gradient(180deg, transparent, var(--color-media-overlay));height:62%;position:absolute;inset:auto 0 0}.card-media:after{content:"";border:1px solid color-mix(in srgb, var(--color-surface) 34%, transparent);border-radius:1.5rem;width:6rem;height:6rem;position:absolute;inset:12% 10% auto auto;transform:rotate(12deg)}.card-media-caption{z-index:1;border:1px solid var(--color-media-caption-border);background:var(--color-media-caption-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:14rem;box-shadow:0 10px 24px color-mix(in srgb, var(--color-ink) 12%, transparent);border-radius:1rem;gap:.45rem;padding:.85rem .9rem .9rem;display:grid;position:relative}.card-media-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:color-mix(in srgb, var(--color-ink) 68%, transparent);font-size:.72rem}.card[data-tone=ink]{--media-start:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface));--media-end:color-mix(in srgb, var(--color-surface) 86%, var(--color-bg))}.card[data-tone=stone]{--media-start:color-mix(in srgb, var(--color-text-muted) 16%, var(--color-surface));--media-end:color-mix(in srgb, var(--color-surface) 80%, var(--color-bg))}.card[data-tone=sage]{--media-start:color-mix(in srgb, var(--color-brand-secondary) 20%, var(--color-surface));--media-end:color-mix(in srgb, var(--color-surface) 84%, var(--color-bg))}.card[data-tone=clay]{--media-start:color-mix(in srgb, var(--color-brand-accent) 18%, var(--color-surface));--media-end:color-mix(in srgb, var(--color-surface) 84%, var(--color-bg))}.card-media-copy{color:var(--color-media-caption-text);font-family:var(--font-display);letter-spacing:-.03em;margin-top:0;font-size:1.15rem;line-height:1.05}.meta-line{color:var(--color-muted);flex-wrap:wrap;gap:.65rem;display:flex}.meta-stack{gap:.35rem;display:grid}.meta-read-time{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-muted);font-size:.76rem}.card h3,.panel h3,.timeline-list h4{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:1.55rem;line-height:1.1}.panel h3{margin-bottom:1rem}.card p,.panel p,.contact-summary{color:var(--color-muted);margin:0}.tag-list,.card-links{flex-wrap:wrap;gap:.55rem;display:flex}.tag,.status-pill,.placeholder-pill{border:1px solid var(--color-border);background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:999px;align-items:center;padding:.45rem .72rem;display:inline-flex}.status-pill{color:var(--color-accent);border-color:#2563eb3d}.placeholder-pill{color:var(--color-muted)}.card-links a,.card-links span{align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.card-links span{color:var(--color-muted)}.card-link-primary,.card-link-secondary{border:1px solid var(--color-border);border-radius:999px;min-height:2.35rem;padding:.5rem .82rem;transition:background .18s,border-color .18s,color .18s,transform .18s}.card-link-primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-text-inverse)}.card-link-primary:link,.card-link-primary:visited{color:var(--color-text-inverse)}.card-link-primary:hover,.card-link-primary:focus-visible{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.card-link-secondary{background:var(--color-ghost-surface);color:var(--color-ink)}.card-link-secondary:link,.card-link-secondary:visited{color:var(--color-ink)}.card-link-secondary:hover,.card-link-secondary:focus-visible{border-color:var(--color-accent);color:var(--color-ink)}.archive-link-card{text-decoration:none;position:relative}.archive-link-mark{justify-content:space-between;align-items:center;gap:1rem;display:flex}.archive-link-mark span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-muted);font-size:.76rem}.archive-link-mark strong{font-family:var(--font-display);color:var(--color-accent);font-size:2rem;line-height:1;transition:transform .22s}.archive-link-card:hover .archive-link-mark strong,.archive-link-card:focus-visible .archive-link-mark strong{transform:translate(4px)}.eyebrow-inline{color:var(--color-muted)}.about-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.principles-list,.timeline-list{gap:1.15rem;display:grid}.timeline-list li{border-top:1px solid var(--color-border);padding-top:1rem}.timeline-list li:first-child{border-top:0;padding-top:0}.timeline-year{color:var(--color-muted);margin-bottom:.55rem}.contact-panel{grid-template-columns:minmax(0,1.1fr) minmax(17rem,.9fr);align-items:stretch}.contact-copy{align-content:start;gap:.95rem;min-height:100%;display:grid}.contact-kicker{letter-spacing:.16em;color:var(--color-accent);font-size:.9rem}.contact-summary{max-width:33rem;color:var(--color-ink);font-size:clamp(1.18rem,1.6vw,1.4rem);line-height:1.72}.contact-links{gap:.9rem;display:grid}.contact-link{gap:.35rem;padding:1rem 1.1rem;transition:transform .22s,border-color .22s,box-shadow .22s;display:grid}.contact-link strong{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.25rem}.archive-shell .site-nav{margin-bottom:0}.archive-hero{padding-bottom:2rem}.archive-header h1{max-width:11ch}.archive-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;display:grid}.archive-stats div{border:1px solid var(--color-border);background:var(--color-stat-surface);border-radius:1.15rem;padding:1rem 1.1rem}.archive-stats dt{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-muted);margin-bottom:.75rem;font-size:.76rem}.archive-stats dd{font-family:var(--font-display);letter-spacing:-.05em;margin:0;font-size:clamp(1.8rem,4vw,2.8rem)}.archive-controls{padding-top:1.5rem}.archive-toolbar{gap:1.25rem;margin-bottom:2rem;display:grid}.archive-toolbar-copy{max-width:42rem;color:var(--color-muted)}.filter-chip-row{flex-wrap:wrap;gap:.7rem;display:flex}.filter-chip{border:1px solid var(--color-border);background:var(--color-ghost-surface);color:var(--color-ink);font-family:var(--font-sans);border-radius:999px;padding:.72rem 1rem;font-size:.95rem;font-weight:600;transition:transform .18s,border-color .18s,background .18s,color .18s}.filter-chip:hover,.filter-chip:focus-visible{border-color:var(--color-accent);transform:translateY(-1px)}.filter-chip.is-active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper-solid)}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.archive-card{align-content:start}.archive-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.site-footer{width:min(100%,72rem);color:var(--color-muted);justify-content:space-between;gap:1rem;margin:0 auto;padding:1.4rem clamp(1rem,4vw,3rem) 2rem;font-size:.95rem;display:flex}.site-footer p{margin:0}@media (width<=960px){.site-nav,.site-footer{flex-direction:column;align-items:flex-start}.site-nav{padding-right:clamp(4.2rem,14vw,5rem)}.hero-grid,.about-grid,.contact-panel{grid-template-columns:1fr}.project-grid,.writing-grid,.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-stats{grid-template-columns:1fr}}@media (width<=720px){.section{padding-inline:1rem}.site-nav{padding-right:4.2rem}.nav-links{gap:.7rem 1rem}.hero-metrics,.project-grid,.writing-grid,.archive-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.skip-link,.nav-links a,.button,.card,.section,.contact-link,.filter-chip,.archive-link-mark strong{transition:none}.section{opacity:1;transform:none}html{scroll-behavior:auto}}
