:root{color-scheme:light;--color-canvas:#f2f2ef;--color-surface:#f8f8f5;--color-ink:#181816;--color-ink-secondary:#62645f;--color-rule:#cfd1cb;--color-rule-strong:#a8aca5;--color-accent:#315efb;--color-accent-strong:#2047d8;--color-selection:#dde5ff;--font-sans:Arial, Helvetica, sans-serif;--font-serif:Georgia, "Times New Roman", serif;--shell-max:75rem;--content-max:65rem;--reading-max:42.5rem;--gutter:clamp(1.25rem, 4vw, 3rem);--space-1:.375rem;--space-2:.625rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4.5rem;--space-8:7rem;--step--1:clamp(.75rem, .72rem + .12vw, .8125rem);--step-0:clamp(1rem, .97rem + .14vw, 1.075rem);--step-1:clamp(1.2rem, 1.12rem + .38vw, 1.425rem);--step-2:clamp(1.5rem, 1.34rem + .78vw, 1.95rem);--step-3:clamp(2rem, 1.7rem + 1.5vw, 2.875rem);--step-4:clamp(2.75rem, 2.1rem + 3.2vw, 4.625rem);--focus-width:2px;--transition-fast:.14s;--transition-standard:.17s}*,:before,:after{box-sizing:border-box;border-radius:0}html{background:var(--color-canvas);min-width:20rem;color:var(--color-ink);font-family:var(--font-sans);text-size-adjust:100%;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-size:100%;line-height:1.5}body{background:var(--color-canvas);min-width:20rem;min-height:100dvh;color:var(--color-ink);font-size:var(--step-0);margin:0;overflow-x:clip}body,h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0}img,picture{max-width:100%;display:block}img{height:auto}button,input,textarea,select{color:inherit;font:inherit;border-radius:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration-color:var(--color-rule-strong);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--color-accent-strong);text-decoration-color:currentColor}:where(a,button,input,textarea,select,summary):focus-visible{outline:var(--focus-width) solid var(--color-accent);outline-offset:4px}::selection{background:var(--color-selection);color:var(--color-ink)}h1,h2,h3{text-wrap:balance;font-weight:400}h1{font-family:var(--font-serif);font-size:var(--step-4);letter-spacing:-.045em;line-height:.98}h2{font-size:var(--step-2);letter-spacing:-.025em;line-height:1.08}h3{font-size:var(--step-1);letter-spacing:-.015em;line-height:1.2}p{max-width:68ch}strong{font-weight:700}hr{border:0;border-block-start:1px solid var(--color-rule);width:100%;margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;border:2px solid var(--color-ink);background:var(--color-surface);color:var(--color-ink);font-size:var(--step--1);transition:transform var(--transition-fast) ease;padding:.7rem .9rem;font-weight:700;text-decoration:none;position:fixed;inset-block-start:var(--space-3);inset-inline-start:var(--gutter);transform:translateY(calc(-100% - 2rem))}.skip-link:focus{transform:translateY(0)}.shell,.site-header__inner,.site-footer__inner{width:min(100%, var(--shell-max));padding-inline:var(--gutter);margin-inline:auto}.content-width{width:min(100%, var(--content-max));margin-inline:auto}.reading-width{width:min(100%, var(--reading-max))}.serif{font-family:var(--font-serif)}.muted{color:var(--color-ink-secondary)}.site-header{border-block-end:1px solid var(--color-rule)}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-5);min-height:5rem;display:flex}.site-brand{min-height:2.75rem;color:var(--color-ink);font-size:var(--step--1);letter-spacing:.02em;flex:none;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.site-brand:hover{color:var(--color-accent-strong)}.site-nav{min-width:0}.site-nav__list{justify-content:flex-end;align-items:center;gap:clamp(1rem,2.5vw,2rem);list-style:none;display:flex}.site-nav a{min-height:2.75rem;color:var(--color-ink);font-size:var(--step--1);transition:color var(--transition-fast) ease, border-color var(--transition-fast) ease;border-block-end:2px solid #0000;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.site-nav a:hover{border-block-end-color:var(--color-accent);color:var(--color-accent-strong)}.site-nav a[aria-current=page],.site-nav a.is-active{color:var(--color-accent-strong);border-block-end-color:currentColor}.page-shell{width:min(100%, var(--shell-max));min-height:calc(100dvh - 10rem);padding-inline:var(--gutter);margin-inline:auto}.page-shell>:first-child:not(.home-intro){padding-block-start:clamp(var(--space-7), 8vw, var(--space-8))}.page-shell>:last-child{padding-block-end:clamp(5rem,8vw,7.5rem)}.home-intro{align-items:center;gap:clamp(var(--space-6), 9vw, 9rem);min-height:calc(100svh - 5rem);padding-block:var(--space-7);grid-template-columns:minmax(16rem,.85fr) minmax(18rem,1.15fr);display:grid}.home-intro__portrait{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 10px 28px #1818161f);border:0;justify-self:end;width:min(100%,25rem)}.home-intro__copy{align-self:center}.page-shell:has(.interests-page){min-height:auto}.page-shell:has(.interests-page)>:first-child{padding-block-start:var(--space-1)}.page-shell:has(.interests-page)>:last-child{padding-block-end:var(--space-2)}.interests-page{width:100%}.interests-catalog{min-height:37.25rem;margin-inline:calc(-1 * var(--gutter));background:linear-gradient(#0000000f,#0000 30%),repeating-linear-gradient(90deg,#ffffff05 0 1px,#0000 1px 3rem),linear-gradient(165deg,#3d4a3a 0%,#2a3328 45%,#1f261d 100%);padding:1.5rem 1.75rem;position:relative;overflow:hidden}.index-card{color:#1a1814;background:linear-gradient(#ffffff59 0%,#0000 18%),linear-gradient(145deg,#f6ebd0 0%,#ecd9b4 55%,#e2cfa3 100%);border:1px solid #c9b88e;width:11.25rem;min-height:auto;padding:.55rem .75rem 1.25rem;font-family:Courier New,Courier,monospace;font-size:.875rem;line-height:1.45;transition:transform .2s,box-shadow .2s;position:absolute;box-shadow:inset 1px 2px #ffffff59,2px 3px 10px #00000047,4px 8px 18px #0000001f}.index-card:before{content:"";background:#c0392b;height:2px;margin:0 -.65rem .35rem;display:block}.index-card__title{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:#1a1814;margin:0 0 .4rem;font-size:.875rem;font-weight:700;line-height:1.2}.index-card:after{content:"";opacity:.55;background:radial-gradient(circle at .55rem,#2a3328 .34rem,#0000 .35rem),radial-gradient(circle at calc(100% - .55rem),#2a3328 .34rem,#0000 .35rem);height:.55rem;position:absolute;bottom:.55rem;left:.65rem;right:.65rem}.index-card:hover,.index-card:focus-within{z-index:10;box-shadow:inset 1px 2px #fff6,3px 6px 14px #00000052,8px 16px 28px #0000002e;transform:scale(1.05)rotate(0)!important}.index-card__text{color:#1a1814;margin:0;font-size:.875rem}.index-card__text a{color:var(--color-accent-strong);text-underline-offset:.12em;font-weight:700;text-decoration:underline}.index-card__text a:hover,.index-card__text a:focus-visible{color:var(--color-accent)}.inline-links{align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;list-style:none;display:flex}.text-link,.inline-links a{min-height:2.75rem;font-size:var(--step--1);transition:color var(--transition-fast) ease, border-color var(--transition-fast) ease;border-block-end:1px solid;align-items:center;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.text-link:hover,.inline-links a:hover{border-block-end-color:var(--color-accent);color:var(--color-accent-strong)}.social-icon-link,.inline-links .social-icon-link{width:2.75rem;min-height:2.75rem;color:var(--color-ink);border:0;flex:none;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.social-icon-link svg{fill:currentColor;width:1.25rem;height:1.25rem;display:block}a.social-icon-link:hover{color:var(--color-accent-strong);border:0}.social-icon-link--placeholder{color:var(--color-ink-secondary)}.page-intro{gap:clamp(var(--space-5), 7vw, 7rem);border-block-end:1px solid var(--color-rule-strong);grid-template-columns:minmax(12rem,.85fr) minmax(22rem,1.15fr);padding-block-end:clamp(var(--space-7), 8vw, var(--space-8));display:grid}.page-intro--wide .page-intro__title{grid-column:1/-1}.page-intro__dek{max-width:var(--reading-max);color:var(--color-ink-secondary);font-family:var(--font-serif);font-size:var(--step-1);align-self:end;line-height:1.45}.editorial-section{padding-block:clamp(var(--space-7), 8vw, var(--space-8))}.editorial-section+.editorial-section{border-block-start:1px solid var(--color-rule)}.editorial-section__header{max-width:var(--reading-max);gap:var(--space-3);margin-block-end:clamp(var(--space-5), 6vw, var(--space-7));display:grid}.editorial-section__header p{color:var(--color-ink-secondary)}.editorial-grid{gap:var(--space-5);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.editorial-grid__primary{grid-column:1/span 7}.editorial-grid__secondary{grid-column:9/-1}.editorial-list{border-block-start:1px solid var(--color-rule-strong);list-style:none}.editorial-list__item{gap:var(--space-5);padding-block:var(--space-5);border-block-end:1px solid var(--color-rule);grid-template-columns:minmax(8rem,.35fr) minmax(0,1fr);display:grid}.editorial-list__label{color:var(--color-ink-secondary);font-size:var(--step--1);letter-spacing:.02em;font-weight:700}.editorial-list__content{gap:var(--space-2);display:grid}.placeholder,.placeholder-block{gap:var(--space-5);padding:clamp(var(--space-4), 4vw, var(--space-6));border:1px solid var(--color-rule);background:var(--color-surface);grid-template-columns:minmax(10rem,.42fr) minmax(0,1fr);display:grid}.placeholder__heading,.placeholder-block__heading{font-size:var(--step--1);letter-spacing:.02em;font-weight:700}.placeholder__body,.placeholder-block__body{max-width:var(--reading-max);color:var(--color-ink-secondary)}.placeholder-list{border-block-start:1px solid var(--color-rule);list-style:none;display:grid}.placeholder-list>li{padding-block:var(--space-3);border-block-end:1px solid var(--color-rule);color:var(--color-ink-secondary)}.book-jump-links{margin-block-start:var(--space-5)}.book-shelf{padding-block:clamp(var(--space-7), 8vw, var(--space-8));scroll-margin-block-start:var(--space-5)}.book-shelf+.book-shelf{border-block-start:1px solid var(--color-rule-strong)}.book-shelf__header{margin-block-end:var(--space-6)}.book-shelf__list{border-block-start:1px solid var(--color-rule-strong);grid-template-columns:minmax(0,1fr);list-style:none;display:grid}.book-shelf__item{border-block-end:1px solid var(--color-rule);min-width:0}.book-card{align-items:center;gap:clamp(var(--space-4), 4vw, var(--space-6));min-width:0;padding-block:clamp(var(--space-4), 3vw, var(--space-6));grid-template-columns:minmax(12rem,.5fr) minmax(12rem,.65fr) minmax(20rem,1.35fr);display:grid}.book-cover-stage{width:min(100%,12.75rem);min-height:7.5rem;position:relative}.book-cover-stage--grouped .book-cover{position:absolute;inset-block-start:0}.book-cover{aspect-ratio:2/3;border:1px solid var(--color-rule-strong);background:var(--color-surface);width:5rem;transition:border-color .18s,transform .18s;display:block;position:relative;overflow:hidden}.book-cover:first-child{z-index:6;inset-inline-start:0}.book-cover:nth-child(2){z-index:5;inset-inline-start:1.55rem}.book-cover:nth-child(3){z-index:4;inset-inline-start:3.1rem}.book-cover:nth-child(4){z-index:3;inset-inline-start:4.65rem}.book-cover:nth-child(5){z-index:2;inset-inline-start:6.2rem}.book-cover:nth-child(6){z-index:1;inset-inline-start:7.75rem}@media (width>=45rem){.book-cover-stage--spread .book-cover:nth-child(2){inset-inline-start:3.5rem}.book-cover-stage--spread .book-cover:nth-child(3){inset-inline-start:7rem}}.book-cover:hover{z-index:10;border-color:var(--color-accent);transform:translateY(-.25rem)}.book-cover:focus-visible{z-index:10;outline:2px solid var(--color-accent);outline-offset:3px;transform:translateY(-.25rem)}.book-cover img{object-fit:contain;width:100%;height:100%;display:block}.book-card__meta{align-content:start;gap:var(--space-4);display:grid}.book-card__meta-item{gap:var(--space-2);display:grid}.book-card__meta-item+.book-card__meta-item{border-block-start:1px solid var(--color-rule);padding-block-start:var(--space-3)}.book-card__title{overflow-wrap:anywhere;max-width:22ch;font-family:var(--font-serif);font-size:var(--step-1);letter-spacing:-.025em;line-height:1.12}.book-card__author{color:var(--color-ink-secondary);font-size:var(--step--1)}.book-card__note{max-width:65ch;color:var(--color-ink-secondary);font-family:var(--font-serif);text-wrap:pretty;font-size:clamp(.95rem,.92rem + .12vw,1.025rem);line-height:1.5}.portrait,.portrait-placeholder{width:min(100%,30rem)}.portrait{border:1px solid var(--color-rule-strong);height:auto;display:block}.portrait-placeholder{aspect-ratio:4/5;padding:var(--space-4);border:1px solid var(--color-rule-strong);background:var(--color-surface);color:var(--color-ink-secondary);font-size:var(--step--1);place-items:end start;display:grid}.resume-page{--resume-accent:#155eef;--resume-accent-dark:#0b3b91;--resume-accent-wash:#edf4ff;--resume-ink:#101828;--resume-muted:#667085;--resume-type-body:var(--step-0);--resume-type-heading:var(--step-1);--resume-type-display:clamp(2.05rem, 3vw, 3rem);--resume-column-gap:clamp(var(--space-3), 2.5vw, var(--space-5));--resume-case-copy-line-height:1.5;color:var(--resume-ink);font-family:Aptos,Segoe UI Variable,Segoe UI,sans-serif;font-size:var(--resume-type-body)}.resume-hero{gap:clamp(var(--space-5), 5vw, var(--space-7));width:100%;border-block-end:1px solid var(--color-rule-strong);padding-block-end:clamp(var(--space-7), 8vw, var(--space-8));display:grid}.resume-hero__statement{width:100%;max-width:none;color:var(--resume-ink);font-family:inherit;font-size:var(--resume-type-display);letter-spacing:-.052em;text-wrap:pretty;font-weight:450;line-height:1.02}.resume-hero__statement strong{color:var(--resume-accent-dark);font-weight:700}.resume-timeline{padding-block-start:var(--space-7);padding-block-end:var(--space-6)}.resume-education{padding-block:var(--space-6) var(--space-7);border-block-start:1px solid var(--color-rule-strong)}.resume-section-heading{margin-block-end:var(--space-6)}.resume-section-heading h2{font-family:inherit;font-size:var(--resume-type-display);letter-spacing:-.045em;font-weight:650;line-height:1}.resume-role{gap:0 var(--resume-column-gap);padding-block:var(--space-6);border-block-start:1px solid var(--color-rule-strong);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.resume-role__header{gap:0 var(--resume-column-gap);grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;display:grid}.resume-brand{align-items:center;gap:var(--space-4);grid-column:1/span 5;grid-template-columns:4.75rem minmax(0,1fr);min-width:0;display:grid}.resume-role__header .resume-brand{align-items:start}.resume-role__header .resume-brand__copy{padding-block-start:var(--space-3)}.resume-brand__mark{aspect-ratio:1;border:0;border-radius:.5rem;place-items:center;width:4.75rem;height:4.75rem;padding:0;display:grid;overflow:hidden}.resume-brand__logo{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.resume-brand__copy{gap:var(--space-1);min-width:0;display:grid}.resume-brand__copy h3,.resume-education__entry h3{font-family:inherit;font-size:var(--resume-type-heading);letter-spacing:-.025em;font-weight:650;line-height:1.15}.resume-brand__copy p,.resume-position__dates,.resume-education__honors,.resume-education time{color:var(--resume-muted);font-size:var(--resume-type-body)}.resume-role__positions{border-block-start:1px solid var(--color-rule);grid-column:6/-1;display:grid}.resume-position{gap:var(--space-4);padding-block:var(--space-3);border-block-end:1px solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.resume-position__title{font-size:var(--resume-type-body);font-weight:650;line-height:1.3}.resume-position__dates,.resume-education time{font-variant-numeric:tabular-nums;white-space:nowrap}.resume-role__body{width:100%;grid-column:6/-1;margin-block-start:var(--space-5)}.resume-role__body--full{grid-column:1/-1;width:100%}.resume-role__body--full .resume-bullets{width:100%;max-width:none}.resume-role__summary{color:var(--resume-muted);font-size:var(--resume-type-body);line-height:1.45}.resume-role__summary--featured{width:100%;max-width:none;font-size:var(--resume-type-heading);letter-spacing:-.01em;border-inline-start:2px solid #9abcf9;grid-column:1/-1;margin-block-start:clamp(var(--space-4), 3vw, var(--space-5));padding-inline-start:var(--space-4);font-weight:500}.resume-bullets{gap:var(--space-4);font-size:var(--resume-type-body);margin-block-start:var(--space-5);list-style:none;display:grid}.resume-bullets>li{color:var(--resume-muted);border-inline-start:2px solid #9abcf9;padding-inline-start:var(--space-4);line-height:1.62}.resume-bullets__children{gap:var(--space-2);margin-block-start:var(--space-2);padding-inline-start:var(--space-5);list-style:outside;display:grid}.resume-bullets__children>li{color:var(--resume-muted);border-inline-start:0;padding-inline-start:var(--space-2);line-height:1.55}.resume-bullets__children>li::marker{color:#7a9ed8}.resume-bullets strong{color:var(--resume-ink);font-weight:650}.resume-selected-engagements{width:100%;grid-column:1/-1;margin-block-start:var(--space-7)}.resume-selected-engagements>h4{font-family:inherit;font-size:var(--resume-type-heading);letter-spacing:-.035em;margin:0;font-weight:650}.resume-selected-engagements p{max-width:none}.resume-cases{gap:var(--space-5);grid-column:1/-1;grid-auto-rows:1fr;margin-block-start:var(--space-5);display:grid}.resume-case{border:1px solid #c9d7ed;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:stretch;display:grid;overflow:hidden}.resume-case__main{grid-area:1/1/-1;grid-template-rows:subgrid;background:#f8faff;min-width:0;display:grid}.resume-case__header{padding-block:clamp(1.2rem,2.4vw,1.6rem);padding-inline:clamp(var(--space-4), 3vw, var(--space-5));grid-row:1}.resume-case__header h4{width:100%;max-width:none;font-family:inherit;font-size:var(--resume-type-heading);letter-spacing:-.035em;margin:0;font-weight:650;line-height:1.12}.resume-case__body{grid-row:2;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);display:grid}.resume-case__body>section{grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.resume-case__label{color:var(--resume-accent-dark);font-size:var(--resume-type-body);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.resume-case__label-block{padding:clamp(var(--space-4), 3vw, var(--space-5)) clamp(var(--space-4), 3vw, var(--space-5)) var(--space-2);border-block-end:1px solid #c9d7ed}.resume-case__copy{min-width:0;padding-block-start:var(--space-3);padding-block-end:clamp(var(--space-4), 3vw, var(--space-5));padding-inline:clamp(var(--space-4), 3vw, var(--space-5))}.resume-case__approach .resume-case__copy{border-inline-start:1px solid #c9d7ed;position:relative}.resume-case__flow-marker{z-index:1;background:var(--resume-accent-dark);color:#fff;border-radius:50%;place-items:center;width:1.45rem;height:1.45rem;padding:0;line-height:0;display:grid;position:absolute;top:0;left:0;translate:-50% -50%}.resume-case__flow-glyph{width:.42rem;height:.62rem;line-height:0;display:block}.resume-case__copy>p,.resume-case__points,.resume-case__impact-label{font-size:var(--resume-type-body);line-height:var(--resume-case-copy-line-height)}.resume-case__copy>p{color:#475467}.resume-case__points{gap:var(--space-2);color:#475467;margin-block-start:0;padding-inline-start:1rem;list-style:outside;display:grid}.resume-case__points li{padding-inline-start:.2rem}.resume-case__points li::marker{color:#7a9ed8}.resume-case__impact{grid-area:1/2/-1;grid-template-rows:subgrid;background:var(--resume-accent-wash);border-inline-start:1px solid #c9d7ed;align-self:stretch;min-width:0;display:grid}.resume-case__impact-content{grid-row:2;grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.resume-case__impact-metrics{gap:var(--space-4);width:100%;margin-block-start:0;display:grid}.resume-case__impact-metric+.resume-case__impact-metric{padding-block-start:var(--space-4)}.resume-case__impact-value{max-width:none;font-family:inherit;font-size:var(--resume-type-display);letter-spacing:-.065em;font-weight:700;color:var(--resume-accent-dark)!important;line-height:.9!important}.resume-case__impact-label{margin-block-start:var(--space-2);color:var(--resume-muted)!important}.resume-case__footnote-marker{vertical-align:super;margin-inline-start:.18em;font-size:.65em;line-height:0}.resume-case__footnote-marker a{color:inherit;text-decoration:none}.resume-case__footnote{width:100%;padding:var(--space-2) clamp(var(--space-4), 3vw, var(--space-5));color:var(--resume-muted);font-size:var(--resume-type-body);grid-row:3;line-height:1.4}.resume-case__footnote p{max-width:none}.resume-case__footnote sup{margin-inline-end:.25rem;font-size:.75em}.resume-case__impact--pending .resume-case__impact-value{font-size:var(--resume-type-display);letter-spacing:-.04em;color:var(--resume-muted)!important}.resume-selected-work{width:100%;grid-column:1/-1;margin-block-start:var(--space-6)}.resume-selected-work>h5,.resume-earlier-experience>h5{font-family:inherit;font-size:var(--resume-type-heading);letter-spacing:-.015em;margin:0;margin-block-end:var(--space-4);font-weight:650}.resume-earlier-experience{width:100%;grid-column:1/-1;margin-block-start:var(--space-6)}.resume-experience-list{gap:0 var(--space-6);border-block-start:1px solid var(--color-rule-strong);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}.resume-experience{padding-block:var(--space-5);border-block-end:1px solid var(--color-rule)}.resume-experience__content{gap:var(--space-2);display:grid}.resume-experience__content h6{color:var(--resume-ink);font-family:inherit;font-size:var(--resume-type-body);margin:0;font-weight:650}.resume-experience__content p{color:var(--resume-muted);font-size:var(--resume-type-body);line-height:1.58}.resume-earlier-roles{grid-column:1/-1}.resume-earlier-roles .resume-role:last-child{padding-block-end:0}.resume-education__list{border-block-start:1px solid var(--color-rule-strong)}.resume-education__entry{gap:var(--space-5);padding-block:var(--space-5);border-block-end:1px solid var(--color-rule);grid-template-columns:minmax(0,5fr) minmax(0,5fr) minmax(4rem,2fr);align-items:center;display:grid}.resume-education__entry .resume-brand{grid-column:auto}.resume-education__details{gap:var(--space-1);display:grid}.resume-education__details>p:first-child{white-space:nowrap;font-weight:650}.resume-education__honors{color:var(--resume-muted);font-weight:500}.resume-education time{justify-self:end}.not-found{align-content:center;gap:var(--space-5);min-height:calc(100svh - 10rem);padding-block:var(--space-7);grid-template-columns:minmax(8rem,.42fr) minmax(0,1fr);display:grid}.not-found__content{gap:var(--space-4);display:grid}.site-footer{border-block-start:1px solid var(--color-rule-strong)}.site-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:5rem;color:var(--color-ink-secondary);font-size:var(--step--1);display:flex}.site-footer a{color:var(--color-ink)}.site-footer .inline-links{align-items:center;gap:var(--space-3)}.site-footer .inline-links .social-icon-link{width:1.25rem;height:1.25rem;min-height:auto}.site-footer__inner>span:last-child{align-items:center;line-height:1;display:flex}@media (width<=63.999rem){:root{--gutter:2rem;--space-8:6rem}.home-intro,.page-intro{gap:var(--space-6)}.book-card{gap:var(--space-5);grid-template-columns:minmax(12rem,.42fr) minmax(10rem,.55fr) minmax(18rem,1.03fr)}.book-cover-stage{width:min(100%,12rem);min-height:6.75rem}.book-cover{width:4.5rem}.book-cover:nth-child(2){inset-inline-start:1.5rem}.book-cover:nth-child(3){inset-inline-start:3rem}.book-cover:nth-child(4){inset-inline-start:4.5rem}.book-cover:nth-child(5){inset-inline-start:6rem}.book-cover:nth-child(6){inset-inline-start:7.5rem}.editorial-grid__primary{grid-column:1/span 8}.editorial-grid__secondary{grid-column:9/-1}}@media (width<=44.999rem){:root{--gutter:1.25rem;--space-7:4rem;--space-8:4.5rem}.site-header__inner{align-items:flex-start;gap:var(--space-3);min-height:4.5rem;padding-block:.75rem}.site-brand,.site-nav a{min-height:2.75rem}.site-nav__list{gap:0 var(--space-3)}.home-intro{align-content:center;gap:var(--space-5);min-height:calc(100svh - 4.5rem);padding-block:var(--space-6);grid-template-columns:minmax(0,1fr)}.home-intro__portrait{justify-self:start;width:min(100%,22rem)}.home-intro__copy h1{max-width:14ch}.page-intro,.editorial-grid,.editorial-list__item,.placeholder,.placeholder-block,.resume-education__entry,.not-found{grid-template-columns:minmax(0,1fr)}.page-intro{gap:var(--space-5)}.editorial-grid__primary,.editorial-grid__secondary{grid-column:1}.editorial-grid__secondary{margin-block-start:var(--space-5)}.editorial-list__item,.resume-experience,.resume-education__entry{gap:var(--space-3)}.resume-role,.resume-role__header{grid-template-columns:minmax(0,1fr)}.resume-brand,.resume-role__positions,.resume-role__body,.resume-cases,.resume-selected-work,.resume-earlier-experience,.resume-earlier-roles{grid-column:1}.resume-role__positions,.resume-role__body{margin-block-start:var(--space-4)}.resume-cases{grid-auto-rows:auto}.resume-position{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.resume-case{grid-template-rows:auto;grid-template-columns:minmax(0,1fr)}.resume-case__main{flex-direction:column;grid-area:auto/1;display:flex}.resume-case__body{grid-template-columns:minmax(0,1fr)}.resume-case__impact{border-block-start:1px solid var(--color-rule);border-inline-start:0;grid-area:auto/1;align-self:auto;min-height:0;display:block}.resume-case__impact-content,.resume-case__footnote{grid-row:auto}.resume-case__body>section+section{border-block-start:1px solid var(--color-rule);border-inline-start:0}.resume-case__approach .resume-case__copy{border-inline-start:0}.resume-case__flow-marker{display:none}.resume-experience-list{grid-template-columns:minmax(0,1fr)}.resume-education time{justify-self:start}.resume-education__details>p:first-child{white-space:normal}.placeholder,.placeholder-block{gap:var(--space-3)}.book-card{align-items:start;gap:var(--space-4);grid-template-columns:minmax(6.5rem,8rem) minmax(0,1fr)}.book-cover-stage{width:min(100%,7.75rem);min-height:6rem}.book-cover{width:4rem}.book-cover-stage--grouped{grid-template-columns:repeat(3,2.5rem);grid-auto-rows:3.75rem;gap:.25rem;min-height:3.75rem;display:grid}.book-cover-stage--grouped:has(.book-cover:nth-child(4)){min-height:7.75rem}.book-cover-stage--grouped .book-cover{width:2.5rem;position:relative;inset-block-start:0;inset-inline-start:0}.book-card__note{max-width:var(--reading-max);grid-column:1/-1;margin-block-start:var(--space-2)}.not-found{align-content:center;min-height:calc(100svh - 9.5rem)}.site-footer__inner{align-items:flex-start;gap:var(--space-3);min-height:auto;padding-block:var(--space-4);flex-direction:column}}@media (width<=25rem){.site-header__inner{display:block}.site-brand{width:max-content;display:flex}.site-nav__list{justify-content:flex-start;gap:0 clamp(.75rem,5vw,1.25rem)}.site-nav a{font-size:.74rem}.home-intro{gap:var(--space-5);min-height:auto}.inline-links{gap-inline:var(--space-3)}.book-card__title{font-size:1.08rem}}.page-shell--miles{--miles-type-label:clamp(.72rem, min(.85vw, 1.5vh), .88rem);--miles-type-body:clamp(1rem, min(1.35vw, 2.4vh), 1.35rem);--miles-type-date:clamp(1.95rem, min(4.2vw, 6.5vh), 4rem);--miles-type-display:clamp(3.25rem, min(6.6vw, 10vh), 7.25rem);--miles-lime:#d8ff43;--miles-chapter-gap:clamp(.9rem, 2.4vh, 1.5rem);width:100%;min-height:auto;margin:0;padding:0}.page-shell.page-shell--miles>.miles-hero{padding:clamp(2.5rem, 5vw, 5rem) max(var(--gutter), calc((100vw - var(--shell-max)) / 2 + var(--gutter))) clamp(1.5rem, 2.5vw, 2.5rem)}.miles-hero{background:var(--color-canvas);border-block-end:1px solid var(--color-rule)}.miles-hero__title{width:100%;font-family:var(--font-serif);font-size:var(--miles-type-display);letter-spacing:-.06em;text-align:left;white-space:nowrap;font-weight:400;line-height:.88}.miles-log{width:100%}.page-shell.page-shell--miles>.miles-log{padding-block-end:0}.miles-gallery{gap:var(--miles-chapter-gap);list-style:none;display:grid}.miles-gallery__item{min-width:0}.miles-entry{--miles-bg:var(--color-canvas);--miles-fg:var(--color-accent);--miles-accent:var(--color-accent);--miles-map-ground:#e5e7e1;--miles-map-filter:grayscale(1) contrast(.82) brightness(1.08);--miles-map-opacity:.72;--miles-route-shadow:#11130f2e;isolation:isolate;height:calc(100svh - var(--miles-chapter-gap));min-height:0;padding:clamp(.8rem, 2.1vh, 1.5rem) max(var(--gutter), calc((100vw - var(--shell-max)) / 2 + var(--gutter)));scroll-snap-align:start;color:var(--miles-fg);background:var(--miles-bg);border-block-end:1px solid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.65rem,1.7vh,1.1rem);display:grid;position:relative;overflow:hidden}.miles-entry--theme-cobalt{--miles-bg:var(--color-accent);--miles-fg:var(--color-canvas);--miles-accent:var(--miles-lime);--miles-map-ground:#2347c9;--miles-map-filter:grayscale(1) invert(1) contrast(.72) brightness(.96);--miles-map-opacity:.34;--miles-route-shadow:#d8ff4347}.miles-entry--theme-ink{--miles-bg:var(--color-ink);--miles-fg:var(--miles-lime);--miles-accent:var(--miles-lime);--miles-map-ground:#242520;--miles-map-filter:grayscale(1) invert(1) contrast(.7) brightness(.92);--miles-map-opacity:.28;--miles-route-shadow:#f3efe438}.miles-entry__date{z-index:3;font-size:var(--miles-type-date);font-variant-numeric:tabular-nums;letter-spacing:-.06em;border-block-end:2px solid;padding-block-end:clamp(.4rem,1vh,.75rem);font-weight:700;line-height:.88;position:relative}.miles-entry__stage{z-index:1;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;min-height:0;display:grid;position:relative}.miles-entry__copy{z-index:2;pointer-events:none;grid-column:1/11;align-self:center}.miles-entry--reverse .miles-entry__copy{text-align:right;grid-column:3/-1}.miles-entry__event{max-width:none;font-size:var(--miles-type-label);letter-spacing:.16em;text-transform:uppercase;margin-block-end:clamp(.45rem,1.2vh,.85rem);font-weight:700;line-height:1.2}.miles-entry__headline{max-width:14ch;font-family:var(--font-serif);font-size:var(--miles-type-display);letter-spacing:-.075em;text-wrap:balance;font-weight:400;line-height:.82}.miles-entry--reverse .miles-entry__headline{margin-inline-start:auto}.miles-entry__map{z-index:1;background:var(--miles-map-ground);width:112%;height:min(43svh,31rem);color:var(--miles-accent);border:2px solid;grid-column:5/-1;margin-inline-start:-7%;position:relative;overflow:hidden;transform:rotate(-4deg)}.miles-entry--reverse .miles-entry__map{grid-column:1/9;width:108%;margin-inline-start:-12%;transform:rotate(5deg)}.miles-entry--tall .miles-entry__map{grid-column:6/12;justify-self:center;width:82%;height:min(49svh,35rem);margin-inline-start:0;transform:rotate(-5deg)scale(1.04)}.miles-entry[data-mile-id=nyc-34-miler] .miles-entry__map{height:min(41svh,30rem)}.miles-route-map,.miles-route-map__visual{width:100%;height:100%;position:relative}.miles-route-map__visual{background:var(--miles-map-ground);overflow:hidden}.miles-route-map__canvas,.miles-route-map__fallback{width:100%;height:100%;display:block;position:absolute;inset:0}.miles-route-map__canvas{z-index:1;background:var(--miles-map-ground)}.miles-route-map__fallback{z-index:2;transition:opacity .32s;overflow:visible}.miles-route-map.is-map-ready .miles-route-map__fallback{opacity:0}.miles-route-map__fallback-halo,.miles-route-map__fallback-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.miles-route-map__fallback-halo{stroke:var(--miles-bg);stroke-width:9px;opacity:.92}.miles-route-map__fallback-route{stroke:currentColor;stroke-width:5.75px;filter:drop-shadow(9px 9px 0 var(--miles-route-shadow))}.miles-route-map__canvas .leaflet-tile-pane{opacity:var(--miles-map-opacity);filter:var(--miles-map-filter)}.miles-route-map__canvas .leaflet-control-container{display:none}.miles-route-map__canvas.leaflet-container{background:var(--miles-map-ground);cursor:default;font-family:var(--font-sans)}.miles-route-map__label,.miles-route-map__attribution{z-index:4;background:var(--miles-bg);color:var(--miles-fg);padding:.38rem .5rem;font-weight:700;line-height:1;position:absolute}.miles-route-map__label{font-size:var(--miles-type-label);letter-spacing:.11em;text-transform:uppercase;inset:.75rem auto auto .75rem}.miles-entry--reverse .miles-route-map__label{inset-inline:auto .75rem}.miles-route-map__attribution{font-size:var(--miles-type-label);letter-spacing:.02em;inset:auto .75rem .75rem auto}.miles-route-map__attribution a{min-height:1.6rem;color:inherit;align-items:center;display:inline-flex}.miles-entry__result{z-index:3;border-block-start:2px solid;grid-template-columns:minmax(0,1.35fr) minmax(17rem,.65fr);align-items:end;gap:clamp(1rem,2.5vw,3rem);padding-block-start:clamp(.5rem,1.1vh,.8rem);display:grid;position:relative}.miles-entry__finish{min-width:0}.miles-entry__finish-label,.miles-entry__stat dt{font-size:var(--miles-type-label);letter-spacing:.16em;text-transform:uppercase;margin-block-end:.4rem;font-weight:700;line-height:1.1;display:block}.miles-entry__finish-value{font-family:var(--font-serif);font-size:var(--miles-type-display);font-variant-numeric:tabular-nums;letter-spacing:-.085em;white-space:nowrap;margin-inline-start:-.055em;font-weight:400;line-height:.67;display:block}.miles-entry__result-meta{gap:clamp(.65rem,1.3vh,1rem);display:grid}.miles-entry__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.miles-entry__stats--two{grid-template-columns:repeat(2,minmax(0,1fr))}.miles-entry__stat{border-inline-start:1px solid;min-width:0;padding-inline:.8rem}.miles-entry__stat:first-child{border-inline-start:0;padding-inline-start:0}.miles-entry__stat dd{font-family:var(--font-serif);font-size:var(--miles-type-body);font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap;margin:0;line-height:1}.miles-entry__strava-link{width:max-content;max-width:100%;font-size:var(--miles-type-body);text-underline-offset:.35em;justify-self:start;padding-block-end:.25rem;font-weight:700;text-decoration-thickness:1px}.miles-entry__strava-link:hover,.miles-entry__strava-link:focus-visible{text-decoration-thickness:3px}.miles-entry__strava-link:focus-visible{outline-offset:6px;outline:3px solid}.miles-entry__unavailable{font-size:var(--miles-type-body);font-weight:700}.miles-js .miles-reveal{opacity:0;transform:translateY(1.875rem)}.miles-js .miles-entry.is-visible .miles-reveal{opacity:1;transition:opacity .7s,transform .8s cubic-bezier(.2,.75,.2,1);transform:translateY(0)}.miles-js .miles-entry.is-visible .miles-entry__copy{transition-delay:.1s}.miles-js .miles-entry.is-visible .miles-entry__result{transition-delay:.24s}@media (width<=47.5rem){.page-shell.page-shell--miles>.miles-hero{padding-block:2.5rem 1.25rem}.miles-hero__title{max-width:100%;font-size:var(--miles-type-date);letter-spacing:-.085em}.miles-entry{height:calc(100svh - var(--miles-chapter-gap));min-height:0;padding:clamp(.65rem, 1.5vh, .9rem) var(--gutter);grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.45rem,1.2vh,.7rem)}.miles-entry__date{line-height:.86}.miles-entry__stage{flex-direction:column;justify-content:center;align-items:stretch;gap:.35rem;display:flex}.miles-entry__copy,.miles-entry--reverse .miles-entry__copy{text-align:left}.miles-entry__headline,.miles-entry--reverse .miles-entry__headline{width:100%;max-width:none;font-size:var(--miles-type-date);margin:0}.miles-entry__map,.miles-entry--reverse .miles-entry__map,.miles-entry--tall .miles-entry__map,.miles-entry[data-mile-id=nyc-34-miler] .miles-entry__map{width:112%;height:min(25svh,13rem);margin:-.35rem -6% -.65rem;transform:rotate(-4deg)}.miles-entry--reverse .miles-entry__map{inset-block-start:1.25rem}.miles-route-map__fallback-route{stroke-width:5.2px;filter:drop-shadow(6px 6px 0 var(--miles-route-shadow))}.miles-entry__result{grid-template-columns:1fr;gap:.55rem}.miles-entry__finish-value{line-height:.72}.miles-entry__stats{max-width:32rem}}@media (prefers-reduced-motion:reduce){.miles-reveal,.miles-js .miles-reveal,.miles-js .miles-entry.is-visible .miles-reveal{opacity:1;transition:none;transform:none}.miles-route-map__fallback{transition:none}}@media print{.miles-entry{break-after:page;height:100vh;min-height:0}.miles-reveal,.miles-route-map__fallback-route{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}.skip-link{transition:none}}
