.article-shell { width: min(100% - 48px, 1080px); }

.note-article { padding: 72px 0 96px; border-bottom: 1px solid var(--ink); }
.article-header { max-width: 820px; margin: 0 auto 64px; padding-bottom: 40px; border-bottom: 1px solid var(--ink); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 48px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; }
.breadcrumbs a { border-bottom: 1px solid transparent; }
.breadcrumbs a:hover,.breadcrumbs a:focus-visible { border-bottom-color: currentColor; }
.article-kicker { margin: 0 0 14px; font: 700 10px var(--mono); letter-spacing: .15em; }
.article-header h1 { max-width: 760px; margin: 0; font-size: clamp(34px,6vw,68px); line-height: 1.13; letter-spacing: -.055em; }
.article-header time { display: block; margin-top: 28px; color: var(--muted); font: 10px var(--mono); letter-spacing: .1em; }
.article-adsense-slot { max-width: 820px; margin-top: -24px; margin-bottom: 64px; }

.article-body { max-width: 720px; margin: 0 auto; font-size: 16px; line-height: 2; }
.article-body h2 { margin: 72px 0 24px; padding: 13px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); font: 700 22px/1.45 var(--sans); letter-spacing: -.025em; }
.article-body h3 { margin: 52px 0 16px; font-size: 18px; line-height: 1.55; }
.article-body h4 { margin: 40px 0 12px; font-size: 16px; }
.article-body p { margin: 0 0 24px; }
.article-body a { text-decoration: underline; text-decoration-color: #8c8f85; text-underline-offset: .2em; }
.article-body a:hover,.article-body a:focus-visible { background: var(--accent); text-decoration-color: var(--ink); }
.article-body ul,.article-body ol { margin: 0 0 28px; padding-left: 1.7em; }
.article-body li { margin: 8px 0; padding-left: .25em; }
.article-body li > ul,.article-body li > ol { margin: 5px 0 10px; }
.article-body blockquote { margin: 36px 0; padding: 22px 26px; border-left: 4px solid var(--ink); background: var(--paper-bright); }
.article-body blockquote p { margin: 0; }
.article-body code { padding: .15em .35em; border: 1px solid var(--line); background: var(--paper-bright); font: .88em var(--mono); }
.affiliate { display: grid; margin: 48px auto; place-items: center; border: 1px dashed #a9aaa3; background: rgba(250,248,243,.7); text-align: center; }
.affiliate > span { width: 100%; padding: 8px 12px; border-bottom: 1px dashed #a9aaa3; color: var(--muted); font: 8px var(--mono); letter-spacing: .12em; text-align: left; }
.affiliate a { display: block; padding: 20px; }
.affiliate img { display: block; max-width: 100%; height: auto; }
.affiliate > img { position: absolute; width: 1px; height: 1px; }

.article-folder-section { scroll-margin-top: 24px; }
.article-folder-section:last-child { border-bottom: 0; }

@media (max-width: 640px) {
  .article-shell { width: min(100% - 28px,1080px); }
  .note-article { padding: 48px 0 70px; }
  .article-header { margin-bottom: 44px; padding-bottom: 30px; }
  .article-adsense-slot { margin-top: -16px; margin-bottom: 44px; }
  .breadcrumbs { margin-bottom: 32px; }
  .article-header h1 { font-size: clamp(31px,11vw,45px); }
  .article-body { font-size: 15px; line-height: 1.9; }
  .article-body h2 { margin-top: 56px; font-size: 20px; }
  .article-body h3 { margin-top: 42px; font-size: 17px; }
  .article-body blockquote { margin-right: -4px; margin-left: -4px; padding: 18px; }
}
