@import url("https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,300..700;1,7..72,300..700&family=IBM+Plex+Mono:ital,wght@0,400;0,500;1,400&display=swap");

:root {
  --paper:#e2e8e4; --page:#f7f8f5; --ink:#222; --ink-soft:rgba(34,34,34,.68); --ink-faint:rgba(34,34,34,.44);
  --brand:#006c84; --brand-deep:#00566a; --tide:#6eb5c0; --pencil:#ffccbb; --rule:rgba(34,34,34,.16); --rule-strong:rgba(34,34,34,.34);
  --font-serif:"Literata","Iowan Old Style",Georgia,serif; --font-mono:"IBM Plex Mono","SF Mono",Consolas,monospace;
  --display:clamp(3rem,7vw,5.25rem); --h1:3rem; --lede:1.375rem; --label:.75rem;
  --margin:clamp(24px,6vw,96px); --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px;
  --paper-shadow:0 1px 2px rgba(34,34,34,.06),0 4px 14px rgba(34,34,34,.05); --lifted-shadow:0 2px 4px rgba(34,34,34,.08),0 12px 32px rgba(34,34,34,.09);
  --atmosphere:radial-gradient(120% 90% at 15% 0%,rgba(247,248,245,.9),rgba(247,248,245,0) 55%),radial-gradient(90% 70% at 100% 100%,rgba(110,181,192,.12),rgba(110,181,192,0) 60%),#e2e8e4;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--atmosphere); background-attachment:fixed; font:19px/1.65 var(--font-serif); }
a { color:var(--brand); text-decoration-color:rgba(0,108,132,.35); text-decoration-thickness:1px; text-underline-offset:3px; transition:color .3s,text-decoration-color .3s; }
a:hover { color:var(--brand-deep); text-decoration-color:var(--brand-deep); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--tide); outline-offset:2px; }
button { font:inherit; }
::selection { background:var(--pencil); color:var(--ink); }
.view { animation:reveal .8s cubic-bezier(.33,0,.2,1) both; }
@keyframes reveal { from { opacity:0; transform:translateY(10px) } to { opacity:1; transform:none } }
.masthead { display:flex; justify-content:space-between; gap:20px; align-items:baseline; padding:22px var(--margin); border-bottom:2px solid var(--rule-strong); }
.mono,.eyebrow,.stamp,.rule-label { font:500 var(--label)/1.4 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; }
.muted { color:var(--ink-soft); }.faint { color:var(--ink-faint); }
.masthead .mono:last-child { text-transform:none; letter-spacing:0; font-weight:400; }
.hero { position:relative; padding:var(--s9) var(--margin) var(--s8); background-image:repeating-linear-gradient(90deg,rgba(110,181,192,.09) 0 1px,transparent 1px 84px); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:var(--s8); align-items:start; max-width:1300px; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-weight:400; letter-spacing:-.015em; line-height:1.02; }
.display { font-size:var(--display); margin:0; }.mark { background:linear-gradient(transparent 58%,var(--pencil) 58%,var(--pencil) 92%,transparent 92%); padding:0 4px; }
.lede { max-width:42ch; margin:32px 0 0; color:var(--ink-soft); font-size:var(--lede); line-height:1.45; }
.hero-service { max-width:52ch; color:var(--ink); }
.hero-note { max-width:58ch; margin:20px 0 0; color:var(--ink-soft); font-size:17px; line-height:1.55; }
.button-row { display:flex; gap:16px; align-items:center; margin-top:40px; flex-wrap:wrap; }.micro { color:var(--ink-faint); font:12px var(--font-mono); }
.reading-link { color:var(--ink-faint); font:12px var(--font-mono); text-decoration:none; }
.button { display:inline-flex; align-items:center; gap:10px; border:1px solid transparent; border-radius:2px; padding:12px 22px; color:var(--page); background:var(--brand); text-decoration:none; font:500 13px/1 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; transition:background .2s,color .2s,border-color .2s; cursor:pointer; }.button:hover { color:var(--page); background:var(--brand-deep); }.button.quiet { border-color:var(--rule-strong); color:var(--ink); background:transparent; }.button.quiet:hover { color:var(--ink); background:var(--page); }.button.ghost { color:var(--brand); background:transparent; padding:12px 4px; }.button.ghost:hover { color:var(--brand-deep); background:transparent; }
.portrait,.cover,.cert,.cert figure { margin:0; }.plate { padding:12px; border:1px solid var(--rule); border-radius:2px; background:var(--page); box-shadow:var(--paper-shadow); }.portrait { transform:rotate(.6deg); }.portrait img,.cover img,.cert img { display:block; width:100%; height:auto; border:1px solid var(--rule); filter:saturate(.82) contrast(.98); }.caption { display:flex; justify-content:space-between; gap:10px; padding:10px 4px 2px; color:var(--ink-faint); font:11px var(--font-mono); letter-spacing:.1em; }
.field-note { max-width:340px; padding:18px 22px 20px; border:1px solid var(--rule); border-radius:2px; background:var(--page); box-shadow:var(--paper-shadow); transform:rotate(-.5deg); }.field-note .stamp { display:inline-block; padding:3px 9px; border-radius:2px; background:var(--pencil); color:var(--ink); font-size:11px; }.field-note p { margin:12px 0 0; color:var(--ink); font-size:17px; line-height:1.5; font-style:italic; }
.toc { padding:var(--s7) var(--margin); border-top:1px solid var(--rule); }.toc h2 { margin:0 0 20px; font-size:32px; }.toc-list { max-width:760px; }.toc-link { display:flex; align-items:baseline; gap:18px; padding:16px 4px; border-top:1px solid var(--rule); color:var(--ink); text-decoration:none; }.toc-link:hover { color:var(--brand-deep); }.toc-num { min-width:34px; color:var(--ink-faint); font:500 12px var(--font-mono); letter-spacing:.1em; }.toc-title { font-size:22px; line-height:1.2; letter-spacing:-.01em; }.toc-line { flex:1; transform:translateY(-4px); border-bottom:1px dotted var(--rule-strong); }.toc-note { color:var(--ink-faint); white-space:nowrap; font:12px var(--font-mono); }
.chapter { padding:var(--s8) var(--margin); border-top:1px solid var(--rule); }.chapter.alt,.paper-section { background:var(--page); }.chapter-head { display:grid; grid-template-columns:140px minmax(0,52ch); gap:var(--s6); }.chapter-head h2 { margin:0; font-size:48px; }.chapter-head .lede { margin:14px 0 0; }.chapter-content { margin-top:var(--s7); }.two-col { display:grid; grid-template-columns:minmax(0,58ch) minmax(260px,1fr); gap:var(--s8); align-items:start; }.prose p { max-width:62ch; }.quote { max-width:52ch; margin:28px 0 0; border-left:2px solid var(--brand); padding:4px 0 4px 24px; font-size:23px; line-height:1.5; font-style:italic; }.tag-field { max-width:900px; margin-top:48px; border-top:1px solid var(--rule); padding-top:28px; }.tag-field p { margin:16px 0 0; max-width:900px; color:var(--ink-soft); }.where { max-width:340px; margin-top:24px; padding:18px 20px; border:1px solid var(--rule); border-top:2px solid var(--rule-strong); background:var(--page); box-shadow:var(--paper-shadow); }.where img { display:block; height:26px; margin-top:14px; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:var(--s5); max-width:1100px; }.card { display:block; min-height:250px; padding:22px; border:1px solid var(--rule); border-top:2px solid var(--rule-strong); border-radius:2px; background:var(--page); box-shadow:var(--paper-shadow); color:var(--ink); text-decoration:none; transition:box-shadow .45s cubic-bezier(.33,0,.2,1); }.card:hover { box-shadow:var(--lifted-shadow); color:var(--ink); }.card .stamp { color:var(--ink-faint); font-size:11px; }.card h3 { margin:22px 0 12px; font-size:25px; line-height:1.15; }.card p { margin:0; color:var(--ink-soft); font-size:16px; line-height:1.55; }.card .meta { margin-top:24px; color:var(--brand); font:12px var(--font-mono); }
.pub { padding:var(--s8) var(--margin); background:var(--ink); color:var(--page); }.pub h2 { margin:0; font-size:48px; }.inverse-rule { display:flex; align-items:center; gap:16px; margin-bottom:20px; color:var(--tide); }.inverse-rule::after { content:""; flex:1; border-top:1px solid rgba(247,248,245,.2); }.pub-grid { display:grid; grid-template-columns:minmax(0,52ch) 1fr; gap:var(--s8); margin-top:24px; }.pub .lede { color:rgba(247,248,245,.75); margin:0; }.pub .button { margin-top:32px; }.pub .micro { color:rgba(247,248,245,.45); }.pub-rule { border-left:2px solid var(--tide); padding:10px 18px; background:rgba(247,248,245,.04); margin-bottom:12px; }.pub-rule p { margin:6px 0 0; color:rgba(247,248,245,.85); font-size:17px; font-style:italic; }.music { display:grid; grid-template-columns:minmax(0,560px) 1fr; gap:var(--s8); align-items:start; }.music iframe { display:block; width:100%; height:420px; border:1px solid var(--rule); border-radius:2px; background:var(--page); }
.footer { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; padding:var(--s7) var(--margin); border-top:2px solid var(--rule-strong); }.footer p { margin:0; max-width:48ch; color:var(--ink-soft); font-size:15px; }
.page-header { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:22px var(--margin); border-bottom:2px solid var(--rule-strong); }.back { color:var(--ink); text-decoration:none; }.page-intro { padding:var(--s8) var(--margin) var(--s6); }.page-intro h1 { margin:18px 0 0; font-size:var(--h1); }.intro-grid { display:grid; grid-template-columns:minmax(0,52ch) 1fr; gap:var(--s8); margin-top:24px; align-items:start; }.intro-grid .lede { margin:0; }.rule { display:flex; align-items:center; gap:16px; color:var(--ink-faint); font:500 11px var(--font-mono); letter-spacing:.14em; text-transform:uppercase; }.rule::after { content:""; flex:1; border-top:1px solid var(--rule); }.list-section { padding:var(--s6) var(--margin) var(--s8); border-top:1px solid var(--rule); }.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:var(--s5); max-width:1240px; margin-top:var(--s6); }
.book-grid { display:grid; grid-template-columns:320px 1fr; gap:var(--s8); align-items:start; }.cover { transform:rotate(-.6deg); }.cover .caption { display:block; }.book-copy h1 { max-width:20ch; margin:18px 0 0; font-size:var(--h1); }.book-copy .lede { max-width:54ch; margin:22px 0 0; }.book-list { max-width:54ch; margin:24px 0 0; padding:0; list-style:none; }.book-list li { display:flex; gap:14px; padding:10px 0; border-top:1px solid var(--rule); font-size:17px; }.downloads { padding:var(--s6) var(--margin) var(--s8); border-top:1px solid var(--rule); background:var(--page); }.format-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:var(--s5); max-width:900px; margin-top:var(--s6); }.format { display:block; padding:18px 20px; border:1px solid var(--rule); border-top:2px solid var(--brand); background:var(--page); color:var(--ink); text-decoration:none; box-shadow:var(--paper-shadow); }.format.unready { opacity:.55; border-top-color:var(--rule); cursor:default; }.format-top { display:flex; justify-content:space-between; align-items:baseline; }.format strong { font:700 18px var(--font-mono); letter-spacing:.06em; }.format em { color:var(--brand); font:11px var(--font-mono); letter-spacing:.1em; text-transform:uppercase; font-style:normal; }.format small { display:block; margin-top:8px; color:var(--ink-soft); font-size:14px; }
.article { display:grid; grid-template-columns:minmax(0,62ch) minmax(180px,1fr); gap:var(--s8); padding:var(--s8) var(--margin) var(--s9); }.article h1 { margin:28px 0 0; font-size:var(--h1); }.tags { display:flex; flex-wrap:wrap; gap:12px; }.tag { border:1px solid var(--rule-strong); border-radius:999px; padding:5px 9px; color:var(--ink-faint); font:11px var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }.tag.marktag { border-color:transparent; background:var(--pencil); color:var(--ink); text-transform:none; letter-spacing:0; }.article .lede { margin:24px 0 0; }.article-rule { margin:40px 0; border:0; border-top:1px solid var(--rule); }.pullquote { margin:44px 0; border-left:2px solid var(--brand); padding:8px 0 8px 24px; font-size:28px; line-height:1.35; font-style:italic; }.pullquote small { display:block; margin-top:10px; color:var(--ink-faint); font:11px var(--font-mono); font-style:normal; letter-spacing:.12em; text-transform:uppercase; }.aside { padding-top:120px; }
.jobs { max-width:900px; margin-top:var(--s6); }.job { display:grid; grid-template-columns:140px 1fr; gap:var(--s5); padding:20px 0; border-top:1px solid var(--rule); }.job:first-child { border-top:0; }.job time { color:var(--ink-faint); padding-top:5px; font:12px var(--font-mono); }.job h3 { margin:0; font-size:23px; line-height:1.15; }.job .org { margin-top:6px; color:var(--brand); font:12px var(--font-mono); letter-spacing:.1em; text-transform:uppercase; }.job p { max-width:62ch; margin:10px 0 0; color:var(--ink-soft); font-size:16px; line-height:1.55; }.cert-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:var(--s6); max-width:1240px; margin-top:var(--s6); align-items:start; }.cert { display:block; transform:rotate(var(--tilt,0deg)); color:var(--ink); text-decoration:none; }.cert .plate { transition:box-shadow .45s cubic-bezier(.33,0,.2,1); }.cert:hover .plate { box-shadow:var(--lifted-shadow); }.cert figcaption { padding:10px 4px 2px; }.cert figcaption div { display:flex; justify-content:space-between; gap:12px; color:var(--ink-faint); font:11px var(--font-mono); letter-spacing:.1em; }.cert figcaption p { margin:6px 0 0; color:var(--ink-soft); font-size:15px; }.missing-cert { padding:20px 22px 22px; border:1px solid var(--rule); border-top:2px solid var(--rule-strong); background:var(--page); box-shadow:var(--paper-shadow); }.missing-cert h3 { margin:14px 0 0; font-size:23px; line-height:1.15; }.missing-cert p { margin:8px 0 0; color:var(--ink-soft); font-size:16px; }.missing-cert em { display:block; margin-top:12px; color:var(--ink-soft); font-size:15px; }.missing-cert time { display:block; margin-top:14px; color:var(--ink-faint); font:12px var(--font-mono); }
.service-lines { margin-bottom:28px; border-top:1px solid var(--rule); }
.service-lines p { display:grid; grid-template-columns:44px 1fr; gap:12px; margin:0; padding:14px 0; border-bottom:1px solid var(--rule); }
.service-lines .stamp { padding-top:4px; color:var(--ink-faint); }
.proof-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:48px; border:1px solid var(--rule); background:var(--rule); }
.proof-strip div { min-height:130px; padding:20px; background:var(--page); }
.proof-strip strong { display:block; color:var(--brand); font-size:30px; line-height:1.1; font-weight:500; }
.proof-strip span { display:block; margin-top:10px; color:var(--ink-soft); font-size:14px; line-height:1.45; }
.proof-note { max-width:72ch; margin:20px 0 0; color:var(--ink-soft); font-size:16px; line-height:1.55; }
.consulting-intro { padding-bottom:var(--s8); }
.consulting-intro h1 { max-width:18ch; }
.section-heading { display:grid; grid-template-columns:minmax(240px,420px) minmax(260px,52ch); gap:var(--s8); margin-top:var(--s6); align-items:start; }
.section-heading h2 { margin:0; font-size:40px; }
.section-heading p { margin:5px 0 0; color:var(--ink-soft); }
.audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s6); max-width:1180px; margin-top:var(--s6); }
.audience-grid article { padding:28px; border:1px solid var(--rule); border-top:2px solid var(--rule-strong); background:var(--page); box-shadow:var(--paper-shadow); }
.audience-grid h2 { max-width:18ch; margin:18px 0 0; font-size:30px; line-height:1.15; }
.plain-list { max-width:66ch; margin:22px 0 0; padding:0; list-style:none; }
.plain-list li { position:relative; padding:11px 0 11px 26px; border-top:1px solid var(--rule); color:var(--ink-soft); font-size:16px; line-height:1.5; }
.plain-list li::before { content:"→"; position:absolute; left:0; color:var(--brand); font:13px var(--font-mono); }
.signal-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--s7); max-width:1100px; margin-top:var(--s6); border-top:1px solid var(--rule); }
.signal-list div { display:grid; grid-template-columns:60px 1fr; gap:16px; padding:22px 0; border-bottom:1px solid var(--rule); }
.signal-list p { margin:0; font-size:18px; line-height:1.5; }
.consult-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s5); max-width:1240px; margin-top:var(--s7); }
.consult-card { padding:24px; border:1px solid var(--rule); border-top:2px solid var(--brand); background:var(--page); box-shadow:var(--paper-shadow); }
.consult-card h3 { margin:22px 0 0; font-size:27px; line-height:1.15; }
.consult-card .plain-list { margin-top:22px; }
.process-list { max-width:1000px; margin:var(--s6) 0 0; padding:0; list-style:none; }
.process-list li { display:grid; grid-template-columns:90px 1fr; gap:var(--s6); padding:24px 0; border-top:1px solid var(--rule); }
.process-number { color:var(--brand); font:500 25px/1 var(--font-mono); }
.process-list h3 { margin:0; font-size:25px; }
.process-list p { max-width:58ch; margin:8px 0 0; color:var(--ink-soft); font-size:16px; }
.principle { margin-top:var(--s7); }
.experience-section { border-color:rgba(247,248,245,.2); background:var(--ink); color:var(--page); }
.experience-section .rule { color:var(--tide); }
.experience-section .rule::after { border-color:rgba(247,248,245,.2); }
.inverse-heading p { color:rgba(247,248,245,.65); }
.metric-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; max-width:1180px; margin-top:var(--s7); background:rgba(247,248,245,.18); border:1px solid rgba(247,248,245,.18); }
.metric-grid div { min-height:176px; padding:26px; background:var(--ink); }
.metric-grid strong { display:block; color:var(--tide); font-size:34px; line-height:1.16; font-weight:400; }
.metric-grid span { display:block; max-width:24ch; margin-top:12px; color:rgba(247,248,245,.68); font-size:15px; line-height:1.45; }
.project-list { max-width:1080px; margin-top:var(--s7); }
.project-list article { display:grid; grid-template-columns:190px 240px 1fr; gap:var(--s6); padding:26px 0; border-top:1px solid var(--rule); align-items:start; }
.project-list h3 { margin:0; font-size:25px; }
.project-list p { margin:0; color:var(--ink-soft); font-size:16px; line-height:1.55; }
.boundary-note { max-width:66ch; margin:24px 0 0; color:var(--ink-soft); font-style:italic; }
.why-grid { display:grid; grid-template-columns:minmax(0,700px) minmax(240px,340px); gap:var(--s9); margin-top:var(--s6); align-items:start; }
.why-grid .section-heading { display:block; margin:0; }
.why-grid .section-heading p { margin-top:14px; }
.profile-links { display:flex; flex-direction:column; gap:14px; padding:24px; border:1px solid var(--rule); border-top:2px solid var(--rule-strong); background:var(--page); box-shadow:var(--paper-shadow); }
.profile-links a { font-size:17px; }
.profile-section .related-links { margin-top:var(--s6); }
.consulting-close { padding:var(--s8) var(--margin); border-top:2px solid var(--rule-strong); background:var(--page); }
.consulting-close h2 { max-width:18ch; margin:14px 0 0; font-size:48px; }
.consulting-close .lede { margin-top:20px; }
.consulting-close .button { margin-top:28px; }
.related-links { display:flex; gap:18px; align-items:baseline; flex-wrap:wrap; margin-top:var(--s7); }
.related-links a { font:13px var(--font-mono); }
@media (max-width:960px) { .proof-strip,.consult-grid,.metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.consulting-intro .intro-grid { grid-template-columns:1fr; }.consulting-intro .field-note { max-width:420px; }.project-list article { grid-template-columns:150px 210px 1fr; gap:var(--s5); }.why-grid { gap:var(--s7); } }
@media (max-width:760px) { body { font-size:18px; }.masthead,.page-header { align-items:flex-start; flex-direction:column; }.hero-grid,.chapter-head,.two-col,.pub-grid,.music,.intro-grid,.book-grid,.article,.audience-grid,.section-heading,.why-grid { grid-template-columns:1fr; gap:var(--s6); }.hero { padding-top:var(--s8); }.hero-note { font-size:16px; }.portrait { max-width:320px; }.toc-link { display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:14px; row-gap:5px; align-items:start; }.toc-title { min-width:0; }.toc-line { display:none; }.toc-note { grid-column:2; white-space:normal; line-height:1.45; }.chapter-head { gap:12px; }.chapter-head h2,.pub h2,.consulting-close h2 { font-size:40px; }.consulting-intro h1 { font-size:32px; }.field-note { max-width:none; }.article { padding-top:var(--s7); }.aside { padding-top:0; }.job { grid-template-columns:1fr; gap:6px; }.cert-grid { grid-template-columns:1fr; }.cover { max-width:320px; }.footer { align-items:flex-start; }.proof-strip,.consult-grid,.metric-grid,.signal-list { grid-template-columns:1fr; }.proof-strip div { min-height:0; }.consult-card { padding:22px; }.process-list li { grid-template-columns:52px 1fr; gap:16px; }.project-list article { grid-template-columns:1fr; gap:8px; }.project-list h3 { margin:5px 0; }.metric-grid div { min-height:0; }.related-links { align-items:flex-start; flex-direction:column; }.related-links .micro { margin-bottom:2px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
