.blog{--blog-bg: var(--page-bg, #f7f5f0);--blog-ink: #1a1a18;--blog-ink-soft: #3d3b36;--blog-ink-muted: #6b6860;--blog-accent: #2a4d7a;--blog-accent-deep: #1a3354;--blog-hairline: #ddd8cb;--blog-hairline-strong: #c9c3b2;--blog-serif: Georgia, "Times New Roman", Times, serif;--blog-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--blog-measure: 46rem;min-height:100vh;background-color:var(--blog-bg);color:var(--blog-ink);font-family:var(--blog-serif);line-height:1.6}.blog-article{max-width:var(--blog-measure);margin:0 auto;padding:3.5rem 1.75rem 5rem}.blog-poster{margin-bottom:2.75rem;padding-bottom:2.25rem;border-bottom:3px double var(--blog-hairline-strong)}.blog-kicker{margin:0 0 .9rem;font-family:var(--blog-sans);font-size:.7rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--blog-accent)}.blog-poster h1{margin:0 0 .9rem;font-family:var(--blog-serif);font-size:clamp(3rem,8vw,4.5rem);font-weight:700;line-height:1;letter-spacing:-.015em;color:var(--blog-ink)}.blog-contact{margin:0 0 1.5rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;font-family:var(--blog-sans);font-size:.85rem;color:var(--blog-ink-muted)}.blog-contact-sep{color:var(--blog-hairline-strong)}.blog-contact a{color:var(--blog-accent);text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--blog-hairline-strong)}.blog-contact a:hover{color:var(--blog-accent-deep);text-decoration-color:currentColor}.blog-opening{margin:0;font-size:1.2rem;font-style:italic;line-height:1.55;color:var(--blog-ink-soft);max-width:40rem}.blog-body{font-size:.95rem;color:var(--blog-ink-soft)}.blog-section+.blog-section{margin-top:3rem}.blog-section h2{display:flex;align-items:center;gap:1rem;margin:0 0 1.4rem;font-family:var(--blog-sans);font-size:.75rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--blog-ink)}.blog-section h2:after{content:"";flex:1;height:1px;background-color:var(--blog-hairline)}.blog-skills{margin:0;display:grid;row-gap:.7rem}.blog-skill-row{display:grid;grid-template-columns:7.5rem 1fr;column-gap:1.25rem;align-items:baseline}.blog-skills dt{font-family:var(--blog-sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blog-accent)}.blog-skills dd{margin:0}.blog-job+.blog-job{margin-top:2.25rem;padding-top:2rem;border-top:1px solid var(--blog-hairline)}.blog-job-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.5rem;margin-bottom:.9rem}.blog-job-title h3{margin:0;font-family:var(--blog-serif);font-size:1.3rem;font-weight:700;letter-spacing:-.01em;color:var(--blog-ink)}.blog-job-role{margin:.15rem 0 0;font-family:var(--blog-sans);font-size:.82rem;color:var(--blog-ink-muted)}.blog-job-dates{margin:0;font-family:var(--blog-sans);font-size:.78rem;font-weight:600;letter-spacing:.08em;color:var(--blog-accent);white-space:nowrap}.blog-job-bullets{margin:0;padding:0;list-style:none}.blog-job-bullets li{position:relative;padding-left:1.3rem;margin-bottom:.55rem}.blog-job-bullets li:last-child{margin-bottom:0}.blog-job-bullets li:before{content:"";position:absolute;left:0;top:.62em;width:.45rem;height:2px;background-color:var(--blog-accent)}@media(max-width:34rem){.blog-article{padding-top:2.5rem}.blog-skill-row{grid-template-columns:1fr;row-gap:.15rem}.blog-job-header{flex-direction:column}}.blog a:focus-visible{outline:2px solid var(--blog-accent);outline-offset:2px}.blog-layer{position:relative;z-index:1;opacity:1;background-color:#f7f5f0}.blog-layer--inert{opacity:0;visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.canvas-layer{position:fixed;inset:0;z-index:0}.canvas-layer--active{z-index:2}.reset-indicator{position:fixed;left:50%;bottom:40px;transform:translate(-50%);width:220px;height:14px;padding:2px;box-sizing:border-box;border:1px solid #2b2b2b;border-radius:7px;background-color:#f7f5f0;z-index:3;pointer-events:none}.reset-indicator__fill{height:100%;min-width:0;background-color:#2b2b2b;border-radius:4px}.reset-indicator__fill--flash{background-color:#c2410c}*,*:before,*:after{box-sizing:border-box}:root{--page-bg: #f7f5f0}html,body,#root{margin:0;min-height:100%;background-color:var(--page-bg)}#root{min-height:100vh}canvas{display:block;background-color:var(--page-bg)}
