/* Local portfolio refinement. House palette, typefaces and mark stay in fc.css. */
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { overflow-wrap:break-word; }
.page { max-width:1160px; }
#topo { opacity:.055; }
img { max-width:100%; height:auto; display:block; }
figure { margin:0; }
a { text-underline-offset:4px; text-decoration-thickness:1px; }
a:hover { text-decoration-color:var(--brick); }
a:focus-visible, summary:focus-visible, audio:focus-visible { outline:3px solid var(--brick); outline-offset:5px; }
.skip-link { position:absolute; z-index:10; top:12px; left:20px; padding:12px 18px; background:var(--ink); color:var(--paper); transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
main:focus { outline:none; }
.mono { font-size:12px; color:var(--slate); letter-spacing:.08em; }
.mono.blue { color:#566471; }
p { margin:0 0 18px; }
h2,h3 { line-height:1.15; text-wrap:balance; }
h2 { font-size:34px; margin:0 0 20px; }
h3 { font-size:25px; margin:0 0 14px; }
header.nav { gap:24px; padding:24px 0; }
nav { gap:22px; }
nav a { font-size:12px; }
nav a[aria-current="page"] { color:var(--ink); border-bottom-color:var(--ink); }
.brand { white-space:nowrap; }
.brand svg { flex:0 0 40px; }
.intro { display:grid; grid-template-columns:1.5fr 1fr; gap:100px; align-items:center; padding:72px 0 64px; }
.eyebrow { margin-bottom:20px; }
.intro h1.d1 { font-size:clamp(44px,5.4vw,68px); line-height:1.04; }
.intro .lede { font-size:22px; max-width:34ch; margin-top:24px; }
.intro-links { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:28px; }
.text-link { display:inline-block; padding:10px 0; min-height:44px; font-size:17px; font-weight:700; }
.text-link span { margin-left:8px; }
.practice-note { border-top:2px solid var(--sage); padding-top:22px; }
.practice-note h2 { font-size:29px; }
.practice-note p:not(.mono) { font-size:18px; color:var(--slate); }
.practice-note .note-end { font-family:var(--m); font-size:12px!important; line-height:1.9; padding-top:20px; margin:24px 0 0; border-top:1px solid var(--rule); }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:18px; border-bottom:1px solid var(--ink); padding-bottom:14px; margin-bottom:30px; }
.section-heading h2 { font-size:28px; margin:0; }
.section-heading p { margin:0; }
.feature-case { display:grid; grid-template-columns:1.22fr 1fr; background:var(--oat); border-top:3px solid var(--sage); }
.feature-copy { padding:42px; align-self:center; }
.feature-copy h3 { font-size:39px; line-height:1.1; }
.feature-copy h3 a { text-decoration:none; }
.feature-copy h3 a:hover { text-decoration:underline; }
.feature-copy h3 em { color:var(--brick); }
.feature-copy p { font-size:18px; }
.feature-copy .mono,.feature-copy .status { font-size:12px; }
.feature-image { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:26px 26px 18px; background:#fff; border:1px solid var(--rule); }
.feature-image img { width:240px; }
figcaption { color:var(--slate); font-size:14px; line-height:1.45; margin-top:14px; }
.feature-image figcaption { text-align:center; }
.status { font-family:var(--m); font-size:12px; line-height:1.7; color:var(--slate); }
.supporting,.writing-feature,.professional-record,.ledger,.sequence-section { margin-top:72px; }
.atlas-feature { display:grid; grid-template-columns:1.05fr 1fr; gap:36px; align-items:start; }
.atlas-feature img { width:100%; border:1px solid var(--rule); }
.atlas-feature h3 { font-size:29px; }
.instrument-list { margin-top:38px; }
.instrument-list article { display:grid; grid-template-columns:1fr 180px; gap:36px; padding:24px 0; border-top:1px solid var(--rule); }
.instrument-list h3 { font-size:23px; margin-bottom:8px; }
.instrument-list p { max-width:66ch; margin-bottom:0; }
.instrument-list .status { text-align:right; padding-top:6px; }
.writing-feature { border-top:2px solid var(--sage); background:var(--oat); padding:36px 42px; }
.writing-feature h2 { font-size:33px; max-width:26ch; }
.writing-feature>p { max-width:65ch; font-size:19px; }
.writing-feature .mono { font-size:12px; }
.writing-feature .intro-links { margin-top:12px; }
.contact-block { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; margin-top:80px; padding:40px 0 8px; border-top:1px solid var(--ink); align-items:center; }
.contact-block h2 { font-size:34px; }
.contact-block p:not(.mono) { max-width:45ch; color:var(--slate); font-size:18px; }
.contact-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-link { display:flex; justify-content:space-between; gap:16px; border:1px solid var(--ink); padding:18px 20px; font-size:19px; text-decoration:none; }
.contact-link:hover { background:var(--ink); color:var(--paper); }
.contact-pending { border:1px dashed var(--slate); font-size:14px; padding:12px; }
footer { margin-top:48px; }
footer .right { font-size:11px; color:var(--slate); letter-spacing:.07em; }
footer .fc { text-decoration:none; }
.review-note { flex-basis:100%; font-family:var(--m); font-size:11px; color:var(--slate); margin:0; }
.breadcrumb { font-family:var(--m); font-size:12px; color:var(--slate); padding-top:30px; }
.breadcrumb span { padding:0 8px; }
.case-intro { padding:42px 0 16px; }
.case-intro h1 { max-width:900px; font-size:58px; }
.case-intro .lede { max-width:64ch; font-size:22px; }
.case-facts { display:grid; grid-template-columns:1fr 1fr 1fr; gap:36px; border-block:1px solid var(--rule); padding:24px 0; margin:36px 0 0; }
.case-facts dt { font-family:var(--m); font-size:11px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; color:var(--slate); }
.case-facts dd { margin:0; font-size:17px; max-width:28ch; }
.case-section { display:grid; grid-template-columns:220px 1fr; gap:40px; margin-top:60px; padding-top:30px; border-top:1px solid var(--rule); }
.case-section>div { max-width:69ch; }
.case-section h2 { font-size:32px; }
.case-section p { font-size:19px; }
.case-section>p.mono { font-size:12px; padding-top:6px; }
blockquote { margin:28px 0 0; padding:8px 0 8px 24px; border-left:2px solid var(--sage); font-style:italic; font-size:25px; line-height:1.35; }
.section-intro { max-width:72ch; font-size:19px; }
.sequence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:28px; }
.sequence-grid figure>a { display:block; background:#fff; border:1px solid var(--rule); padding:12px; }
.sequence-grid img { width:100%; }
.sequence-grid figcaption { margin-top:20px; }
.sequence-grid h3 { font-size:23px; margin:10px 0 12px; color:var(--ink); }
.sequence-grid figcaption p { font-size:17px; }
.evidence-panel { background:var(--oat); border-top:3px solid var(--sage); padding:36px 42px; margin-top:64px; }
.evidence-columns { display:grid; grid-template-columns:1fr 1fr; gap:42px; }
.evidence-columns h3 { font-size:23px; }
.evidence-columns p { font-size:18px; }
.version-note { padding-top:24px; border-top:1px solid #bab3a5; margin:6px 0 0; }
.about-intro { align-items:start; }
.about-intro h1.d1 { font-size:48px; }
.about-intro .lede { max-width:43ch; font-size:21px; }
.professional-record .entry,.independent-record .entry { display:grid; grid-template-columns:100px 1fr 190px; gap:28px; padding:28px 0; border-bottom:1px solid var(--rule); }
.entry .when,.entry .receipt { font-family:var(--m); font-size:12px; line-height:1.8; color:var(--slate); overflow-wrap:anywhere; }
.entry .when small { display:block; font-size:12px; }
.entry h2 { font-size:25px; margin-bottom:12px; }
.entry .taught { padding-left:16px; border-left:2px solid var(--sage); font-style:italic; color:var(--slate); margin-top:16px; }
.entry .state { display:inline-block; margin-top:8px; padding:3px 8px; border:1px solid var(--rule); font-size:11px; text-transform:uppercase; }
.professional-context { max-width:76ch; margin:26px 0 0; font-size:19px; }
.framework-notes { margin-top:38px; border-block:1px solid var(--rule); padding:18px 0; }
.framework-notes summary { cursor:pointer; font-size:20px; padding:10px 0; }
.framework-notes .frameworks { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding-top:20px; }
.framework-notes h3 { font-size:23px; }
.anchor-alias { display:block; }
@media(min-width:821px) and (max-width:1050px) {
  .intro { gap:48px; }
  .feature-copy { padding:30px; }
  header.nav { flex-wrap:wrap; }
}
@media(max-width:820px) {
  .page { padding:0 22px 56px; }
  header.nav { gap:10px; padding:20px 0; }
  nav { gap:22px; }
  .brand { font-size:22px; }
  .intro { grid-template-columns:1fr; gap:36px; padding:42px 0; }
  .intro h1.d1 { font-size:52px; }
  .intro .lede { font-size:21px; max-width:46ch; }
  .practice-note { max-width:60ch; }
  .practice-note h2 { font-size:28px; }
  .section-heading { flex-direction:column; gap:8px; margin-bottom:22px; }
  .feature-case { grid-template-columns:1fr; }
  .feature-copy { padding:30px 26px; }
  .feature-copy h3 { font-size:35px; }
  .feature-image img { width:230px; }
  .atlas-feature { grid-template-columns:1fr; gap:26px; }
  .supporting,.writing-feature,.professional-record,.ledger,.sequence-section { margin-top:52px; }
  .instrument-list article { grid-template-columns:1fr; gap:10px; }
  .instrument-list .status { text-align:left; padding:0; }
  .writing-feature,.evidence-panel { padding:28px 24px; }
  .writing-feature h2 { font-size:30px; }
  .contact-block { grid-template-columns:1fr; gap:18px; margin-top:54px; }
  .contact-block h2 { font-size:31px; }
  .contact-options { max-width:460px; }
  .contact-link { padding:16px; }
  .case-intro { padding-top:32px; }
  .case-intro h1 { font-size:40px; }
  .case-intro h1 br { display:none; }
  .case-intro .lede { font-size:21px; }
  .case-facts { grid-template-columns:1fr; gap:22px; }
  .case-facts dd { max-width:100%; }
  .case-section { grid-template-columns:1fr; gap:8px; margin-top:40px; }
  .case-section h2 { font-size:29px; }
  .sequence-grid { grid-template-columns:1fr; gap:34px; }
  .sequence-grid figure { max-width:440px; margin-inline:auto; }
  .sequence-grid figure>a { padding:16px; }
  .evidence-columns { grid-template-columns:1fr; gap:12px; }
  .about-intro h1.d1 { font-size:39px; }
  .professional-record .entry,.independent-record .entry { grid-template-columns:1fr; gap:12px; }
  .entry .when small { display:inline; margin-left:8px; }
  .entry .receipt { padding-top:6px; }
  .entry .state { margin:0 0 0 6px; }
  .framework-notes .frameworks { grid-template-columns:1fr; }
  footer { align-items:flex-start; }
  footer .right { text-align:left; }
}
@media(max-width:360px) {
  .page { padding-inline:16px; }
  .brand { gap:8px; font-size:20px; }
  nav { gap:16px; }
  .intro h1.d1 { font-size:45px; }
  .feature-copy { padding:24px 20px; }
  .feature-copy h3 { font-size:31px; }
  .contact-options { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  #topo,nav,.skip-link,.review-note { display:none; }
  .page { max-width:none; padding:0; }
  .intro { padding-block:24px; }
  .sequence-grid { grid-template-columns:repeat(3,1fr); }
  .feature-case,.case-section,.entry { break-inside:avoid; }
}
