:root{
  --ink:#1b1b19;
  --muted:#6d6b64;
  --soft:#46443f;
  --link:#33518a;
  --link-hover:#203663;
  --bg:#fcfcfa;
  --rule:#e7e6e0;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Iowan Old Style","Palatino Linotype",Palatino,Charter,Georgia,Cambria,"Times New Roman",serif;
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.page{max-width:42rem;margin:0 auto;padding:2.2rem 1.6rem 6rem}

a{color:var(--link);text-decoration:underline;text-decoration-thickness:.6px;text-underline-offset:2.5px}
a:hover{color:var(--link-hover)}
::selection{background:#ece8da}

h1{font-weight:600;font-size:1.72rem;line-height:1.2;letter-spacing:-.014em;margin:0 0 .5rem}
.sub{color:var(--muted);font-size:1.02rem;line-height:1.5;margin:0 0 2.2rem;max-width:30rem}
.meta{color:var(--muted);font-size:.92rem;margin:0 0 2.6rem}
.lede{margin:0 0 3rem;max-width:32rem;line-height:1.6}
.intro{margin:0 0 1.1rem;max-width:36rem;line-height:1.6}

/* home: E30 hover reveal */
.shot{
  position:relative;color:var(--link);cursor:help;
  text-decoration:underline;text-decoration-style:dotted;
  text-decoration-thickness:.6px;text-underline-offset:2.5px;outline:none;
}
.shot:hover,.shot:focus-visible{color:var(--link-hover)}
.shot-pop{
  position:absolute;left:50%;bottom:calc(100% + 10px);z-index:20;
  width:min(17rem,68vw);height:auto;border-radius:6px;
  box-shadow:0 10px 30px rgba(20,22,20,.22);background:var(--bg);
  opacity:0;visibility:hidden;
  transform:translate(-50%,8px) scale(.97);transform-origin:center bottom;
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
  pointer-events:none;
}
.shot:hover .shot-pop,.shot:focus .shot-pop{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}

p{margin:0 0 1.3rem}
article p:first-of-type{margin-top:0}
em{font-style:italic}
strong{font-weight:600}

/* masthead (essay pages) */
.mast{font-size:.92rem;margin:0 0 1.8rem}
.mast a{color:var(--muted);text-decoration:none}
.mast a:hover{color:var(--ink)}
.mast.right{text-align:right;max-width:36rem;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:.85rem;letter-spacing:.01em}
.mast.right a{color:var(--soft);margin-left:1.6rem}
.mast.right a:hover{color:var(--link)}

/* home: section labels + lists */
.section-label{
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  margin:0 0 .9rem;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.list{list-style:none;margin:0 0 2.2rem;padding:0}
.list li{margin:0 0 .55rem;line-height:1.45}
.list .when{color:var(--muted);font-size:.82rem;margin-left:.55rem}
.sep{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--soft);font-weight:700;font-size:1.15em;margin:0 .16em}
.desc{display:block;font-size:.88rem;line-height:1.5;color:var(--soft);margin-top:.2rem;max-width:36rem}
.list.inline li{display:inline;margin:0}
.list.inline li:not(:last-child)::after{content:"·";color:var(--muted);margin:0 .7rem}

/* home: timeline — small, light dash list, subordinate to the title */
.timeline li{
  position:relative;padding-left:1.2rem;
  font-size:.88rem;line-height:1.55;color:var(--soft);
  margin:0 0 .55rem;
}
.timeline li::before{content:"\2013";position:absolute;left:0;color:var(--muted)}

/* home: "more about me" disclosure */
.more{margin:0 0 2.6rem}
.more > summary{
  list-style:none;cursor:pointer;display:inline-block;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:.82rem;color:var(--link);
}
.more > summary::-webkit-details-marker{display:none}
.more > summary::before{content:"+ ";color:var(--muted)}
.more[open] > summary::before{content:"\2013 ";color:var(--muted)}
.more > summary:hover{color:var(--link-hover)}
.more[open] > summary{margin-bottom:1rem}
.more .timeline{margin-bottom:0}

/* home: story link */
.story{margin:2.4rem 0 0;font-size:.95rem}

/* resume: selected-work list (evidence-first) */
.work{list-style:none;padding:0;margin:0 0 2.6rem}
.work li{margin:0 0 1.2rem;line-height:1.4}
.work strong{font-size:.92em}
.work .role{
  color:var(--muted);font-size:.8rem;margin-left:.45rem;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.work .role a{color:var(--muted)}
.work .impact{display:block;margin-top:.25rem;color:var(--soft);font-size:.95rem;line-height:1.5;max-width:36rem}
.ph{color:var(--muted);border-bottom:1px dotted #c9c7bf}

/* writing: series group labels */
.grouplabel{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:.78rem;font-weight:600;letter-spacing:.03em;
  color:var(--soft);margin:1.4rem 0 .55rem;
}
.list.tight{margin-bottom:1.2rem}

/* article pages */
article h2{font-size:1.15rem;font-weight:600;line-height:1.3;margin:2.2rem 0 .8rem}
article h3{font-size:1.06rem;font-weight:600;margin:1.8rem 0 .6rem}
pre{background:#f5f3ed;border:1px solid var(--rule);border-radius:6px;padding:.85rem 1rem;overflow-x:auto;font-size:.72rem;line-height:1.55;margin:0 0 1.3rem}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;background:#f5f3ed;padding:.08em .3em;border-radius:4px}
pre code{background:none;padding:0;font-size:1em}
article table{border-collapse:collapse;font-size:.82rem;margin:0 0 1.3rem;display:block;overflow-x:auto}
article th,article td{border:1px solid var(--rule);padding:.4rem .6rem;text-align:left;vertical-align:top}
article th{background:#f5f3ed;font-weight:600}
article ul,article ol{margin:0 0 1.3rem;padding-left:1.3rem}
article li{margin:0 0 .45rem}

.badge{float:right;width:42px;height:42px;border-radius:50%;margin:-.2rem 0 .5rem 1rem;opacity:.92}

/* writing: file-system tree */
.tree{list-style:none;margin:0 0 2.8rem;padding:0}
.tree ul{list-style:none;margin:.5rem 0 1.1rem .3rem;padding:0 0 0 1.2rem;border-left:1px solid var(--rule)}
.tree li{margin:0 0 .55rem;line-height:1.5;scroll-margin-top:1.6rem}
.treelabel{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;color:var(--muted)}
.tree .files li{font-size:.9rem;margin:0 0 .45rem}
.tree .desc{margin-top:.15rem}
.tree .draft{color:var(--soft)}
.tree .chapter{font-size:.9rem}
.tree .chapter .desc{font-size:.84rem}
.tree details{margin:0}
.tree summary{list-style:none;cursor:pointer;display:inline-block}
.tree summary::-webkit-details-marker{display:none}
.tree summary.treelabel:hover{color:var(--link)}
.tree details:not([open]) > summary.treelabel::after{content:" +";color:var(--muted)}

@media (max-width:560px){
  body{font-size:17px}
  .page{padding:2.6rem 1.3rem 4rem}
  h1{font-size:1.5rem}
  .sub{margin-bottom:2.2rem}
  .lede{margin-bottom:2.4rem}
  .list{margin-bottom:2.1rem}
  .timeline li{font-size:.86rem;padding-left:1.1rem;margin-bottom:.6rem}
  .story{margin-top:2rem}
}

/* probabilistic/deterministic split diagram */
.split{margin:1rem 0 .5rem;max-width:36rem}
.srow{margin:0 0 .9rem}
.srow:last-child{margin-bottom:0}
.shead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--soft)}
.spct{font-weight:400;letter-spacing:.02em;color:var(--muted)}
.strack{height:5px;background:var(--rule);border-radius:3px;overflow:hidden}
.sfill{height:100%;border-radius:3px}
.sfill.det{background:var(--ink)}
.sfill.prob{background:var(--muted)}
.sdesc{font-size:.85rem;color:var(--soft);line-height:1.5;margin:.4rem 0 0;max-width:34rem}

/* Recruiter-facing refinement: retain the original editorial typography. */
header{margin-bottom:1.8rem}h1{font-size:2.05rem}.sub{font-size:1.18rem;margin-bottom:1.6rem;color:var(--soft)}section{margin-top:2.5rem}section h2:not(.section-label){font-size:1.2rem;margin:0 0 .5rem}.selected{border-top:1px solid var(--rule);padding-top:1.7rem}.selected .work li{border-bottom:1px solid var(--rule);padding-bottom:1.4rem;margin-bottom:1.4rem}.work strong{font-size:1.03rem}.work .role{display:block;margin:.2rem 0 .4rem}.evidence{display:inline-block;font-family:system-ui,sans-serif;font-size:.78rem;margin-top:.6rem}.more-link{font-size:.9rem}footer{border-top:1px solid var(--rule);padding-top:1.3rem;margin-top:3rem;font-size:.9rem}footer .desc{margin-top:.6rem}a:focus-visible,summary:focus-visible{outline:2px solid var(--link);outline-offset:4px}.mast.right{display:flex;justify-content:flex-end;gap:1.3rem;flex-wrap:wrap}.mast.right a{margin-left:0}@media(max-width:560px){h1{font-size:1.8rem}.page{padding-top:1.5rem}.sub{font-size:1.08rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Experience summaries and reading rhythm. */
.experience-page section{margin-top:2.8rem}
.experience-page section+section{border-top:1px solid var(--rule);padding-top:2rem}
.experience-page .meta{margin:0 0 .35rem}
.role-summary{color:var(--muted);font-size:.7rem;line-height:1.5;margin:0 0 1.1rem;max-width:35rem}
.experience-page .timeline li{margin-bottom:.9rem;line-height:1.65}
.experience-page .timeline{margin-bottom:0}

.experience-page .experience-more{margin:1rem 0 0}
.experience-page .experience-more[open]>summary{margin-bottom:1rem}
.experience-page .timeline strong{color:var(--ink);font-weight:600}
