/* Document pages: news and events. The roadmap's type, the homepage's furniture. */
.pg-doc { width: min(1240px, 100% - 2 * var(--pad)); margin: 0 auto; padding-top: clamp(140px, 20vh, 200px); }
.pg-hero { position: relative; padding-bottom: clamp(36px, 6vh, 64px); border-bottom: 1px solid var(--line); margin-bottom: clamp(36px, 6vh, 64px); }
.pg-hero .n { margin-bottom: 26px; }
.pg-hero .n a { color: inherit; }
.pg-title { font-size: clamp(2.6rem, 6.2vw, 6.4rem); line-height: .94; letter-spacing: -.045em; max-width: 16ch; margin-bottom: 30px; }
.pg-lede { max-width: 40rem; }
.pg-stroke { position: absolute; right: -2vw; top: -40px; width: min(30vw, 400px); height: auto; opacity: .92; }
.pg-stroke path { fill: none; stroke: var(--accent); stroke-width: clamp(10px, 1.3vw, 24px); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s var(--expo) .4s; }
html.ready .pg-stroke path { stroke-dashoffset: 0; }
@media (max-width: 1100px) { .pg-stroke { display: none; } }

/* the post body */
.pg-body { max-width: 46rem; }
.pg-body h2 { font-weight: 500; font-size: clamp(1.6rem, 2.6vw, 2.3rem); letter-spacing: -.035em; line-height: 1.05; margin: 2.2em 0 .6em; }
.pg-body h3 { font-weight: 600; font-size: 1.25rem; letter-spacing: -.02em; margin: 1.8em 0 .5em; }
.pg-body p, .pg-body li { font-size: 1.1rem; line-height: 1.6; color: var(--ink-2); }
.pg-body p:first-child { font-size: 1.25rem; color: var(--ink); }
.pg-body a { color: var(--ink); border-bottom: 1px solid var(--line); transition: border-color .3s; }
.pg-body a:hover { border-color: var(--ink); }
.pg-body blockquote { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--accent); }
.pg-body blockquote p { font-size: 1.3rem; color: var(--ink); line-height: 1.35; letter-spacing: -.01em; }
.pg-body hr.rule { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }
.pg-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 80px 0 40px; border-top: 1px solid var(--line); padding-top: 28px; }
.pg-nav-a { display: grid; gap: 6px; max-width: 24rem; }
.pg-nav-a.right { text-align: right; justify-self: end; }
.pg-nav-a small { font-family: var(--mono); font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-3); }
.pg-nav-a span { font-weight: 500; font-size: 1.15rem; letter-spacing: -.02em; }
.pg-nav-a:hover span { color: var(--accent); }

/* news index */
.pg-feature { margin-bottom: 40px; }
.pg-feature-a { display: grid; gap: 22px; padding: clamp(28px, 4vw, 56px); border-radius: var(--radius); background: var(--card); color: #fff; justify-items: start; }
.pg-feature-a .n { color: rgba(255,255,255,.5); margin-bottom: 0; }
.pg-feature-title { font-weight: 500; font-size: clamp(2rem, 4.2vw, 4rem); letter-spacing: -.04em; line-height: .98; max-width: 18ch; }
.pg-feature-desc { color: rgba(255,255,255,.72); font-size: 1.1rem; line-height: 1.55; max-width: 40rem; }
.pg-feature-a .pill.dark { background: #fff; color: var(--ink); }
.pg-feature-a:hover .pill.dark { background: var(--accent); color: #fff; }
.pg-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 40px; }
.pg-card { display: grid; gap: 14px; align-content: start; padding: clamp(24px, 2.6vw, 36px); border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 1px rgba(10,11,13,.06); transition: transform .5s var(--expo), box-shadow .4s; }
.pg-card:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(10,11,13,.12), 0 30px 60px -40px rgba(10,11,13,.25); }
.pg-card-date { font-family: var(--mono); font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-3); }
.pg-card-title { font-weight: 500; font-size: clamp(1.3rem, 1.9vw, 1.7rem); letter-spacing: -.03em; line-height: 1.1; }
.pg-card-desc { color: var(--ink-2); font-size: .98rem; line-height: 1.55; }
.pg-card-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: .9rem; margin-top: 6px; }
.pg-card-more .dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.pg-card:hover .pg-card-more { color: var(--accent); }

/* events */
.ev { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px clamp(32px, 5vw, 96px); padding: clamp(40px, 6vh, 72px) 0; border-bottom: 1px solid var(--line); }
.ev-head .n { margin-bottom: 18px; }
.ev-title { font-weight: 500; font-size: clamp(1.8rem, 3.4vw, 3.2rem); letter-spacing: -.04em; line-height: 1; margin-bottom: 14px; }
.ev-where { color: var(--ink-3); font-family: var(--mono); font-size: .76rem; letter-spacing: .04em; }
.ev-text { font-size: 1.1rem; line-height: 1.6; color: var(--ink-2); max-width: 36rem; }
.ev-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 8px; }
.ev-ph { margin: 0; border-radius: 20px; overflow: hidden; background: var(--card); position: relative; aspect-ratio: 4 / 3; }
.ev-ph.wide { grid-column: span 2; aspect-ratio: 8 / 3; }
.ev-ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--expo); }
.ev-ph:hover img { transform: scale(1.04); }
.ev-ph figcaption { position: absolute; left: 14px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(10,11,13,.6); color: #fff; font-family: var(--mono); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }
.ev-ph figcaption:empty { display: none; }
.ev-empty p { color: var(--ink-3); font-size: 1.05rem; padding: 40px 0; }
.ev-invite { padding: clamp(40px, 6vh, 72px) 0; }
.ev-card { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px clamp(32px, 5vw, 96px); align-items: end; padding: clamp(28px, 4vw, 56px); border-radius: var(--radius); background: var(--card); color: #fff; }
.ev-card .n { color: rgba(255,255,255,.5); margin-bottom: 18px; }
.ev-invite-title { font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.8rem); letter-spacing: -.04em; line-height: 1.02; margin-bottom: 16px; }
.ev-invite-text { color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.55; max-width: 34rem; }
.ev-invite-acts { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.ev-card .pill.line { color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
.ev-card .pill.line:hover { background: #fff; color: var(--ink); }
@media (max-width: 900px) {
  .pg-grid, .ev, .ev-card, .pg-nav { grid-template-columns: minmax(0, 1fr); }
  .ev-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ev-ph.wide { grid-column: span 2; }
  .pg-nav-a.right { text-align: left; justify-self: start; }
  .ev-invite-acts { justify-content: flex-start; }
}
@media (max-width: 560px) { .ev-gallery { grid-template-columns: minmax(0, 1fr); } .ev-ph.wide { grid-column: auto; aspect-ratio: 4 / 3; } }
.pg-feature-title, .pg-feature-title * { color: #fff; }
.ev-card h2, .ev-card p { color: #fff; } .ev-card .ev-invite-text { color: rgba(255,255,255,.7); }

/* ---- the full language: plates, strokes through the prose, pulls ---- */
.pg-plate { position: relative; margin: 0 calc(-1 * var(--pad)); width: 100vw; height: 64vh; min-height: 440px; border-radius: 0 0 var(--radius) var(--radius); overflow: hidden; background: #05070c var(--img) center / cover no-repeat; display: grid; align-items: end; padding: 0 var(--pad) 6vh; color: #fff; isolation: isolate; }
.pg-plate.tall { height: 78vh; }
.pg-plate::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,7,12,.9), rgba(5,7,12,.3) 55%, rgba(5,7,12,.12)); }
.pg-plate::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 50% at 70% 30%, rgba(102,255,255,.08), transparent 70%); mix-blend-mode: screen; }
.pg-plate-in { position: relative; z-index: 1; width: min(1240px, 100%); margin: 0 auto; }
.pg-plate .n { color: rgba(255,255,255,.62); }
.pg-plate .n a { color: inherit; }
.pg-plate .pg-title { color: #fff; margin-bottom: 0; max-width: 18ch; }
.pg-plate .pg-title * { color: #fff; }
.pg-doc:has(.pg-plate) { padding-top: 0; }
.pg-lead { position: relative; padding: clamp(40px, 6vh, 64px) 0; border-bottom: 1px solid var(--line); margin-bottom: clamp(36px, 6vh, 64px); }
.pg-lead .pg-lede { font-size: clamp(1.2rem, 1.8vw, 1.7rem); line-height: 1.4; max-width: 44rem; color: var(--ink); letter-spacing: -.015em; }
.pg-lead .pg-stroke { top: 10px; }
.pg-h2 { position: relative; }
.pg-h2 .pg-stroke { right: auto; left: calc(100% + 6vw); top: -20px; width: min(22vw, 300px); }
.pg-body .pull { font-size: clamp(1.6rem, 2.6vw, 2.5rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.12; color: var(--ink); max-width: 24ch; margin: 44px 0 32px; padding-left: 24px; border-left: 4px solid var(--accent); }
.pg-body .pull::before { content: none; }

.pg-feature-a { position: relative; overflow: hidden; background: #05070c var(--img) center / cover no-repeat; isolation: isolate; min-height: 52vh; align-content: end; }
.pg-feature-a::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,7,12,.92), rgba(5,7,12,.35) 60%, rgba(5,7,12,.1)); transition: opacity .6s; }
.pg-feature-a > * { position: relative; z-index: 1; }
.pg-card { position: relative; overflow: hidden; padding-top: 0; }
.pg-card-img { display: block; margin: 0 calc(-1 * clamp(24px, 2.6vw, 36px)) 22px; height: 180px; background: #05070c var(--img) center / cover no-repeat; transition: transform 1.2s var(--expo); }
.pg-card:hover .pg-card-img { transform: scale(1.03); }
.pg-card-date { padding-top: 0; }
.ev-card { position: relative; overflow: hidden; background: #05070c var(--img) center / cover no-repeat; isolation: isolate; }
.ev-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(5,7,12,.94) 40%, rgba(5,7,12,.5)); }
.ev-card > * { position: relative; z-index: 1; }
@media (max-width: 900px) { .pg-plate { height: 56vh; } .pg-plate.tall { height: 64vh; } .pg-card-img { height: 150px; } }
/* Document pages: the brand is white over the plate at the top and ink once it is past. */
.doc .mast .brand { color: #fff; }
html.past-plate .doc .mast .brand, .doc:not(:has(.pg-plate)) .mast .brand { color: var(--ink); }
.ev-ph.tall { aspect-ratio: 3 / 4; }
.ev-ph video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.ev-gallery:has(.tall) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ev-gallery:has(.tall):has(.ev-ph:only-child) { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

/* papers */
.pp-figs { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 34px; }
.pp-figs b { color: var(--accent); }
.pp-axioms { margin-top: 22px; color: var(--ink-3); font-size: .9rem; }
.pp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 40px; }
.pp { display: grid; grid-template-rows: 220px auto; border-radius: var(--radius); background: #fff; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(10,11,13,.06); transition: transform .5s var(--expo), box-shadow .4s; }
.pp:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(10,11,13,.12), 0 30px 60px -40px rgba(10,11,13,.25); }
.pp-img { display: block; background: #05070c var(--img) center / cover no-repeat; transition: transform 1.2s var(--expo); }
.pp:hover .pp-img { transform: scale(1.03); }
.pp-body { display: grid; gap: 12px; padding: clamp(22px, 2.6vw, 34px); align-content: start; }
.pp-kind { font-family: var(--mono); font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-3); }
.pp-title { font-weight: 500; font-size: clamp(1.4rem, 2vw, 1.9rem); letter-spacing: -.035em; line-height: 1.05; }
.pp-desc { color: var(--ink-2); font-size: .98rem; line-height: 1.55; }
.pp-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: .9rem; margin-top: 4px; }
.pp-more .dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.pp:hover .pp-more { color: var(--accent); }
/* docs */
.pg-lead .acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.dc-list { padding: 10px 0 60px; }
.dc-ul { list-style: none; }
.dc { display: grid; grid-template-columns: 12rem minmax(0, 1fr) auto; gap: 16px 32px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
.dc:last-child { border-bottom: 1px solid var(--line); }
.dc-n { font-weight: 500; font-size: 1.35rem; letter-spacing: -.03em; }
.dc-d { color: var(--ink-2); font-size: 1rem; line-height: 1.5; }
.dc-s { font-family: var(--mono); font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; }
.dc-s::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--wait, #b7860b); margin-right: 8px; vertical-align: 1px; }
@media (max-width: 900px) { .pp-grid { grid-template-columns: minmax(0, 1fr); } .pp-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dc { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
