:root{color-scheme:light;--bg: #fbfbf8;--surface: #ffffff;--text: #111111;--muted: #555555;--muted-strong: #777777;--border: #e5e5e5;--accent: #263f5e;--accent-soft: #52667c;--code-bg: #f3f3ef;font-family:Inter,IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.75;background:var(--bg);color:var(--text)}html{scroll-behavior:smooth}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);overflow-x:hidden}a{color:var(--accent);text-decoration:underline;text-decoration-color:#263f5e47;text-underline-offset:.18em}a:hover{text-decoration-color:currentColor}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}main{width:min(100%,850px);max-width:850px;margin:0 auto;padding:2.25rem 1.25rem 4rem}header,footer{width:min(100%,850px);max-width:850px;margin:0 auto;padding:1.5rem 1.25rem}.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-brand{font-size:1.1rem;font-weight:700;letter-spacing:.08em;color:var(--text)}.site-nav{display:flex;flex-wrap:wrap;gap:1rem}.site-nav a{color:var(--muted);font-size:.95rem}.site-nav a:hover{color:var(--text)}.footer-list{display:flex;flex-wrap:wrap;gap:1rem;margin:0;padding:0;list-style:none}.footer-copy{margin:0;color:var(--muted);font-size:.95rem}.footer-list a{color:var(--muted)}.hero-eyebrow,.section-eyebrow{display:inline-flex;margin-bottom:1rem;color:var(--accent);font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.section-heading{margin:0 0 .85rem;font-size:clamp(1.85rem,2.2vw,2.35rem);line-height:1.12}.page-intro,.section-copy{color:var(--muted);max-width:42rem}.card{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;padding:1.25rem}.card-quiet{border-color:#00000014}.card-title{margin:0;font-size:1.2rem;line-height:1.25}.card-subtitle,.card-meta{margin:0;color:var(--muted)}.card-body{display:grid;gap:.7rem}.card-meta{font-size:.92rem;line-height:1.45}.card-title-link{color:var(--text);text-decoration:none}.card-title-link:hover{color:var(--accent);text-decoration:none}.card-preview{width:100%;margin-bottom:1rem;border:1px solid var(--border);border-radius:.35rem}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem .6rem}.about-intro{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:2rem;align-items:start}.photograph{margin:0}.photograph-frame{aspect-ratio:4 / 5;overflow:hidden;border:1px solid var(--border);border-radius:.5rem;background:var(--surface)}.photograph-frame img{width:100%;height:100%;object-fit:cover}.photograph-placeholder{display:grid;width:100%;height:100%;place-items:center;background:linear-gradient(135deg,#263f5e1a,#263f5e05),var(--code-bg);color:var(--accent)}.photograph-placeholder span{font-size:2rem;font-weight:800;letter-spacing:.08em}.photograph figcaption{margin-top:.65rem;color:var(--muted);font-size:.9rem;line-height:1.45}.badge{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:.35rem;border:1px solid rgba(38,63,94,.12);background:#263f5e0a;color:var(--accent);font-size:.8rem;font-weight:700}.link-button,.link-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:999px;font-weight:700;text-decoration:none}.link-button{padding:.95rem 1.4rem;background:var(--accent);color:#fff;text-decoration:none}.link-secondary{padding:.95rem 1.4rem;border:1px solid var(--border);color:var(--text);text-decoration:none}.text-link{color:var(--accent);font-weight:700;text-decoration:none}.text-link:hover{text-decoration:underline}.resume-actions{margin:1.25rem 0}.pdf-viewer{width:100%;height:min(82vh,920px);min-height:620px;overflow:hidden;border:1px solid var(--border);border-radius:.5rem;background:var(--surface)}.pdf-viewer object{width:100%;height:100%;display:block}.pdf-viewer p{margin:1.25rem;color:var(--muted)}@media (max-width: 720px){.header-inner,.footer-inner{flex-direction:column;align-items:flex-start}.about-intro{grid-template-columns:1fr}.photograph{max-width:260px}.pdf-viewer{min-height:520px;height:75vh}}body.phone-mode{font-size:15px}body.phone-mode header,body.phone-mode footer{padding:1rem}body.phone-mode main{padding:1.4rem 1rem 3rem}body.phone-mode .header-inner,body.phone-mode .footer-inner{align-items:center;gap:.85rem;text-align:center}body.phone-mode .site-brand{display:block;width:100%;font-size:1rem;letter-spacing:.04em;text-align:center}body.phone-mode .site-nav{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .75rem;justify-items:center}body.phone-mode .site-nav a{font-size:.9rem;line-height:1.35}body.phone-mode .footer-copy{width:100%}body.phone-mode .footer-list{width:100%;justify-content:center;gap:.45rem .9rem;text-align:center}body.phone-mode .footer-list li{display:inline-flex}body.phone-mode main>section:first-child{margin-bottom:2rem!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}body.phone-mode main>section:first-child h1{font-size:2.15rem!important;line-height:1.12!important}body.phone-mode main>section:first-child p{max-width:100%!important}body.phone-mode .section-heading{font-size:1.75rem}body.phone-mode .section-copy{max-width:100%}body.phone-mode .card{padding:1rem}body.phone-mode .about-intro{gap:1.4rem}body.phone-mode .photograph{max-width:min(100%,300px)}body.phone-mode .pdf-viewer{min-height:480px;height:70vh;border-radius:.35rem}.prose{max-width:46rem;color:#111;font-family:Georgia,"Source Serif Pro",serif;line-height:1.82}.prose h1,.prose h2,.prose h3,.prose h4{color:#111;margin-top:2.4rem;margin-bottom:.85rem;line-height:1.2}.prose h1{font-size:2.25rem}.prose h2{font-size:1.65rem}.prose h3{font-size:1.28rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose dl,.prose table{max-width:46rem}.prose p{margin:1.25rem 0;color:#333}.prose ul,.prose ol{margin:1rem 0 1rem 1.4rem;padding:0}.prose li{margin:.35rem 0}.prose blockquote{margin:1.5rem 0;padding:1rem 1.2rem;border-left:3px solid var(--accent);background:#f3f3ef;color:#333}.prose hr{max-width:46rem;margin:2.4rem 0;border:0;border-top:1px solid var(--border)}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:#263f5e4d;text-underline-offset:.18em}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;background:var(--code-bg);padding:.2rem .45rem;border-radius:.25rem;color:var(--accent)}.prose pre{margin:1.5rem 0;padding:1.25rem 1.35rem;background:var(--code-bg);border:1px solid var(--border);border-radius:.45rem;overflow-x:auto}.prose pre code{background:transparent;padding:0}.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0}.prose th,.prose td{border:1px solid var(--border);padding:.85rem 1rem}.prose th{background:#faf9f5;font-weight:700}.tag-pill{display:inline-flex;padding:0;border-radius:0;background:transparent;color:var(--muted);font-size:.88rem}.tag-pill:before{content:"#";color:var(--muted-strong)}.prose img{margin:1.75rem 0;border-radius:.35rem}.figcaption,.prose figcaption{color:var(--muted);font-size:.95rem;margin-top:.5rem}.callout{max-width:46rem;margin:1.5rem 0;padding:1rem 1.1rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:.4rem;background:#f7f7f2}.equation{font-family:"Cambria Math",Times New Roman,serif;color:var(--text);white-space:nowrap}.equation-block{max-width:46rem;margin:1.4rem 0;padding:1rem 1.2rem;overflow-x:auto;border:1px solid var(--border);border-radius:.4rem;background:#f7f7f2;text-align:center}body.phone-mode .prose{max-width:100%;line-height:1.78}body.phone-mode .prose h1{font-size:1.9rem}body.phone-mode .prose h2{font-size:1.45rem}body.phone-mode .prose h3{font-size:1.18rem}body.phone-mode .prose p,body.phone-mode .prose ul,body.phone-mode .prose ol,body.phone-mode .prose blockquote,body.phone-mode .prose dl,body.phone-mode .prose table,body.phone-mode .callout,body.phone-mode .equation-block{max-width:100%}body.phone-mode .prose pre,body.phone-mode .equation-block{margin-right:-.25rem;margin-left:-.25rem;padding:.9rem 1rem}body.phone-mode .equation{white-space:normal;overflow-wrap:anywhere}body.phone-mode .equation-block .equation,body.phone-mode .equation-block{white-space:nowrap}
