*,*::before,*::after{box-sizing:border-box}
html{background:var(--color-canvas);color:var(--color-text);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}

main,.site-foot{display:block;font-size:var(--type-body);line-height:var(--lh-body)}
main:focus{outline:none}

.portal-hero{font-size:initial;line-height:normal}
img,svg,canvas,video,picture{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
:where(h1,h2,h3,h4,h5,h6){margin:0;font-weight:var(--weight-medium)}
:where(p,ul,ol,dl,dd,figure,blockquote){margin:0}
:where(ul,ol)[role="list"]{list-style:none;padding:0}
:where(a){color:inherit}
:where(a,button,summary,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}
:where(.surface-paper,.report--paper) :where(a,button,summary,[tabindex]):focus-visible{outline-color:var(--color-paper-ink)}
[hidden]{display:none!important}
::selection{background:var(--color-portal);color:var(--color-portal-ink)}
.visually-hidden{position:absolute!important;width:var(--hair);height:var(--hair);margin:calc(-1 * var(--hair));padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.wrap{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.wrap--reading{max-width:calc(var(--reading-max) + 2 * var(--gutter))}
.section{position:relative;padding-block:var(--space-section-quiet)}
.section--feature{padding-block:var(--space-section-feature)}
.section--quiet{padding-block:var(--space-section-quiet)}
.section--tight{padding-block:var(--space-section-tight)}
.section--flush-top{padding-top:0}
.section--ruled::before,.divider{content:"";display:block;height:var(--hair);background-image:repeating-linear-gradient(90deg,var(--color-rule-dot) 0 var(--dot-on),transparent var(--dot-on) calc(var(--dot-on) + var(--dot-off)))}
.section--ruled::before{position:absolute;top:0;left:max(var(--gutter),calc((100% - var(--content-max)) / 2));right:max(var(--gutter),calc((100% - var(--content-max)) / 2))}
.divider{border:0;margin:0}

.surface-void{background:var(--color-void)}
.surface-raised{background:var(--color-raised)}
.surface-dusk{background:var(--color-dusk)}
.surface-paper{background:var(--color-paper);color:var(--color-paper-ink)}
:is(.surface-paper,.report--paper) .tone-muted,:is(.surface-paper,.report--paper) .t-caption,:is(.surface-paper,.report--paper) .t-lead{color:var(--color-paper-muted)}
:is(.surface-paper,.report--paper) .tone-faint{color:var(--color-paper-muted)}

.split{display:grid;gap:var(--space-xl) var(--space-3xl);grid-template-columns:minmax(0,1fr)}
.split--center{align-items:center}
.split--end{align-items:end}
.split>*{min-width:0}
@media (min-width:900px){
  .split--5-7{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .split--7-5{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .split--6-6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split--4-8{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
  .split--8-4{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
  .split--ruled{column-gap:calc(2 * var(--space-2xl))}
  .split--ruled>:first-child{position:relative}
  .split--ruled>:first-child::after{content:"";position:absolute;top:0;bottom:0;right:calc(-1 * var(--space-2xl));width:var(--hair);background:var(--color-line)}
}

.with-rail{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2xl)}
.with-rail__main,.with-rail__aside{min-width:0}
@media (min-width:1024px){
  .with-rail{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:var(--space-3xl)}
  .with-rail__aside{position:sticky;top:var(--space-l);align-self:start}
}

.columns{display:grid;gap:var(--space-xl) var(--space-xl);grid-template-columns:minmax(0,1fr)}
.columns__item{padding-top:var(--space-m);border-top:var(--hair) solid var(--color-line);min-width:0}
:is(.surface-paper,.report--paper) .columns__item{border-top-color:var(--color-paper-line)}
@media (min-width:600px){.columns--2,.columns--3,.columns--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.columns--3{grid-template-columns:repeat(3,minmax(0,1fr))}.columns--4{grid-template-columns:repeat(4,minmax(0,1fr))}}

.stack{display:flex;flex-direction:column;gap:var(--space-m)}
.stack--xs{gap:var(--space-xs)}
.stack--s{gap:var(--space-m)}
.stack--m{gap:var(--space-l)}
.stack--l{gap:var(--space-2xl)}
.stack--xl{gap:var(--space-3xl)}
.stack>*{min-width:0}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-m)}
.cluster--tight{gap:var(--space-xs)}
.cluster--between{justify-content:space-between}

.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-l)}
.grid>*{min-width:0}
@media (min-width:600px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid>.span-7,.grid>.span-8,.grid>.span-12{grid-column:1 / -1}
}
@media (min-width:900px){
  .grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .grid>*{grid-column:span 6}
  .span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}
  .span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:1 / -1}
  .grid>.span-3{grid-column:span 3}.grid>.span-4{grid-column:span 4}.grid>.span-5{grid-column:span 5}
  .grid>.span-7{grid-column:span 7}.grid>.span-8{grid-column:span 8}
}

.t-display{font-size:var(--type-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-weight:var(--weight-medium);text-wrap:balance}
.t-headline{font-size:var(--type-headline);line-height:var(--lh-headline);letter-spacing:var(--ls-headline);font-weight:var(--weight-medium);text-wrap:balance}
.t-title{font-size:var(--type-title);line-height:var(--lh-title);letter-spacing:var(--ls-title);font-weight:var(--weight-medium)}
.t-subtitle{font-size:var(--type-subtitle);line-height:var(--lh-subtitle);letter-spacing:var(--ls-subtitle);font-weight:var(--weight-medium)}
.t-lead{font-size:var(--type-lead);line-height:var(--lh-lead);color:var(--color-text-muted);max-width:var(--measure-narrow);text-wrap:pretty}
.t-body{font-size:var(--type-body);line-height:var(--lh-body)}
.t-caption{font-size:var(--type-caption);line-height:var(--lh-caption);color:var(--color-text-muted)}
.t-label{font-size:var(--type-label);line-height:var(--lh-label);font-weight:var(--weight-medium)}
.t-meta{font-family:var(--font-mono);font-size:var(--type-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-variant-numeric:tabular-nums}
.tone-ink{color:var(--color-text)}
.tone-muted{color:var(--color-text-muted)}
.tone-faint{color:var(--color-text-faint)}
.measure{max-width:var(--measure)}

.prose{max-width:var(--measure)}
.prose>*+*{margin-top:var(--space-m)}
.prose>:where(h2)+*,.prose>:where(h3)+*{margin-top:var(--space-s)}
.prose h2{margin-top:var(--space-2xl);font-size:var(--type-title);line-height:var(--lh-title);letter-spacing:var(--ls-title)}
.prose h3{margin-top:var(--space-xl);font-size:var(--type-subtitle);line-height:var(--lh-subtitle)}
.prose p,.prose li{color:var(--color-text-muted);text-wrap:pretty}
.prose strong{color:var(--color-text);font-weight:var(--weight-medium)}
.prose ul,.prose ol{padding-left:var(--space-l)}
.prose li+li{margin-top:var(--space-xs)}
.prose ul{list-style:none;padding-left:0}
.prose ul>li{position:relative;padding-left:var(--space-l)}
.prose ul>li::before{content:"";position:absolute;left:var(--space-2xs);top:.68em;width:var(--step-5);height:var(--step-5);background:currentColor;opacity:.7}
.prose a{padding:var(--space-s);margin:calc(-1 * var(--space-s));color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-line-strong);text-underline-offset:var(--step-4)}
.prose a:hover{text-decoration-color:var(--color-accent-line)}
:is(.surface-paper,.report--paper) .prose p,:is(.surface-paper,.report--paper) .prose li{color:var(--color-paper-muted)}
:is(.surface-paper,.report--paper) .prose strong,:is(.surface-paper,.report--paper) .prose a{color:var(--color-paper-ink)}
:is(.surface-paper,.report--paper) .prose a{text-decoration-color:var(--color-paper-muted)}

@media (max-width:599px){
  main,.site-foot{font-size:var(--type-body-phone)}
  .t-body,.prose{font-size:var(--type-body-phone)}
  .t-lead{font-size:var(--type-body)}
  .t-title{font-size:var(--type-subtitle)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
}
