.ach-hero {
border-bottom: 2px solid var(--fnv-ink);
background-color: var(--fnv-surface);
background-image: var(--fnv-paper);
background-size: var(--fnv-paper-size);
padding: 52px 0 36px;
}
.ach-kicker {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px 12px;
margin-bottom: 14px;
}
.ach-kicker__trk {
display: inline-block;
background: var(--fnv-dark-bg);
color: var(--fnv-acad-accent);
font-size: .8125rem;
font-weight: 800;
padding: 5px 10px;
text-decoration: none;
}
.ach-kicker__trk:hover,
.ach-kicker__trk:focus-visible { color: var(--fnv-dark-text); }
.ach-kicker__lvl {
font-size: .8125rem;
font-weight: 700;
color: var(--fnv-ink-muted);
}
.ach-title {
font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem);
font-weight: 900;
line-height: 1.3;
color: var(--fnv-ink);
margin: 0 0 16px;
}
.ach-meta {
display: flex;
flex-wrap: wrap;
gap: 6px 20px;
list-style: none;
margin: 0;
padding: 0;
font-size: .875rem;
font-weight: 700;
color: var(--fnv-ink-muted);
}
.ach-prog {
max-width: 440px;
margin-top: 18px;
}
.ach-prog__bar {
display: block;
height: 4px;
background: var(--fnv-n-200);
}
.ach-prog__f {
display: block;
height: 100%;
background: var(--fnv-ink);
}
.ach-prog__k {
display: block;
font-size: .8125rem;
color: var(--fnv-ink-muted);
margin-top: 6px;
}
.ach-num {
font-size: clamp(4rem, 7vw, 6.5rem);
font-weight: 900;
line-height: 1;
color: var(--fnv-ink);
font-variant-numeric: tabular-nums;
}
.ach-num__k {
display: inline-block;
font-size: .8125rem;
font-weight: 800;
color: var(--fnv-ink-muted);
border-top: 4px solid var(--fnv-ink);
padding-top: 6px;
margin-top: 10px;
}
.ach-main { padding: 44px 0 56px; }
.ach-col {
border-inline-start: 2px solid var(--fnv-ink);
padding-inline-start: 44px;
}
.ach-body {
--fnv-size-p: 1.125rem;
font-size: 1.125rem;
line-height: 2;
color: var(--fnv-ink);
}
.ach-body p { margin: 0 0 22px; }
.ach-body h2,
.ach-body h3,
.ach-body h4 {
font-weight: 900;
line-height: 1.5;
margin: 36px 0 16px;
}
.ach-body h2 { font-size: 1.5rem; }
.ach-body h3 { font-size: 1.25rem; }
.ach-body h4 { font-size: 1.0625rem; }
.ach-body ul,
.ach-body ol { margin: 0 0 22px; padding-inline-start: 1.4em; }
.ach-body li { margin-bottom: 8px; }
.ach-body strong,
.ach-body b { font-weight: 800; }
.pv3 .ach-body a:not([class]) {
color: var(--fnv-ink);
text-decoration: underline;
text-underline-offset: 4px;
}
.ach-body hr {
border: 0;
border-top: 1px solid var(--fnv-n-300);
margin: 32px 0;
opacity: 1;
}
.ach-body > div {
border-inline-start: 3px solid var(--fnv-ink);
background: var(--fnv-surface-2);
padding: 14px 18px;
margin: 26px 0;
}
.ach-body > div > div:first-child {
font-weight: 800;
margin-bottom: 8px;
}
.ach-body > div > :last-child { margin-bottom: 0; }
.ach-body blockquote {
border-inline-start: 4px solid var(--fnv-ink);
background: var(--fnv-surface-2);
padding: 16px 20px;
margin: 28px 0;
}
.ach-body table {
width: 100%;
border-collapse: collapse;
margin: 20px 0 24px;
font-size: .9375rem;
line-height: 1.7;
}
.ach-body th,
.ach-body td {
border: 1px solid var(--fnv-n-300);
padding: 10px 12px;
text-align: start;
vertical-align: top;
}
.ach-body th {
background: var(--fnv-surface-2);
font-weight: 800;
}
.ach-body img {
max-width: 100%;
height: auto;
border: 1px solid var(--fnv-n-300);
margin: 22px 0;
}
.ach-body.is-gated {
max-height: 420px;
overflow: hidden;
}
.ach-tools {
margin-top: 36px;
border-top: 2px solid var(--fnv-ink);
padding-top: 18px;
}
.ach-tools[hidden] { display: none; }
.ach-tools__h {
font-size: 1.125rem;
font-weight: 900;
margin: 0 0 12px;
}
.ach-tools__l {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 8px;
}
.ach-tools__a {
display: flex;
flex-direction: column;
gap: 4px;
height: 100%;
padding: 14px 16px;
border: 1px solid var(--fnv-n-300);
color: var(--fnv-ink);
text-decoration: none;
transition: border-color .15s ease-out;
}
.ach-tools__a:hover,
.ach-tools__a:focus-visible { border-color: var(--fnv-ink); color: var(--fnv-ink); }
.ach-tools__a b { font-size: .9375rem; font-weight: 800; }
.ach-tools__a span { font-size: .8125rem; line-height: 1.7; color: var(--fnv-ink-muted); }
.ach-start {
margin-top: 40px;
border-top: 1px solid var(--fnv-n-300);
padding-top: 24px;
}
.ach-start[hidden] { display: none; }
.ach-start__ok {
--fnv-size-p: .9375rem;
font-weight: 800;
margin: 0;
}
.ach-nudge {
border: 1px solid var(--fnv-n-300);
border-inline-start: 4px solid var(--fnv-ink);
padding: 12px 14px;
margin-top: 16px;
}
.ach-nudge__k {
--fnv-size-p: .875rem;
font-weight: 800;
margin: 0 0 6px;
}
.ach-nudge__l {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 6px;
font-size: .9375rem;
}
.ach-nudge__l a {
color: var(--fnv-ink);
font-weight: 700;
text-decoration: underline;
text-underline-offset: 4px;
}
.ach-pn {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
margin-top: 48px;
border-top: 2px solid var(--fnv-ink);
padding-top: 20px;
}
.ach-pn__a {
display: flex;
flex-direction: column;
gap: 4px;
padding: 14px 16px;
border: 1px solid var(--fnv-n-300);
color: var(--fnv-ink);
text-decoration: none;
transition: border-color .15s ease-out;
}
.ach-pn__a:hover,
.ach-pn__a:focus-visible { border-color: var(--fnv-ink); color: var(--fnv-ink); }
.ach-pn__a--next {
grid-column: 2;
text-align: end;
}
.ach-pn__k {
font-size: .8125rem;
font-weight: 800;
color: var(--fnv-ink-muted);
}
.ach-pn__t {
font-size: .9375rem;
font-weight: 800;
line-height: 1.6;
}
.ach-side__in {
position: sticky;
top: calc(var(--fnv-header-h, 100px) + 16px);
}
.ach-side__k {
--fnv-size-p: .875rem;
font-weight: 800;
border-bottom: 2px solid var(--fnv-ink);
padding-bottom: 8px;
margin: 0 0 10px;
}
.ach-toc {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.ach-toc__a {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 2px 12px;
align-items: start;
padding: 11px 14px;
border: 1px solid var(--fnv-n-300);
background: var(--fnv-surface);
color: var(--fnv-ink);
text-decoration: none;
transition: border-color .15s ease-out;
}
.ach-toc__a:hover,
.ach-toc__a:focus-visible { border-color: var(--fnv-ink); color: var(--fnv-ink); }
.ach-toc__a.is-on,
.ach-toc__a.is-on:hover {
background: var(--fnv-ink);
border-color: var(--fnv-ink);
color: var(--fnv-surface);
}
.ach-toc__n {
grid-row: span 2;
font-size: .875rem;
font-weight: 900;
font-variant-numeric: tabular-nums;
line-height: 1.7;
}
.ach-toc__t {
font-size: .9375rem;
font-weight: 700;
line-height: 1.6;
}
.ach-toc__m {
display: flex;
flex-wrap: wrap;
gap: 2px 10px;
font-size: .8125rem;
color: var(--fnv-ink-muted);
}
.ach-toc__a.is-on .ach-toc__m { color: var(--fnv-surface); }
.ach-toc__st { font-weight: 800; color: var(--fnv-ink); }
.ach-toc__a.is-on .ach-toc__st { color: var(--fnv-surface); }
.ach-side__more {
display: inline-block;
margin-top: 14px;
font-size: .9375rem;
font-weight: 700;
color: var(--fnv-ink);
text-decoration: underline;
text-underline-offset: 5px;
}
.ach-side__trk {
margin-top: 22px;
background: var(--fnv-dark-bg);
color: var(--fnv-dark-text);
padding: 16px 18px;
}
.ach-side__trk-k {
display: block;
font-size: .8125rem;
font-weight: 800;
color: var(--fnv-acad-accent);
margin-bottom: 4px;
}
.ach-side__trk a {
color: var(--fnv-dark-text);
font-weight: 800;
text-decoration: underline;
text-underline-offset: 5px;
}
.atr-desc {
--fnv-size-p: 1.0625rem;
max-width: var(--fnv-measure);
color: var(--fnv-ink-2);
margin: 0 0 14px;
}
.atr-go {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px 18px;
margin-top: 22px;
}
.atr-go__prog {
--fnv-size-p: .875rem;
font-weight: 700;
color: var(--fnv-ink-muted);
margin: 0;
}
.atr-wrap { max-width: 920px; }
.atr-h {
font-size: 1.25rem;
font-weight: 900;
border-bottom: 2px solid var(--fnv-ink);
padding-bottom: 10px;
margin: 0 0 14px;
}
.atr-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.atr-item {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto auto;
align-items: center;
gap: 6px 18px;
padding: 16px 18px;
border: 1px solid var(--fnv-n-300);
background: var(--fnv-surface);
color: var(--fnv-ink);
text-decoration: none;
transition: border-color .15s ease-out;
}
.atr-item:hover,
.atr-item:focus-visible { border-color: var(--fnv-ink); color: var(--fnv-ink); }
.atr-item__n {
font-size: 1.125rem;
font-weight: 900;
font-variant-numeric: tabular-nums;
color: var(--fnv-ink-muted);
}
.atr-item__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.atr-item__t { font-size: 1.0625rem; font-weight: 800; line-height: 1.6; }
.atr-item__m {
display: flex;
flex-wrap: wrap;
gap: 2px 12px;
font-size: .8125rem;
color: var(--fnv-ink-muted);
}
.atr-item__st {
font-size: .8125rem;
font-weight: 800;
white-space: nowrap;
}
.atr-item.is-done { border-inline-start: 4px solid var(--fnv-ink); }
.atr-item__go { font-weight: 800; }
.atr-next {
display: flex;
flex-wrap: wrap;
gap: 10px 22px;
margin-top: 26px;
}
@media (max-width: 991.98px) {
.ach-col { border-inline-start: 0; padding-inline: 4px; }
.ach-side__in { position: static; }
.ach-main { padding-top: 32px; }
}
@media (max-width: 575.98px) {
.ach-hero { padding: 36px 0 26px; }
.atr-item { grid-template-columns: auto minmax(0, 1fr); }
.atr-item__st { grid-column: 2; }
.atr-item__go { display: none; }
.ach-body { --fnv-size-p: 1.0625rem; font-size: 1.0625rem; }
.ach-body table { display: block; overflow-x: auto; }
.ach-pn { grid-template-columns: minmax(0, 1fr); }
.ach-pn__a--next { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
.ach-pn__a,
.ach-toc__a,
.ach-tools__a,
.atr-item { transition: none; }
}
