@font-face{font-family:'Geist Mono';src:url('../fonts/GeistMono-Variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}

:root{
  --landing-sans:'Helvetica','Helvetica Neue',Arial,sans-serif;
  --landing-mono:'Geist Mono',ui-monospace,SFMono-Regular,monospace;
  --landing-ease:cubic-bezier(.16,1,.3,1);
  --landing-paper:var(--mhc-surface-room);
  --landing-panel:color-mix(in srgb,var(--mhc-surface-room) 78%,transparent);
  --landing-panel-strong:color-mix(in srgb,var(--mhc-surface-room) 92%,transparent);
  --landing-ink:var(--mhc-on-paper);
  --landing-muted:var(--mhc-on-paper-3);
  --landing-faint:var(--mhc-on-paper-5);
  --landing-line-soft:color-mix(in srgb,var(--mhc-on-paper) 11%,transparent);
  --hero-progress:0;
  --mesh-morph:0;
  --title-exit:0;
  --chapter-progress:0;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--landing-paper);scrollbar-width:thin;scrollbar-color:var(--landing-faint) var(--landing-paper)}
body{margin:0;overflow-x:clip;background:var(--landing-paper);color:var(--landing-ink);font-family:var(--landing-sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a{font:inherit;color:inherit}
a{text-underline-offset:.18em}
::selection{background:var(--mhc-accent);color:var(--mhc-on-accent)}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.landing-skip{position:fixed;z-index:1000;top:14px;left:14px;padding:12px 16px;border-radius:999px;background:var(--landing-ink);color:var(--landing-paper);font:550 10px/1 var(--landing-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transform:translateY(-180%);transition:transform .28s var(--landing-ease)}
.landing-skip:focus{transform:none;outline:2px solid var(--mhc-accent);outline-offset:3px}

/* The gathered masthead is the archive's own header, drawn by archive-masthead.css on every page, so this sheet keeps only the moment it is raised. */
body.landing-minimized .landing-masthead{opacity:1;visibility:visible;transform:none}

.loom-stage{position:relative;min-height:100svh;background:var(--landing-paper)}
.landing-enhanced .loom-stage{height:340svh;min-height:2100px}
.loom-viewport{position:relative;height:100svh;min-height:620px;overflow:hidden;isolation:isolate}
.landing-enhanced .loom-viewport{position:sticky;top:0}
.loom-field{position:absolute;z-index:0;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.1s .12s ease}
.landing-ready .loom-field{opacity:1}

.landing-hero-copy{position:absolute;z-index:1;left:clamp(32px,5vw,80px);top:50%;width:min(1500px,95vw);perspective:900px;transform-origin:left center;pointer-events:none}
.landing-enhanced .landing-hero-copy{opacity:calc(1 - var(--title-exit));transform:translate3d(0,calc(-50% - var(--title-exit) * 6vh),0) scale(calc(1 - var(--title-exit) * .28));will-change:transform,opacity}
.landing-title-arrival{position:relative;width:max-content;max-width:100%;overflow:visible;opacity:1;transform:none;transform-style:preserve-3d;transform-origin:38% 100%}
.landing-enhanced:not(.landing-ready) .landing-title-arrival{opacity:0}
body.landing-title-landed.landing-ready .landing-title-arrival{opacity:1;transform:none;animation:none}
.landing-title-word-rise{display:inline-block;opacity:1;transform:none;transform-origin:50% 100%;backface-visibility:hidden}
body.landing-title-entering.landing-enhanced:not(.landing-ready) .landing-title-word-rise{opacity:0;transform:translate3d(0,var(--title-word-lift,.44em),0) scaleY(.94)}
body.landing-title-entering.landing-ready .landing-title-word-rise{animation:landing-title-word-rise 680ms cubic-bezier(.16,1,.3,1) calc(40ms + var(--title-word-index) * 52ms) both;will-change:transform,opacity}
body.landing-title-landed.landing-ready .landing-title-word-rise{opacity:1;transform:none;animation:none}
@keyframes landing-title-word-rise{
  0%{opacity:.04;transform:translate3d(0,var(--title-word-lift,.44em),0) scaleY(.94)}
  100%{opacity:1;transform:none}
}
.landing-hero-copy h1{--title-terrain-tilt-x:0deg;--title-terrain-tilt-y:0deg;--title-terrain-roll:0deg;width:max-content;max-width:100%;margin:0;color:var(--landing-ink);font-size:clamp(68px,8vw,132px);font-weight:330;line-height:.82;letter-spacing:-.064em;opacity:1;transform:none;transform-style:preserve-3d;transform-origin:42% 58%}
.landing-enhanced .landing-hero-copy h1{opacity:1;transform:rotateX(var(--title-terrain-tilt-x)) rotateY(var(--title-terrain-tilt-y)) rotateZ(var(--title-terrain-roll));transition:none}
.landing-ready .landing-hero-copy h1{opacity:1;transform:rotateX(var(--title-terrain-tilt-x)) rotateY(var(--title-terrain-tilt-y)) rotateZ(var(--title-terrain-roll));transition:none}
.landing-ready:not(.landing-minimized) .landing-hero-copy h1{will-change:transform}
.landing-title-line{display:block;white-space:nowrap}
.landing-title-line--preface{margin:0 0 .58em .04em;font-size:max(11px,.68em);font-weight:340;line-height:.92;letter-spacing:-.048em}
.landing-title-preface-modifier{font-style:italic;font-weight:350}
.landing-title-line--subject{font-weight:600}
.landing-title-crisis-word{color:var(--mhc-accent-ink)}
.landing-title-word{display:inline-block;transform-style:preserve-3d}
#landing-title{mix-blend-mode:multiply}
html[data-theme="dark"] #landing-title{mix-blend-mode:screen}
body[data-landing-appearance="dark"] #landing-title{mix-blend-mode:screen}
#landing-title .landing-title-word{pointer-events:none;opacity:.94;transform:translate3d(0,0,0);transform-origin:50% 58%;backface-visibility:hidden}
.landing-ready:not(.landing-minimized):not(.landing-title-entering) #landing-title .landing-title-word,#landing-title.is-disturbed .landing-title-word,body.landing-ripple-active:not(.landing-title-entering) #landing-title .landing-title-word{will-change:transform}
@media (hover:hover) and (pointer:fine){.landing-hero-copy h1{pointer-events:auto}}
/* The cover reads in three tiers, the preface and the subject in the display
   voice and, beneath them, the place and span the subject is bounded by.
   Because that last tier is metadata, it takes the archive's mono notation at
   a label step, in the .72 ink that is the floor for small type over a field.
   The line hangs from the title rather than joining its centering, because
   the title's place on the ground is what the terrain, the overture's lamp
   and the travel into the bar are all solved against. Its box is the title's
   own box, turned about the same point by the same terrain tilt, which
   landing-loom.js writes onto both, so that the line lies on the title's
   plane. Within that plane its words stand a quarter of the title's size
   below the box and begin where the subject's ink begins, both written as the
   title's own clamp scaled down. They also ride the ground with the word that
   begins the title's last line, since otherwise the terrain would carry that
   word away from the edge the two of them share. */
.landing-title-scope{position:absolute;inset:0;margin:0;pointer-events:none;transform:none;transform-origin:42% 58%}
.landing-enhanced .landing-title-scope{transform:rotateX(var(--title-terrain-tilt-x,0deg)) rotateY(var(--title-terrain-tilt-y,0deg)) rotateZ(var(--title-terrain-roll,0deg))}
.landing-title-scope{mix-blend-mode:multiply}
html[data-theme="dark"] .landing-title-scope,body[data-landing-appearance="dark"] .landing-title-scope{mix-blend-mode:screen}
.landing-title-scope-text{position:absolute;top:100%;left:clamp(5px,.59vw,9.8px);display:block;margin:clamp(17px,2vw,33px) 0 0 -.06em;color:var(--landing-muted);font:500 clamp(12px,calc(.375vw + 8.8px),15px)/1 var(--landing-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
/* Because the line is the last thing on the cover to arrive and the first to
   leave, it rises on the words' own curve one beat after Crisis and has
   settled just before Crisis lands, so that the entrance still ends once.
   When the reader moves on, it sinks back into the ground within the first
   fifth of the title's exit, which is before the words lift off for the bar,
   so that their flight is the only thing moving at the top of the page. On
   the way back it returns only once they have settled. */
.landing-enhanced .landing-title-scope-text{opacity:clamp(0,calc(1 - var(--title-exit) * 5),1);translate:var(--title-scope-x,0px) calc(var(--title-scope-y,0px) + min(1,var(--title-exit) * 5) * .5em)}
html:not(.overture-done) body.landing-title-entering.landing-ready .landing-title-scope-text{animation:landing-title-scope-rise 620ms cubic-bezier(.16,1,.3,1) calc(40ms + 6 * 52ms) both}
@keyframes landing-title-scope-rise{
  0%{opacity:0;transform:translate3d(0,.7em,0)}
  100%{opacity:1;transform:none}
}
.terrain-readout{position:absolute;z-index:2;left:clamp(22px,3.4vw,50px);bottom:clamp(22px,4vh,44px);display:flex;align-items:center;gap:clamp(14px,2.2vw,32px);margin:0;color:var(--landing-muted);font:520 11px/1.35 var(--landing-mono);letter-spacing:.075em;text-transform:uppercase;opacity:0;pointer-events:none}
.terrain-readout>span:first-child{display:flex;align-items:center;gap:9px;color:var(--landing-ink)}
.terrain-readout>span:first-child::before{width:22px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--mhc-accent),var(--mhc-state),var(--mhc-org),var(--mhc-acad));content:''}
.landing-enhanced .terrain-readout{opacity:calc(1 - var(--mesh-morph));transform:translate3d(0,calc(var(--mesh-morph) * 8px),0);transition:opacity .72s ease,transform .72s var(--landing-ease)}
/* The archive's covers all offer the same way in: one arrow at the foot of the
   field, no plate under it, a halo of page ground separating the glyph from
   whatever the motif is doing behind it. The landing page is a cover as well,
   so it takes the same control, pointed at the one gesture this page already
   answers. It leaves with the readout, on the same ramp, because both belong
   to the terrain rather than to the index the terrain becomes. */
.landing-continue{position:absolute;z-index:2;left:50%;bottom:max(20px,env(safe-area-inset-bottom));display:grid;place-items:center;width:48px;height:48px;transform:translateX(-50%);color:var(--landing-ink);text-decoration:none}
.landing-continue svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px var(--landing-paper)) drop-shadow(0 0 7px var(--landing-paper));transition:transform .25s cubic-bezier(.16,1,.3,1)}
.landing-continue:hover svg{transform:translateY(3px)}
.landing-continue:focus-visible{outline:2px solid var(--mhc-accent);outline-offset:3px;border-radius:50%}
.landing-enhanced .landing-continue{opacity:calc(1 - var(--mesh-morph));transition:opacity .72s ease}
.landing-enhanced.landing-chapters-visible .landing-continue{pointer-events:none;visibility:hidden}
.landing-shared-title{position:fixed;z-index:90;inset:0;overflow:visible;opacity:0;visibility:hidden;pointer-events:none;contain:layout style;mix-blend-mode:multiply}
html[data-theme="dark"] .landing-shared-title,body[data-landing-appearance="dark"] .landing-shared-title{mix-blend-mode:screen}
.landing-shared-title.is-active{opacity:1;visibility:visible}
.landing-shared-title-word{position:absolute;left:0;top:0;display:block;margin:0;color:var(--landing-ink);font-family:var(--landing-sans);font-style:normal;line-height:1;white-space:nowrap;transform-origin:top left}
.landing-shared-title.is-active .landing-shared-title-word{will-change:transform,color,opacity}
body.landing-title-sharing :is(.landing-hero-copy h1,.landing-masthead-title){opacity:0!important;transition:none!important}
body.landing-title-measuring .landing-masthead{transform:none!important;transition:none!important}
body:is(.landing-title-measuring,.landing-title-terrain-measuring) .landing-hero-copy{opacity:1!important;filter:none!important;transform:translate3d(0,-50%,0)!important}
body:is(.landing-title-measuring,.landing-title-terrain-measuring) .landing-title-arrival{opacity:1!important;transform:none!important;animation:none!important}
body:is(.landing-title-measuring,.landing-title-terrain-measuring) .landing-hero-copy h1{opacity:1!important;transform:none!important;transition:none!important}
body:is(.landing-title-measuring,.landing-title-terrain-measuring) #landing-title .landing-title-word{transform:none!important;will-change:auto!important}
body:is(.landing-title-measuring,.landing-title-terrain-measuring) #landing-title .landing-title-word-rise{opacity:1!important;transform:none!important;animation:none!important;will-change:auto!important}

.globe-interface{position:absolute;z-index:3;inset:0;opacity:1;pointer-events:auto}
.landing-enhanced .globe-interface{opacity:var(--chapter-progress);pointer-events:none;will-change:opacity}
.landing-enhanced.landing-chapters-visible .globe-interface{pointer-events:auto}
.globe-chapters{position:absolute;top:50%;right:clamp(28px,5vw,86px);width:min(45vw,650px);transform:translateY(-50%)}
.globe-chapters ol{margin:0;padding:0;list-style:none}
.globe-chapters li{position:relative;margin:0;opacity:var(--item-progress,1);transform:translate3d(calc((1 - var(--item-progress,1)) * 34px),0,0)}
.globe-chapters a{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:clamp(50px,6.5vh,66px);padding:clamp(6px,.8vh,10px) 2px;text-align:center;text-decoration:none;outline:0}
.globe-chapter-copy{display:block;min-width:0}
.globe-chapter-title{display:block;font-size:clamp(24px,3.65vh,40px);font-weight:310;line-height:.94;letter-spacing:-.04em;transition:color .24s ease,text-shadow .32s ease,font-weight .46s var(--landing-ease)}
.globe-chapter-description{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.globe-chapters li:is(:hover,:focus-within,.is-active) .globe-chapter-title{color:var(--chapter-ink,var(--landing-ink));font-weight:820;text-shadow:0 2px 26px color-mix(in srgb,var(--chapter-accent) 30%,transparent)}
.globe-chapters a:focus-visible .globe-chapter-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em}

body:not(.landing-enhanced) .loom-viewport{height:auto;min-height:100svh;overflow:visible}
body:not(.landing-enhanced) .landing-hero-copy{position:relative;left:auto;top:auto;display:flex;align-items:center;min-height:100svh;width:min(1500px,95vw);margin-left:clamp(32px,5vw,80px)}
body:not(.landing-enhanced) .globe-interface{position:relative;min-height:100svh;padding:92px 24px 70px}
body:not(.landing-enhanced) .globe-chapters{position:relative;top:auto;right:auto;width:min(780px,100%);margin-left:auto;transform:none}

@media (max-width:900px){
  .landing-enhanced .loom-stage{height:320svh;min-height:1800px}
  .landing-hero-copy{left:clamp(28px,5vw,44px);width:calc(100% - clamp(56px,10vw,88px))}
  .globe-chapters{top:47%;right:18px;left:18px;width:auto;transform:none}
  .globe-chapters a{min-height:clamp(44px,5.55vh,51px);padding:4px 1px}
  .globe-chapter-title{font-size:clamp(21px,3.25vh,30px)}
}

@media (max-width:700px){
  .loom-viewport{min-height:560px}
  .landing-hero-copy{left:22px;top:49%;width:calc(100% - 44px)}
  .landing-hero-copy h1{font-size:clamp(34px,10.8vw,56px);line-height:.84}
  .landing-title-line--preface{margin-bottom:.5em}
  .terrain-readout{right:18px;left:18px;bottom:18px;gap:12px;font-size:10px}
  .landing-continue{right:4px;left:auto;bottom:8px;transform:none}
  .globe-chapters{top:45%;right:14px;left:14px}
  .globe-chapters a{min-height:44px;padding:3px 1px}
  .globe-chapter-title{font-size:clamp(20px,3.05vh,25px)}
}

@media (max-height:680px) and (max-width:900px){
  .globe-chapters{top:33%}
  .globe-chapters a{min-height:44px}
  .globe-chapter-title{font-size:20px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .landing-ready .landing-hero-copy h1{opacity:1;will-change:auto}
  .landing-enhanced:not(.landing-ready) .landing-title-arrival{opacity:0;transform:none;animation:none;will-change:auto}
  .landing-ready .landing-title-arrival,body.landing-title-entering.landing-ready .landing-title-arrival{opacity:1;transform:none;animation:none;will-change:auto}
  .landing-title-word-rise,body.landing-title-entering.landing-ready .landing-title-word-rise{opacity:1;transform:none;animation:none;will-change:auto}
  #landing-title .landing-title-word{will-change:auto!important}
  .landing-enhanced .landing-hero-copy{filter:none}
  .terrain-readout{transform:none}
  .landing-continue svg{transition:none}
  .globe-chapters li{transform:none}
}
