:root {
  color-scheme: light;
  --asc-ground: #EEEEEE;
  --asc-ink: #28221E;
  --asc-copper: #96612D;
  --asc-chartreuse: #D5DFBF;
  --asc-surface: #FFFFFF;
  --asc-display: 'Bricolage Grotesque', 'Trebuchet MS', sans-serif;
  --asc-reading: 'Linden Hill', Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 28px; }
body { margin: 0; background: var(--asc-ground); color: var(--asc-ink); font: 22px/1.5 var(--asc-reading); }
a { color: var(--asc-ink); text-decoration-color: var(--asc-copper); text-decoration-thickness: 1px; text-underline-offset: .19em; }
a:hover { text-decoration-thickness: 3px; }
a:focus-visible { outline: 3px solid var(--asc-ink); outline-offset: 5px; }
p { margin: 0 0 1em; }
h1, h2, h3 { font-family: var(--asc-display); font-weight: 600; text-wrap: balance; }
h1 { margin: 0; font-size: clamp(40px, 3.65vw, 56px); line-height: 1.04; letter-spacing: -.045em; }
h2 { margin: 0; font-size: clamp(28px, 2.5vw, 38px); line-height: 1.12; letter-spacing: -.035em; }
h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.2; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
.asc-skip { position: absolute; z-index: 20; left: 20px; top: -200px; background: var(--asc-surface); padding: 12px 18px; font: 18px var(--asc-display); }
.asc-skip:focus { top: 12px; }
.asc-masthead { height: 92px; padding: 9px 3.6% 10px; background: var(--asc-ground); border-top: 5px solid var(--asc-copper); }
.asc-lift-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 39px 25px; align-items: center; gap: 2px 16px; font: 18px/1.1 var(--asc-display); }
.asc-lift-grid a { display: inline-flex; align-items: center; gap: 9px; color: var(--asc-ink); width: fit-content; text-decoration: none; }
.asc-lift-grid a:hover { text-decoration: underline; text-decoration-color: var(--asc-copper); text-underline-offset: 5px; }
.asc-wordmark { grid-column: 1 / 3; grid-row: 1; font-size: 37px; letter-spacing: -.06em; font-weight: 650; }
.asc-nav-read { grid-column: 3; grid-row: 1; justify-self: end; }
.asc-nav-about { grid-column: 1; grid-row: 2; }
.asc-nav-access { grid-column: 3; grid-row: 2; justify-self: end; }
.asc-icon { display: inline-grid; place-items: center; width: 1em; height: 1em; flex: 0 0 1em; font-size: 22px; line-height: 1; color: var(--asc-copper); vertical-align: -.12em; }
.asc-icon.ph::before { display: none; }
.asc-icon-fallback { width: 100%; height: 100%; }
.asc-icons-ready .asc-icon.ph::before { display: block; }
.asc-icons-ready .asc-icon-fallback { display: none; }
/* The full-bleed photograph continues behind two square, stepped reading ledges. */
.asc-opening { display: grid; grid-template-columns: 46% 8% 46%; grid-template-rows: auto 1fr; min-height: max(780px, calc(100svh - 92px)); padding: 36px 0 72px; position: relative; isolation: isolate; }
.asc-exterior { position: absolute; inset: 0; z-index: -1; background: url('morning-lift-wall.webp') center 46% / cover no-repeat; }
.asc-exterior img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.asc-exterior figcaption { position: absolute; left: 32px; bottom: 28px; width: calc(46% - 64px); padding: 13px 18px; background: var(--asc-ground); border-left: 7px solid var(--asc-copper); box-shadow: 8px 8px 0 var(--asc-copper); font: 16px/1.35 var(--asc-display); }
.asc-head-ledge { grid-column: 3; grid-row: 1; background: var(--asc-copper); color: var(--asc-surface); padding: 42px 44px 24px; clip-path: polygon(0 28px, 36px 28px, 36px 0, 100% 0, 100% 100%, 0 100%); border-right: 12px solid var(--asc-chartreuse); }
.asc-head-ledge h1 { max-width: 17ch; text-wrap: pretty; }
.asc-standfirst { font-size: 22px; line-height: 1.32; margin: 18px 0 0; }
.asc-opening-well { grid-column: 2; grid-row: 1 / 3; position: relative; }
.asc-opening-well::after { content: ''; position: absolute; right: -1px; top: 42%; width: 70%; height: 15px; background: var(--asc-ground); box-shadow: 0 8px 0 var(--asc-copper); }
.asc-invitation { grid-column: 3; grid-row: 2; position: relative; align-self: start; background: var(--asc-ground); padding: 16px 44px 25px; border-right: 12px solid var(--asc-copper); box-shadow: 0 12px 0 var(--asc-copper); }
.asc-stair-anchor { display: flex; flex-direction: column; justify-content: end; position: relative; isolation: isolate; min-height: 104px; padding: 34px 24px 16px; text-decoration: none; color: var(--asc-surface); font: 600 22px/1.15 var(--asc-display); border-radius: 0 6px 6px 6px; transition: transform .18s ease; }
.asc-stair-anchor::before { content: ''; position: absolute; inset: 0; z-index: -1; background: url('stair-invitation.svg') center/100% 100% no-repeat; transition: filter .18s ease; }
.asc-stair-anchor:hover { color: var(--asc-surface); text-decoration: underline; text-underline-offset: 4px; transform: translateY(-2px); }
.asc-stair-anchor:hover::before { filter: brightness(.82); }
.asc-stair-anchor:focus-visible { outline: 3px solid var(--asc-ink); outline-offset: 6px; }
.asc-stair-detail { font-weight: 400; font-size: 17px; margin-top: 5px; }
.asc-invitation p { font: 16px/1.4 var(--asc-display); margin: 12px 0 0; }
.asc-invitation .asc-link-note { padding-top: 10px; border-top: 2px solid var(--asc-copper); }
/* Equal-width slabs: the empty well carries no contents list or progress marks. */
.asc-floor-set { position: relative; display: grid; grid-template-columns: 22% 78%; padding: 100px 3.6% 0 0; }
.asc-empty-well { grid-column: 1; grid-row: 1 / 4; min-width: 0; }
.asc-reading-floor { grid-column: 2; position: relative; display: grid; grid-template-columns: 35% 65%; background: var(--asc-surface); margin: 0 0 76px; padding: 48px 5.8% 30px; border-bottom: 12px solid var(--asc-copper); box-shadow: 12px 12px 0 #D6D3CF; }
.asc-floor-heading { position: sticky; align-self: start; top: 36px; margin: -12px 34px 0 -84px; padding: 24px 24px 28px; background: var(--asc-chartreuse); border-left: 9px solid var(--asc-copper); box-shadow: 8px 8px 0 var(--asc-ground); }
.asc-floor-heading > .asc-icon { font-size: 34px; margin-bottom: 20px; }
.asc-floor-copy { max-width: 44ch; }
.asc-floor-copy a { color: var(--asc-copper); }
.asc-floor-copy p:last-child { margin-bottom: 0; }
.asc-connection { grid-column: 1 / -1; padding: 20px 0 0; margin: 32px 0 0; border-top: 2px solid var(--asc-ground); font-size: 21px; font-style: italic; max-width: 64ch; }
.asc-connection .asc-icon { font-size: 22px; margin-right: 10px; }
.asc-ground-conclusion { width: min(100% - 104px, 1180px); margin: 0 auto 92px; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 36px; border-top: 8px solid var(--asc-copper); padding-top: 32px; }
.asc-ground-conclusion p { max-width: 45ch; margin: 0; }
.asc-ground-conclusion h2 { max-width: 16ch; }
/* The same building ledge in a shorter photographic band for the essays. */
.asc-guide-opening { display: grid; grid-template-columns: 46% 8% 46%; min-height: 410px; position: relative; padding: 32px 0; }
.asc-guide-photo { position: absolute; inset: 0; background: var(--asc-ground); }
.asc-guide-photo img { position: absolute; width: 54%; height: 100%; object-fit: cover; object-position: center; }
.asc-guide-photo figcaption { position: absolute; left: 32px; bottom: 24px; padding: 12px 16px; font: 16px/1.35 var(--asc-display); width: calc(46% - 64px); background: var(--asc-ground); border-left: 7px solid var(--asc-copper); box-shadow: 8px 8px 0 var(--asc-copper); }
.asc-guide-title { grid-column: 3; position: relative; background: var(--asc-copper); color: var(--asc-surface); padding: 38px 44px 32px; align-self: center; border-right: 12px solid var(--asc-chartreuse); box-shadow: 0 12px 0 var(--asc-chartreuse); }
.asc-guide-title::before { content: ''; position: absolute; width: 36px; height: 25px; top: -25px; right: -12px; background: var(--asc-chartreuse); }
.asc-guide-title h1 { font-size: clamp(36px, 3.3vw, 50px); }
.asc-crumb { font: 16px/1.3 var(--asc-display); margin-bottom: 24px; }
.asc-crumb a { color: var(--asc-surface); text-decoration-color: var(--asc-chartreuse); }
.asc-crumb span { margin: 0 9px; color: var(--asc-chartreuse); }
.asc-guide-title a:focus-visible { outline-color: var(--asc-surface); }
.asc-guide-title .asc-standfirst { font-size: 21px; }
.asc-guide-opening.asc-without-photo { min-height: auto; grid-template-columns: 22% 78%; padding-top: 40px; }
.asc-without-photo .asc-guide-title { grid-column: 2; padding: 38px 7%; }
.asc-without-photo .asc-guide-title h1 { max-width: 21ch; }
.asc-without-photo .asc-standfirst { max-width: 50ch; }
.asc-evidence-ledger { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin: 32px 0 0; font: 17px/1.4 var(--asc-display); }
.asc-evidence-ledger div { padding: 22px 18px; border-top: 7px solid var(--asc-copper); background: var(--asc-ground); }
.asc-evidence-ledger dt { font-weight: 600; margin-bottom: 12px; }
.asc-evidence-ledger dd { margin: 0; }
.asc-source-shelf { list-style: none; padding: 0; margin: 26px 0 0; }
.asc-source-shelf li { padding: 0 0 20px; margin: 0 0 22px; border-bottom: 2px solid var(--asc-ground); }
.asc-source-shelf li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.asc-source-shelf a { font: 600 20px/1.25 var(--asc-display); }
.asc-source-shelf p { margin: 8px 0 0; font-size: 21px; }
.asc-footer { border-top: 12px solid var(--asc-copper); padding: 36px 3.6% 28px; font: 16px/1.45 var(--asc-display); }
.asc-footer-inner { display: grid; grid-template-columns: 46% 54%; gap: 0; }
.asc-footer nav { display: flex; flex-wrap: wrap; gap: 12px 24px; align-content: start; padding-right: 30px; }
.asc-footer nav a { color: var(--asc-ink); }
.asc-footer p { max-width: 52ch; margin-bottom: 15px; }
.asc-copyright { margin-top: 18px; }
.asc-lost-opening { padding: 64px max(24px, 8vw) 100px; min-height: 65vh; border-left: 24px solid var(--asc-chartreuse); }
.asc-lost-opening h1 { max-width: 18ch; }
.asc-lost-opening p { max-width: 42ch; margin-top: 25px; }
@media (max-width: 1100px) and (min-width: 701px) {
  .asc-opening { grid-template-columns: 42% 6% 52%; }
  .asc-head-ledge, .asc-invitation { padding-left: 30px; padding-right: 30px; }
  .asc-head-ledge h1 { font-size: 42px; }
  .asc-exterior figcaption { width: calc(42% - 64px); }
  .asc-floor-set { grid-template-columns: 16% 84%; }
  .asc-reading-floor { grid-template-columns: 1fr; }
  .asc-floor-heading { position: static; margin: -14px 0 30px -60px; max-width: 32ch; }
  .asc-floor-copy { max-width: 57ch; }
  .asc-guide-title { padding: 32px; }
}
@media (max-width: 700px) {
  body { font-size: 20px; line-height: 1.48; }
  .asc-masthead { height: 72px; padding: 4px 20px 5px; border-top-width: 4px; }
  .asc-lift-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 31px 25px; gap: 0 4px; font-size: 16px; }
  .asc-lift-grid a { gap: 5px; }
  .asc-wordmark { font-size: 24px; letter-spacing: -.055em; white-space: nowrap; }
  .asc-lift-grid .asc-icon { font-size: 17px; }
  .asc-opening { display: flex; flex-direction: column; min-height: 0; padding: 0; }
  .asc-head-ledge { clip-path: polygon(0 12px, 20px 12px, 20px 0, 100% 0, 100% 100%, 0 100%); padding: 24px 20px 16px; border-right: 0; }
  .asc-head-ledge h1 { max-width: none; font-size: 27px; line-height: 1.08; letter-spacing: -.035em; text-wrap: pretty; }
  .asc-standfirst { font-size: 18px; line-height: 1.32; margin-top: 12px; }
  .asc-invitation { padding: 10px 20px 22px; border: 0; box-shadow: none; width: 100%; }
  .asc-stair-anchor { min-height: 100px; padding: 34px 18px 14px; font-size: 21px; transition: none; }
  .asc-stair-anchor:hover { transform: none; }
  .asc-stair-detail { font-size: 16px; margin-top: 4px; }
  .asc-invitation p { font-size: 16px; line-height: 1.35; margin-top: 11px; }
  .asc-invitation .asc-link-note { padding-top: 9px; }
  .asc-opening-well { display: none; }
  .asc-exterior { position: relative; z-index: auto; width: 100%; height: 340px; border-bottom: 12px solid var(--asc-copper); background: none; }
  .asc-exterior img { width: 100%; height: 100%; object-position: 50% 45%; }
  .asc-exterior figcaption { left: 20px; bottom: 20px; width: calc(100% - 48px); padding: 10px 14px; font-size: 16px; box-shadow: 8px 8px 0 var(--asc-copper); }
  .asc-floor-set { grid-template-columns: 20px minmax(0, 1fr); padding-top: 56px; padding-right: 28px; }
  .asc-reading-floor { grid-template-columns: minmax(0, 1fr); padding: 26px 20px 24px; margin-bottom: 48px; border-bottom-width: 9px; box-shadow: 8px 8px 0 #D6D3CF; }
  .asc-floor-heading { position: static; margin: -5px -4px 26px -20px; padding: 18px 18px 22px; border-left-width: 6px; box-shadow: none; }
  .asc-floor-heading > .asc-icon { font-size: 28px; margin-bottom: 14px; }
  h2 { font-size: 28px; }
  .asc-floor-copy { max-width: none; }
  .asc-connection { font-size: 19px; margin-top: 24px; padding-top: 18px; gap: 10px; }
  .asc-connection .asc-icon { font-size: 19px; }
  .asc-ground-conclusion { width: calc(100% - 40px); display: block; margin: 0 20px 52px; padding-top: 24px; border-top-width: 6px; }
  .asc-ground-conclusion h2 { margin-bottom: 22px; max-width: 20ch; }
  .asc-ground-conclusion p { max-width: none; }
  .asc-guide-opening { display: flex; flex-direction: column; min-height: 0; padding: 0; }
  .asc-guide-title { order: 0; padding: 28px 20px 32px; border: 0; box-shadow: none; width: 100%; }
  .asc-guide-title::before { display: none; }
  .asc-guide-title h1 { font-size: 34px; }
  .asc-guide-title .asc-standfirst { font-size: 20px; }
  .asc-guide-photo { order: 1; position: relative; min-height: 280px; width: 100%; }
  .asc-guide-photo img { width: 100%; height: 100%; }
  .asc-guide-photo figcaption { left: 20px; bottom: 20px; width: calc(100% - 48px); padding: 10px 14px; }
  .asc-crumb { margin-bottom: 20px; }
  .asc-guide-opening.asc-without-photo { display: block; padding: 0; }
  .asc-without-photo .asc-guide-title { padding: 28px 20px 32px; }
  .asc-evidence-ledger { grid-template-columns: 1fr; margin-top: 28px; gap: 16px; }
  .asc-evidence-ledger div { padding: 20px 18px; border-top-width: 5px; }
  .asc-source-shelf a { font-size: 20px; }
  .asc-source-shelf p { font-size: 20px; }
  .asc-footer { padding: 28px 20px 24px; }
  .asc-footer-inner { display: block; }
  .asc-footer nav { margin-bottom: 28px; padding: 0; }
  .asc-footer p { max-width: none; }
  .asc-lost-opening { padding: 34px 20px 70px; border-left-width: 12px; }
  .asc-lost-opening h1 { font-size: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .asc-stair-anchor:hover { transform: none; }
}
