@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-latin-variable.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500 700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-variable.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-500.woff2) format("woff2")}:root{--font-heading: "Cormorant Garamond", serif;--font-body: "Manrope", sans-serif;--font-mono: "IBM Plex Mono", monospace;--bg: #f2ece3;--surface: #f8f4ee;--surface-muted: #eadfce;--surface-elevated: #fbf8f2;--text: #18130f;--text-muted: #5a4b3d;--line: #d8c6b4;--accent: #94502a;--accent-strong: #743918;--button-text: #fffaf5}:root[data-theme=dark]{--bg: #0d141b;--surface: #121c25;--surface-muted: #223040;--surface-elevated: #17222d;--text: #f2f7fb;--text-muted: #c1ccd7;--line: #324355;--accent: #ebb08a;--accent-strong: #f5c9ab;--button-text: #170f0a}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);line-height:1.7;background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 10%,transparent),transparent 36%),linear-gradient(180deg,color-mix(in srgb,var(--surface) 75%,var(--bg)) 0%,var(--bg) 18%,var(--bg) 100%)}a{color:inherit}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.content-width{width:min(1080px,calc(100% - 2.6rem));margin-inline:auto}.top-nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent)}.top-nav-inner{min-height:66px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem}.brand{text-decoration:none;font-family:var(--font-heading);font-size:1.8rem;letter-spacing:.01em;line-height:1}.menu-button{display:none;border:1px solid var(--line);background:transparent;color:var(--text);border-radius:999px;min-height:42px;padding:.42rem .8rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;align-items:center;gap:.42rem;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.menu-button:hover{border-color:color-mix(in srgb,var(--line) 62%,var(--accent));color:var(--accent)}.menu-button-label{line-height:1}.menu-button-icon{width:.86rem;height:.86rem;display:inline-flex;align-items:center;justify-content:center}.menu-button-icon svg{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.menu-button-icon-close{display:none}.menu-button[aria-expanded=true]{background:color-mix(in srgb,var(--surface-muted) 56%,transparent)}.menu-button[aria-expanded=true] .menu-button-icon-open{display:none}.menu-button[aria-expanded=true] .menu-button-icon-close{display:inline-flex}.top-nav-actions{display:flex;align-items:center;justify-self:end;justify-content:flex-end;flex-wrap:nowrap;gap:.5rem}.top-nav-links ul{margin:0;padding:0;list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:.2rem}.top-nav-links a{text-decoration:none;color:var(--text-muted);font-weight:700;padding:.35rem .72rem;border-radius:999px;transition:color .15s ease,background-color .15s ease}.theme-toggle{position:relative;display:inline-grid}.theme-toggle-trigger{width:2.25rem;height:2.25rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.theme-toggle-trigger:hover{border-color:color-mix(in srgb,var(--line) 60%,var(--accent));color:var(--accent)}.theme-toggle-trigger[aria-expanded=true]{background:color-mix(in srgb,var(--surface-muted) 54%,transparent)}.theme-toggle-icon,.theme-option-icon{width:.98rem;height:.98rem;display:inline-flex;align-items:center;justify-content:center}.theme-toggle-icon{display:none}.theme-toggle-icon-system{display:inline-flex}:root[data-theme-preference=light] .theme-toggle-icon-light,:root[data-theme-preference=dark] .theme-toggle-icon-dark{display:inline-flex}:root[data-theme-preference=light] .theme-toggle-icon-dark,:root[data-theme-preference=light] .theme-toggle-icon-system,:root[data-theme-preference=dark] .theme-toggle-icon-light,:root[data-theme-preference=dark] .theme-toggle-icon-system{display:none}.theme-toggle-icon svg,.theme-option-icon svg{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}.theme-toggle-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:8rem;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface-elevated) 96%,transparent);box-shadow:0 14px 30px color-mix(in srgb,#000 20%,transparent);display:grid;gap:.1rem;padding:.26rem;z-index:70}.theme-toggle-menu[hidden]{display:none}.theme-toggle-option{width:100%;border:0;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;gap:.46rem;padding:.38rem .44rem;font-family:var(--font-mono);font-size:.82rem;text-align:left;cursor:pointer}.theme-toggle-option:hover,.theme-toggle-option:focus-visible{outline:none;background:color-mix(in srgb,var(--surface-muted) 68%,transparent)}.theme-toggle-option.is-selected{color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 16%,transparent)}.theme-option-label{line-height:1.1}.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}.page-main{padding:3.35rem 0 3.5rem}.page-content{display:grid;gap:3rem}.hero-block{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:2.4rem;padding-bottom:2.6rem;border-bottom:1px solid var(--line)}.hero-copy,.hero-aside{display:grid;gap:1rem;align-content:start}.hero-eyebrow{margin:0;color:var(--accent-strong);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.timeline-meta,.timeline-company,.project-meta,.project-location,.post-meta-line,.education-school{margin:0;color:var(--text-muted);font-family:var(--font-mono);font-size:.73rem;letter-spacing:.03em}.hero-copy h1,.section-intro h2,.timeline-card h3,.project-preview h3,.featured-post h3,.post-list-item h4,.education-card h3,.post-content h1,.post-content h2,.post-content h3,.post-content h4,.principle-card h3{margin:0;font-family:var(--font-heading);line-height:1.12;font-weight:600}.hero-copy h1{font-size:clamp(2.8rem,5vw,4.7rem);max-width:11ch}.hero-subhead{margin:0;max-width:56ch;font-size:1.12rem}.hero-intro{margin:0;max-width:60ch;color:var(--text-muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.2rem}.button{text-decoration:none;border-radius:999px;min-height:46px;padding:.62rem 1.05rem;display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:transform .14s ease,border-color .14s ease,color .14s ease,background-color .14s ease}.button:hover{transform:translateY(-1px)}.button-primary{border:1px solid var(--accent);background:var(--accent);color:var(--button-text);box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 20%,transparent)}.button-primary:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--button-text)}.button-secondary{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb,var(--surface-elevated) 84%,transparent)}.button-secondary:hover{border-color:color-mix(in srgb,var(--line) 54%,var(--accent))}.hero-aside{width:min(100%,296px);justify-self:end;align-self:start;padding:1rem;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surface-elevated) 92%,transparent);box-shadow:0 18px 40px color-mix(in srgb,#000 7%,transparent)}.hero-portrait{margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:.95/1;background:color-mix(in srgb,var(--surface-muted) 62%,transparent)}.hero-portrait picture{display:block;width:100%;height:100%}.hero-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 20%}.hero-profile-meta{display:grid;justify-items:start;gap:.5rem}.hero-meta-line{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.45}.hero-meta-email a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--line) 56%,var(--accent));text-underline-offset:.16em}.hero-socials{display:flex;flex-wrap:wrap;gap:.42rem}.hero-socials a{display:inline-flex;align-items:center;gap:.34rem;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:.28rem .54rem;font-size:.76rem;font-weight:700;color:var(--text-muted);background:color-mix(in srgb,var(--surface-elevated) 88%,transparent)}.hero-social-icon{width:15px;height:15px;display:block;flex:0 0 auto;filter:grayscale(1) brightness(0)}:root[data-theme=dark] .hero-social-icon{filter:grayscale(1) brightness(0) invert(1)}.principle-card{border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:20px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 16px 30px color-mix(in srgb,#000 5%,transparent)}.content-section{padding-top:1.6rem;border-top:1px solid var(--line);display:grid;gap:1.05rem}.content-section-no-border{padding-top:0;border-top:0}.section-intro{display:grid;gap:.48rem}.section-intro h2{font-size:clamp(1.4rem,3.3vw,2.15rem)}.section-intro p{margin:0;max-width:62ch;color:var(--text-muted)}.section-intro-main{display:flex;justify-content:space-between;align-items:end;gap:.9rem}.section-intro-link,.section-tail-link,.home-inline-links a,.home-contact-note a{text-decoration:none;border-bottom:1px solid var(--line)}.section-intro-link{font-weight:700;white-space:nowrap}.section-tail-link{justify-self:end;font-weight:700;white-space:nowrap}.section-intro-link:hover,.section-tail-link:hover,.home-inline-links a:hover,.home-contact-note a:hover{color:var(--accent);border-bottom-color:var(--accent)}.lead-copy{margin:0;max-width:62ch}.approach-copy{display:grid;gap:.7rem;max-width:72ch}.approach-copy p{margin:0;color:var(--text-muted)}.principles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.principle-card{display:grid;gap:.5rem;padding:1rem 1rem 1.1rem}.principle-index{margin:0;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.08em;color:var(--accent-strong)}.principle-card p:last-child{margin:0;color:var(--text-muted)}.home-focus-list{margin:0;padding:0;list-style:none;display:grid;gap:.32rem;max-width:60ch}.home-focus-list li{position:relative;padding-left:.95rem;color:var(--text-muted)}.home-focus-list li:before{content:"";width:.34rem;height:.34rem;border-radius:50%;background:var(--accent);position:absolute;left:0;top:.72rem}.home-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.home-work-column{display:grid;gap:.8rem;align-content:start}.home-column-title{margin:0;font-family:var(--font-heading);font-size:1.55rem;line-height:1.15}.home-column-link{justify-self:start}.project-grid-home-resume{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-stack{display:grid;gap:1.3rem}.timeline-card,.project-preview,.featured-post,.post-list-item,.education-card{display:grid;gap:.65rem;border:1px solid var(--line);border-left:3px solid color-mix(in srgb,var(--accent) 60%,var(--line));border-radius:20px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:0 16px 30px color-mix(in srgb,#000 5%,transparent);padding:1rem 1rem 1rem 1.05rem}.timeline-card h3,.project-preview h3,.featured-post h3,.post-list-item h4{font-size:1.34rem}.timeline-company{display:flex;align-items:center;gap:.44rem;flex-wrap:wrap}.timeline-company-link{display:inline-flex;align-items:center;gap:.44rem;color:inherit;text-decoration:none;border:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-radius:10px;padding:.22rem .42rem;background:color-mix(in srgb,var(--surface-elevated) 84%,transparent);transition:border-color .14s ease,background-color .14s ease,color .14s ease}.timeline-company-link:hover,.timeline-company-link:focus-visible{outline:none;border-color:color-mix(in srgb,var(--line) 50%,var(--accent));background:color-mix(in srgb,var(--surface-muted) 56%,transparent);color:var(--text)}.timeline-company-name{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--line) 56%,var(--accent));text-decoration-thickness:1px;text-underline-offset:.14em}.timeline-company-external{font-size:.78rem;line-height:1;color:var(--text-muted)}.timeline-company-location{color:var(--text-muted)}.timeline-company-logo-wrap{display:inline-flex;align-items:center;justify-content:center;padding:.12rem .26rem;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:6px;background:color-mix(in srgb,var(--surface) 82%,transparent);line-height:0}.timeline-company-logo{height:18px;width:auto;max-width:104px;object-fit:contain;display:block}.timeline-summary,.project-preview p,.featured-post p,.post-list-item p{margin:0}.timeline-card ul{margin:0;padding:0;list-style:none;display:grid;gap:.25rem}.timeline-card li,.skill-group-card li{color:var(--text-muted);font-size:.93rem}.project-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid-full,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid-home{grid-template-columns:1fr}.writing-home-layout,.writing-index-layout{display:grid;gap:1rem;grid-template-columns:1fr}.writing-home-layout-minimal{max-width:64ch}.post-list-stack{display:grid;gap:.9rem}.tag-list{display:flex;flex-wrap:wrap;gap:.34rem}.tag-list span{border:1px solid var(--line);border-radius:999px;padding:.18rem .4rem;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.home-inline-links{margin:.15rem 0 0;display:flex;flex-wrap:wrap;gap:.65rem;font-weight:700}.education-grid{display:grid;gap:1rem}.education-card h3,.skill-group-card h3{font-size:1.43rem}.education-card p{margin:0}.home-contact-inline{margin:-1rem 0 0;color:var(--text-muted);font-size:.95rem}.home-contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.home-contact-note{margin:0;color:var(--text-muted);font-size:.92rem}.home-contact-note a{color:inherit}.content-section-post{gap:.92rem}.post-content{display:grid;gap:.7rem;max-width:70ch}.post-content p,.post-content ul,.post-content ol,.post-content blockquote,.post-content pre{margin:0}.post-content ul,.post-content ol{padding-left:1.2rem}.post-content blockquote{border-left:2px solid var(--accent);padding-left:.8rem;color:var(--text-muted)}.post-content code{font-family:var(--font-mono);font-size:.9em;background:color-mix(in srgb,var(--surface-muted) 55%,transparent);border-radius:4px;padding:.08rem .2rem}.post-content pre{border:1px solid var(--line);border-radius:8px;padding:.72rem;overflow-x:auto}.post-content pre code{background:transparent;padding:0}.post-footer-nav{border-top:1px solid var(--line);padding-top:.86rem;display:flex;flex-direction:column;gap:.36rem}.site-footer{border-top:1px solid var(--line);padding:1.2rem 0 1.6rem}.site-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem}.site-footer p{margin:0;color:var(--text-muted);font-size:.9rem}.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.36rem}.site-footer a{text-decoration:none;color:var(--text-muted);font-size:.78rem}.top-nav-links a.is-active,.top-nav-links a:hover{color:var(--text);background:color-mix(in srgb,var(--surface-muted) 70%,transparent)}.reveal{animation:fade-rise .26s ease both}@keyframes fade-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.hero-block{grid-template-columns:1fr;gap:1.4rem}.principles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-work-grid,.project-grid,.project-grid-full,.project-grid-home-resume,.skills-grid{grid-template-columns:1fr}}@media(max-width:820px){.top-nav{backdrop-filter:none;background:var(--surface)}.page-main{padding:2rem 0 2.4rem}.page-content{gap:2.2rem}.content-width{width:min(980px,calc(100% - 1.2rem))}.top-nav-inner{grid-template-columns:minmax(0,1fr) auto;min-height:72px;gap:.6rem}.brand{font-size:clamp(1.55rem,8vw,2rem)}.top-nav-actions{gap:.42rem;align-items:center;align-self:center}.top-nav-actions>*{flex:0 0 auto}.theme-toggle-trigger{width:44px;height:44px}.menu-button{display:inline-flex;min-height:44px;padding:.44rem .84rem}.top-nav-links{position:absolute;top:calc(100% + .35rem);left:.6rem;right:.6rem;border:1px solid var(--line);border-radius:22px;background:var(--surface);backdrop-filter:none;box-shadow:0 14px 34px color-mix(in srgb,#000 28%,transparent);display:none;padding:.48rem;overflow:hidden;isolation:isolate;z-index:70}.top-nav-links.is-open{display:block}.top-nav-links ul{width:100%;margin-inline:0;flex-direction:column;align-items:stretch;gap:.14rem}.top-nav-links a{width:100%;min-height:44px;padding:.5rem .65rem;display:inline-flex;align-items:center;border-radius:10px}.section-intro-main{flex-direction:column;align-items:start}.hero-copy h1{max-width:12ch}.hero-actions{width:100%}.hero-actions .button{flex:1 1 11.5rem}.hero-aside{width:100%;grid-template-columns:minmax(0,148px) minmax(0,1fr);align-items:start}.hero-profile-meta{align-content:start}.principles-grid{grid-template-columns:1fr}.section-tail-link{justify-self:start;min-height:44px;display:inline-flex;align-items:center}.timeline-company{align-items:flex-start;gap:.3rem}.timeline-company-link{flex-wrap:wrap;min-height:40px;padding:.26rem .4rem}.timeline-company-location{width:100%}.site-footer-inner{flex-direction:column;align-items:start}body.is-menu-open{overflow:hidden;touch-action:none}}@media(max-width:620px){.hero-aside{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
