/* ===================================================================
   Palestine Innovation Summit, 2026 front end: "Light through the leaves"
   (Concept A, chosen by the owner on 28 October 2026).

   Loaded by resources/views/summit-2026/*, on the summit's own pages and,
   with pis-a-themed.css, on the shared layout's pages, while the edition's
   Front-end design is 2026 (Control > Settings, the edition card).

   Palette: sampled from the 10-year anniversary film (the green relief
   render), deep to light. Type: Barlow Condensed for display, Source Sans 3
   for text, the technopark.ps family; both SIL Open Font License, self-hosted
   as their latin subsets.

   Motion: transform and opacity only, ease-out cubic-bezier(0.23,1,0.32,1),
   UI 150-300ms, entrances 500ms or less; the slow ambient loops (rays, ring,
   leaves) use easeInOutSine or linear. Every movement is removed under
   prefers-reduced-motion, keeping short fades.
   =================================================================== */

@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap;
    src: url("fonts/barlow-condensed-600.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap;
    src: url("fonts/barlow-condensed-700.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 800; font-display: swap;
    src: url("fonts/barlow-condensed-800.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 400 600; font-display: swap;
    src: url("fonts/source-sans-3.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
    --pa-deep: #103e38;
    --pa-base: #15453e;
    --pa-base-2: #184b44;
    --pa-mid: #275f54;
    --pa-ray: #71a599;
    --pa-soft: #a9d3c5;
    --pa-soft-2: #cfe3da;
    --pa-leaf: #e4eee8;
    --pa-mist: #eef5f1;
    --pa-line: #dbe8e2;
    --pa-white: #ffffff;
    --pa-ink: #2c3f3b;           /* body text on white */
    --pa-ink-soft: #4f716d;      /* 4.85:1 on mist, 5.4:1 on white */
    --pa-on-deep: rgba(255, 255, 255, .84);
    --pa-shadow: 16, 62, 56;     /* --pa-deep as r, g, b */

    --pa-display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
    --pa-text: "Source Sans 3", "Source Sans Pro", "Segoe UI", system-ui, sans-serif;

    --pa-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --pa-ease-sine: cubic-bezier(0.37, 0, 0.63, 1);   /* easeInOutSine, for the ambient sway */

    --pa-shell: 1312px;
    --pa-gutter: 16px;
    --pa-header-h: 76px;
    --pa-radius-lg: 28px;
    --pa-radius: 18px;
    --pa-radius-sm: 14px;

    --pa-focus: var(--pa-mid);

    /* Supporting accents (owner, 28 Oct: "more colours, fitting the theme"),
       from the same film and brand family, each with one job:
       sand      the film's warm renders: alternate section grounds
       blue      the mark's blue (#285b87, 7.1:1 on white): text and labels
       teal      the mark's teal-grey: decoration and large type only
                 (4.3:1 on white, below the 4.5:1 body-text bar)
       maroon    the summit's own red (10.9:1 on white): a sparing highlight,
                 the conference day, Register on hover, the first tier */
    --pa-sand: #f6f2ea;
    --pa-sand-2: #e8e1d4;
    --pa-sand-line: #b7a98e;
    --pa-blue: #285b87;
    --pa-blue-tint: #e7eef5;
    --pa-teal: #538383;
    --pa-teal-tint: #e4eeee;
    --pa-maroon: #800000;
    --pa-maroon-tint: #f6e9e6;
}
@media (min-width: 640px) { :root { --pa-gutter: 32px; } }
@media (min-width: 1200px) { :root { --pa-gutter: 64px; --pa-header-h: 88px; } }

/* ---------- base ---------- */

.pa-body {
    margin: 0;
    background: var(--pa-white);
    color: var(--pa-ink);
    font-family: var(--pa-text);
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: clip;
}
.pa-body *, .pa-body *::before, .pa-body *::after { box-sizing: border-box; }
.pa-body img { max-width: 100%; }
.pa-body a { color: var(--pa-base-2); }
.pa-body a:hover { color: var(--pa-deep); }
.pa-body :focus-visible { outline: 3px solid var(--pa-focus); outline-offset: 3px; border-radius: 4px; }
.pa-body #pa-main:focus { outline: none; }
html:has(.pa-body) { scroll-padding-top: 24px; }

.pa-shell {
    width: 100%;
    max-width: calc(var(--pa-shell) + 2 * var(--pa-gutter));
    margin-inline: auto;
    padding-inline: var(--pa-gutter);
}

.pa-skip {
    position: absolute;
    inset-inline-start: 16px;
    top: -120px;
    z-index: 100;
    padding: 12px 18px;
    border-radius: 10px;
    background: var(--pa-white);
    color: var(--pa-deep);
    font-weight: 600;
    text-decoration: none;
}
.pa-skip:focus { top: 12px; }

/* ---------- the green top: rays, header, hero or page head, leaves ---------- */

/* Clipped sideways only: the menu panel hangs below this band, and the
   turning ring's corners must not widen the page.
   overflow-x: clip makes no scroll container, so the y axis stays visible. */
.pa-top {
    --pa-focus: var(--pa-soft);
    position: relative;
    z-index: 5;
    isolation: isolate;
    overflow-x: clip;
    color: var(--pa-white);
    background: radial-gradient(120% 90% at 70% 0%, var(--pa-mid) 0%, var(--pa-base-2) 45%, var(--pa-deep) 100%);
}
.pa-top a { color: var(--pa-white); }

/* Soft light falling through leaves: wide translucent bars, blurred, drifting
   very slowly. The layer is blurred once and then only moved. */
.pa-rays {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    overflow: hidden;
}
.pa-rays::before {
    content: "";
    position: absolute;
    top: -30%;
    right: -12%;
    width: 85%;
    height: 170%;
    background: repeating-linear-gradient(115deg,
        rgba(228, 238, 232, 0) 0 70px,
        rgba(228, 238, 232, .10) 70px 120px);
    filter: blur(18px);
    transform: rotate(-8deg);
}
.pa-rays::after {
    content: "";
    position: absolute;
    top: -40%;
    right: -10%;
    width: 70%;
    height: 110%;
    background: radial-gradient(closest-side, rgba(228, 238, 232, .16), rgba(228, 238, 232, 0));
}

/* ---------- header ---------- */

.pa-header { position: relative; z-index: 20; }
.pa-header-bar {
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: var(--pa-header-h);
}
.pa-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
    color: var(--pa-white);
    text-decoration: none;
}
.pa-brand-mark { display: block; width: auto; height: 34px; }
.pa-brands { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }
.pa-brands .pa-brand + .pa-brand { padding-inline-start: 12px; border-inline-start: 1px solid rgba(255, 255, 255, .3); }
.pa-brand-logo { display: block; width: auto; height: 36px; transition: height 250ms var(--pa-ease-out); }
.pa-brand-name {
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.05;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.pa-header .pa-brand-name > span { display: block; }
@media (min-width: 1200px) {
    .pa-brand-mark { height: 40px; }
    .pa-brand-name { font-size: 18px; }
    .pa-brand-logo { height: 50px; }
    .pa-brands { gap: 16px; }
    .pa-brands .pa-brand + .pa-brand { padding-inline-start: 16px; }
}

.pa-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-inline-start: auto;
}
.pa-pill {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 22px;
    border-radius: 999px;
    background: var(--pa-white);
    color: var(--pa-deep);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 150ms var(--pa-ease-out), background-color 200ms ease;
}
.pa-top .pa-pill { color: var(--pa-deep); }
.pa-pill:hover { background: var(--pa-leaf); color: var(--pa-deep); }
.pa-pill:active { transform: scale(.97); }

.pa-menu-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 999px;
    background: transparent;
    color: var(--pa-white);
    font: 600 15px/1 var(--pa-text);
    text-decoration: none;
    cursor: pointer;
    transition: transform 150ms var(--pa-ease-out), border-color 200ms ease;
}
.pa-menu-btn:hover { border-color: var(--pa-white); }
.pa-menu-btn:active { transform: scale(.97); }
.pa-burger { position: relative; width: 18px; height: 12px; }
.pa-burger i {
    position: absolute;
    inset-inline: 0;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 200ms var(--pa-ease-out);
}
.pa-burger i:first-child { top: 1px; }
.pa-burger i:last-child { bottom: 1px; }
.pa-header.is-open .pa-burger i:first-child { transform: translateY(4px) rotate(45deg); }
.pa-header.is-open .pa-burger i:last-child { transform: translateY(-4px) rotate(-45deg); }

/* The nav as a panel under the bar: phones and tablets always, and any
   width where pis-a.js finds the labels do not fit on one line. */
.pa-nav {
    position: absolute;
    top: 100%;
    inset-inline: 0;
    padding: 4px var(--pa-gutter) 24px;
    background: var(--pa-deep);
    border-top: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .5);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 200ms var(--pa-ease-out), transform 200ms var(--pa-ease-out), visibility 0s linear 200ms;
}
.pa-header.is-open .pa-nav {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition-delay: 0s;
}
.pa-nav-list { list-style: none; margin: 0 auto; padding: 0; max-width: var(--pa-shell); }
.pa-nav-link {
    display: block;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: var(--pa-white);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 22px;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
}
.pa-nav-link[aria-current="page"] { color: var(--pa-soft); }

@media (min-width: 1024px) {
    .pa-header:not(.is-compact) .pa-nav {
        position: static;
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        justify-content: center;
        padding: 0;
        background: none;
        border: 0;
        box-shadow: none;
        visibility: visible;
        opacity: 1;
        transform: none;
        transition: none;
    }
    .pa-header:not(.is-compact) .pa-nav-list {
        display: flex;
        gap: clamp(12px, 1.1vw, 22px);
        margin: 0;
        white-space: nowrap;
    }
    .pa-header:not(.is-compact) .pa-nav-link {
        position: relative;
        padding: 10px 0;
        border: 0;
        color: rgba(255, 255, 255, .86);
        font-family: var(--pa-text);
        font-weight: 400;
        font-size: 15px;
        letter-spacing: 0;
        text-transform: none;
    }
    .pa-header:not(.is-compact) .pa-nav-link::after {
        content: "";
        position: absolute;
        inset-inline: 0;
        bottom: 4px;
        height: 1px;
        background: var(--pa-soft);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 200ms var(--pa-ease-out);
    }
    .pa-header:not(.is-compact) .pa-nav-link:hover,
    .pa-header:not(.is-compact) .pa-nav-link[aria-current="page"] { color: var(--pa-white); }
    .pa-header:not(.is-compact) .pa-nav-link:hover::after,
    .pa-header:not(.is-compact) .pa-nav-link[aria-current="page"]::after { transform: scaleX(1); }
    .pa-header:not(.is-compact) .pa-menu-btn { display: none; }
}
@media (max-width: 479.98px) {
    .pa-menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .pa-menu-btn { padding: 0 13px; }
    .pa-pill { padding: 0 16px; }
    .pa-brand-name { font-size: 13px; }
    .pa-brand-mark { height: 30px; }
}

/* ---------- homepage hero ---------- */

.pa-hero {
    display: grid;
    gap: 36px;
    padding-block: 20px 132px;
}
.pa-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    color: var(--pa-soft-2);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.pa-eyebrow::before {
    content: "";
    flex: 0 0 40px;
    height: 1px;
    background: var(--pa-ray);
}
.pa-eyebrow a { text-decoration: none; }
.pa-eyebrow a:hover { text-decoration: underline; }
.pa-hero-title {
    margin: 22px 0 0;
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(3.25rem, 1.5rem + 6.8vw, 7.25rem);
    line-height: .9;
    letter-spacing: .005em;
    text-transform: uppercase;
    text-wrap: balance;
}
.pa-hero-lead {
    max-width: 33em;
    margin: 26px 0 0;
    color: var(--pa-on-deep);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    line-height: 1.55;
}
.pa-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 24px;
    margin-top: 30px;
}

.pa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 30px;
    border: 0;
    border-radius: 999px;
    font: 600 17px/1.2 var(--pa-text);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform 160ms var(--pa-ease-out), background-color 200ms ease, color 200ms ease;
}
.pa-btn:active { transform: scale(.97); }
.pa-btn-light, .pa-top .pa-btn-light, .pa-conf-card .pa-btn-light { background: var(--pa-white); color: var(--pa-deep); }
.pa-btn-light:hover, .pa-top .pa-btn-light:hover, .pa-conf-card .pa-btn-light:hover { background: var(--pa-leaf); color: var(--pa-deep); }
.pa-btn-solid, .pa-body a.pa-btn-solid { background: var(--pa-base-2); color: var(--pa-white); }
.pa-btn-solid:hover, .pa-body a.pa-btn-solid:hover { background: var(--pa-deep); color: var(--pa-white); }

.pa-link-light {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    color: var(--pa-white);
    font-weight: 600;
    font-size: 17px;
    text-decoration: none;
}
a.pa-link-light { background: linear-gradient(var(--pa-ray), var(--pa-ray)) left calc(100% - 9px) / 100% 1px no-repeat; }
a.pa-link-light:hover { background-image: linear-gradient(var(--pa-white), var(--pa-white)); }

/* The anniversary mark inside a band of light, with a ring of text turning
   around it once every two minutes. */
.pa-emblem {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 420px);
    aspect-ratio: 1;
    margin-inline: auto;
}
.pa-emblem-rings, .pa-emblem-turn, .pa-emblem-turn svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.pa-emblem-hair { fill: none; stroke: rgba(228, 238, 232, .18); stroke-width: 1; }
.pa-emblem-band { fill: none; stroke: rgba(228, 238, 232, .14); stroke-width: 44; }
.pa-emblem-text {
    fill: var(--pa-leaf);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 30px;
    text-transform: uppercase;
}
.pa-emblem-mark { position: relative; width: 60%; height: auto; }

@media (min-width: 1024px) {
    .pa-hero {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        column-gap: 24px;
        align-items: center;
        padding-block: 24px 150px;
    }
    .pa-hero-copy { grid-column: 1 / span 6; }
    .pa-emblem { grid-column: 7 / span 6; width: min(100%, 600px); }
}

/* ---------- the leaf band (the anniversary film's) ---------- */

/* The summit's leaf tile in white along the foot of every green band; the
   page's one tatreez band. Revealed left to right on load, then it sways. */
.pa-leaves {
    position: absolute;
    inset-inline: 0;
    bottom: 14px;
    height: 80px;
    overflow: hidden;
    pointer-events: none;
}
.pa-leaves-sway { position: absolute; inset: 0 -24px; }
.pa-leaves-art { display: block; width: 100%; height: 100%; }
@keyframes pa-sway {
    from { transform: translate3d(-12px, 0, 0); }
    to { transform: translate3d(12px, 0, 0); }
}
@keyframes pa-unveil {
    from { clip-path: inset(0 100% 0 0); }
    to { clip-path: inset(0 0 0 0); }
}
@media (prefers-reduced-motion: no-preference) {
    .pa-leaves { animation: pa-unveil 500ms var(--pa-ease-out) 220ms both; }
    .pa-leaves-sway { animation: pa-sway 9s var(--pa-ease-sine) infinite alternate; }
}

/* ---------- page head (section pages) ---------- */

.pa-pagehead { padding-block: 48px 132px; }
.pa-page-title {
    max-width: 20ch;
    margin: 18px 0 0;
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(2.75rem, 1.7rem + 4.2vw, 5.5rem);
    line-height: .92;
    text-transform: uppercase;
    text-wrap: balance;
}
.pa-pagehead .pa-eyebrow + .pa-page-title { margin-top: 18px; }
.pa-pagehead .pa-page-title:first-child { margin-top: 0; }
@media (min-width: 1024px) { .pa-pagehead { padding-block: 88px 150px; } }

/* ---------- homepage sections ---------- */

.pa-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 32px;
    margin-bottom: 36px;
}
.pa-h2 {
    max-width: 14ch;
    margin: 0;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(2.5rem, 1.6rem + 3.2vw, 4rem);
    line-height: .95;
    text-transform: uppercase;
    text-wrap: balance;
}
.pa-section-intro { max-width: 46ch; margin: 14px 0 0; color: var(--pa-ink-soft); }
.pa-label {
    margin: 0;
    color: var(--pa-ink-soft);
    font-family: var(--pa-text);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .2em;
    line-height: 1.4;
    text-transform: uppercase;
}
.pa-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    color: var(--pa-base-2);
    font-weight: 600;
    font-size: 17px;
    text-decoration: none;
}
.pa-arrow-link span { transition: transform 200ms var(--pa-ease-out); }
.pa-arrow-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.pa-arrow-link:hover span { transform: translateX(3px); }

.pa-week { padding-block: clamp(56px, 3rem + 3vw, 96px) clamp(48px, 2rem + 3vw, 72px); }
.pa-days {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pa-day-slot { display: flex; }
.pa-day {
    container-type: inline-size;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    column-gap: 16px;
    align-content: start;
    width: 100%;
    padding: 16px 18px;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
    color: var(--pa-deep);
    text-decoration: none;
    transition: transform 200ms var(--pa-ease-out), box-shadow 200ms var(--pa-ease-out);
}
.pa-body a.pa-day { color: var(--pa-deep); }
.pa-day-date { grid-row: 1 / span 4; display: flex; flex-direction: column; gap: 4px; }
.pa-day-dow {
    color: var(--pa-ink-soft);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.pa-day-num {
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: 44px;
    line-height: .9;
}
.pa-day-title {
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 21px;
    line-height: 1.05;
    text-transform: uppercase;
    /* Lines break between words only. A title that would not fit steps its
       size down instead (pa-day-title-long, set in summit-2026/_home by its
       length and its longest word), sized to the card through cqi. */
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}
.pa-day-title-long { font-size: clamp(15px, 12cqi, 19px); }
.pa-day-title-longer { font-size: clamp(13px, 10.6cqi, 17px); }
.pa-day-meta, .pa-day-more, .pa-day-tba { color: var(--pa-ink-soft); font-size: 14px; line-height: 1.4; }
.pa-day-meta { margin-top: 6px; }
.pa-day-more { margin-top: 2px; font-weight: 600; }
.pa-day-tba { align-self: center; }
.pa-day.is-main, .pa-body a.pa-day.is-main { background: var(--pa-deep); color: var(--pa-white); }
.pa-day.is-main .pa-day-dow { color: var(--pa-soft); }
.pa-day.is-main .pa-day-meta, .pa-day.is-main .pa-day-more, .pa-day.is-main .pa-day-tba { color: var(--pa-soft-2); }
.pa-day.is-main { --pa-focus: var(--pa-ray); }
a.pa-day:active { transform: scale(.985); }
@media (hover: hover) and (pointer: fine) {
    a.pa-day:hover { transform: translateY(-4px); box-shadow: 0 16px 28px -18px rgba(var(--pa-shadow), .45); }
    a.pa-day:active { transform: translateY(-2px) scale(.985); }
}
@media (min-width: 640px) {
    .pa-days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pa-day { display: flex; flex-direction: column; gap: 8px; min-height: 236px; padding: 22px 18px; }
    .pa-day-date { gap: 10px; }
    .pa-day-num { font-size: 64px; }
    .pa-day-title { margin-top: auto; }
    .pa-day-meta { margin-top: 0; }
    .pa-day-tba { margin-top: auto; align-self: auto; }
}
@media (min-width: 1200px) { .pa-days { grid-template-columns: repeat(7, minmax(0, 1fr)); } }

.pa-conf-card {
    --pa-focus: var(--pa-soft);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    gap: 32px;
    padding: clamp(28px, 1rem + 3vw, 64px);
    border-radius: var(--pa-radius-lg);
    background: linear-gradient(135deg, var(--pa-base-2), var(--pa-mid));
    color: var(--pa-white);
}
.pa-conf-card::before {
    content: "";
    position: absolute;
    inset: -40% -10% -40% 40%;
    z-index: -1;
    background: repeating-linear-gradient(115deg, rgba(228, 238, 232, 0) 0 60px, rgba(228, 238, 232, .07) 60px 100px);
    filter: blur(14px);
}
.pa-conf-card .pa-eyebrow { color: var(--pa-soft); }
.pa-conf-card .pa-eyebrow::before { display: none; }
.pa-h2-light { margin-top: 14px; max-width: 18ch; color: var(--pa-white); }
.pa-h2-light a, .pa-body .pa-h2-light a { color: var(--pa-white); text-decoration: none; }
.pa-h2-light a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.pa-conf-lead { max-width: 35em; margin: 16px 0 0; color: var(--pa-on-deep); font-size: 18px; line-height: 1.55; }
@media (min-width: 1024px) {
    .pa-conf-card { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; gap: 48px; }
}

.pa-partners { padding-block: clamp(56px, 3rem + 2vw, 80px) 0; }
.pa-partners .pa-section-head { margin-bottom: 24px; }
.pa-marks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pa-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 96px;
    padding: 14px 18px;
    border-radius: var(--pa-radius-sm);
    background: var(--pa-mist);
}
/* Most logo files carry a white ground; multiply drops it into the tile. */
.pa-mark img { width: auto; max-width: 100%; max-height: 58px; object-fit: contain; mix-blend-mode: multiply; }
.pa-mark.is-tall img { max-height: 72px; }
.pa-mark.is-wide img { max-height: 46px; }
.pa-mark-cluster img { max-width: 44%; max-height: 46px; }
@media (max-width: 639.98px) {
    .pa-marks:not(.pa-marks-tier) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .pa-marks:not(.pa-marks-tier) .pa-mark { height: 76px; padding: 10px; border-radius: 12px; }
    .pa-marks:not(.pa-marks-tier) .pa-mark img { max-height: 44px; }
}
@media (min-width: 640px) { .pa-marks { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1024px) { .pa-marks { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* ---------- section pages ---------- */

.pa-section { padding-block: clamp(44px, 2rem + 3vw, 88px) 0; }
.pa-prose > :first-child, .pa-prose .pis-cpane > :first-child { margin-top: 0; }
.pa-prose p { max-width: 68ch; margin: 0 0 16px; }
.pa-prose ul, .pa-prose ol { max-width: 68ch; }
.pa-prose h2, .pa-prose h3, .pa-prose h4 { color: var(--pa-deep); }

.pa-prose .pis-lead {
    max-width: 38ch;
    margin: 0 0 32px;
    color: var(--pa-deep);
    font-size: clamp(1.3rem, 1.05rem + .9vw, 1.7rem);
    line-height: 1.4;
}
.pa-prose .pis-split { display: grid; gap: 20px 64px; margin-block: 28px; }
.pa-prose .pis-stand {
    margin: 0;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem);
    line-height: 1.12;
}
.pa-prose .pis-body { font-size: 17px; line-height: 1.65; }
@media (min-width: 1024px) { .pa-prose .pis-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }

.pa-prose .pis-h2 {
    max-width: 24ch;
    margin: 0 0 20px;
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem);
    line-height: .96;
    text-transform: uppercase;
}
.pa-prose .pis-h3, .pa-prose .pis-sub {
    margin: 40px 0 14px;
    font-family: var(--pa-display);
    font-weight: 700;
    font-size: clamp(1.5rem, 1.25rem + .8vw, 2rem);
    line-height: 1.05;
    text-transform: uppercase;
    color: var(--pa-deep);
}
.pa-prose .pis-rule-head {
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin: 56px 0 24px;
    padding-top: 16px;
    border-top: 2px solid var(--pa-base-2);
}
.pa-prose .pis-rule-head .n {
    color: var(--pa-mid);
    font-family: var(--pa-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: .06em;
}
.pa-prose .pis-rule-head h3 {
    margin: 0;
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
    line-height: 1;
    text-transform: uppercase;
}

.pa-prose .pis-objs, .pa-prose .pis-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: 12px;
    margin-block: 8px 24px;
}
.pa-prose .pis-obj, .pa-prose .pis-card {
    padding: 22px 20px;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
}
.pa-prose .pis-obj .n, .pa-prose .pis-card .n {
    display: block;
    color: var(--pa-mid);
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: 32px;
    line-height: 1;
}
.pa-prose .pis-obj h4, .pa-prose .pis-card h4, .pa-prose .pis-card h3 {
    margin: 10px 0 8px;
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 21px;
    line-height: 1.1;
    text-transform: uppercase;
}
.pa-prose .pis-obj p, .pa-prose .pis-card p { margin: 0; font-size: 15px; line-height: 1.5; }

.pa-prose .pis-outs, .pa-prose .pis-list { margin: 0 0 24px; padding: 0; list-style: none; }
.pa-prose .pis-outs li, .pa-prose .pis-list li { position: relative; margin-bottom: 10px; padding-inline-start: 26px; }
.pa-prose .pis-outs li::before, .pa-prose .pis-list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 4px;
    top: .62em;
    width: 7px;
    height: 7px;
    background: var(--pa-ray);
    transform: rotate(45deg);
}
.pa-prose .pis-closer {
    max-width: 60ch;
    margin-top: 40px;
    padding-inline-start: 20px;
    border-inline-start: 4px solid var(--pa-ray);
    color: var(--pa-deep);
    font-size: 1.2rem;
    line-height: 1.55;
}

.pa-prose .pis-facts, .pa-prose .pis-conf-at, .pa-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 12px;
    margin: 0 0 32px;
}
.pa-prose .pis-fact, .pa-prose .pis-conf-at-i, .pa-facts > div {
    padding: 20px;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
}
.pa-prose .pis-fact-k, .pa-prose .pis-conf-at-i .k, .pa-facts dt {
    display: block;
    color: var(--pa-ink-soft);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.pa-prose .pis-fact-v, .pa-prose .pis-conf-at-i .v {
    display: block;
    margin-top: 6px;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.pa-facts dd {
    margin: 6px 0 0;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: 48px;
    line-height: 1;
}

.pa-prose .pis-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.pa-prose .pis-btn {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 24px;
    border-radius: 999px;
    background: var(--pa-base-2);
    color: var(--pa-white);
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    transition: transform 150ms var(--pa-ease-out), background-color 200ms ease;
}
.pa-prose .pis-btn:hover { background: var(--pa-deep); color: var(--pa-white); }
.pa-prose .pis-btn:active { transform: scale(.97); }
.pa-prose .pis-btn-s { background: var(--pa-mist); color: var(--pa-deep); }
.pa-prose .pis-btn-s:hover { background: var(--pa-line); color: var(--pa-deep); }

.pa-prose .pis-pr-eyebrow {
    margin-bottom: 10px;
    color: var(--pa-ink-soft);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.pa-prose .pis-pr-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    margin-bottom: 28px;
    color: var(--pa-ink-soft);
    font-size: 15px;
}
.pa-prose .pis-pr-lead { max-width: 60ch; color: var(--pa-deep); font-size: 1.2rem; line-height: 1.55; }
.pa-prose .pis-pr-quote {
    max-width: 56ch;
    margin: 32px 0;
    padding-inline-start: 20px;
    border-inline-start: 4px solid var(--pa-ray);
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.25;
}
.pa-prose .pis-pr-end { color: var(--pa-ink-soft); }
/* A release's title and text run the full content width (owner, 3 Nov); the
   pull quote keeps its display measure. */
.pa-section-press .pa-prose :is(p, ul, ol, .pis-h2):not(.pis-pr-quote) { max-width: none; }

/* The conference body's About / Agenda / Speakers panes. */
.pa-prose .pis-cpane { display: none; }
.pa-prose .pis-cpane.on { display: block; }
.pa-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 36px; }
.pa-tab {
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid var(--pa-line);
    border-radius: 999px;
    background: var(--pa-white);
    color: var(--pa-deep);
    font: 600 16px/1 var(--pa-text);
    cursor: pointer;
    transition: transform 150ms var(--pa-ease-out), background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.pa-tab:hover { border-color: var(--pa-ray); }
.pa-tab:active { transform: scale(.97); }
.pa-tab[aria-expanded="true"] { border-color: var(--pa-deep); background: var(--pa-deep); color: var(--pa-white); }
.pa-tabs .pa-btn { min-height: 48px; padding: 0 24px; font-size: 16px; }

/* A session: the week agenda and the conference programme share it. */
.pa-prose .pis-daycard { display: block; }
.pa-prose .pis-slot {
    margin-bottom: 12px;
    padding: 20px 22px;
    border: 1px solid var(--pa-line);
    border-radius: var(--pa-radius);
    background: var(--pa-white);
}
.pa-prose .pis-slot-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; }
.pa-prose .pis-slot-title h4 {
    margin: 0;
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.1;
    text-transform: uppercase;
}
.pa-prose .pis-slot-access {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--pa-mist);
    color: var(--pa-deep);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.pa-prose .pis-slot-where { margin: 6px 0 0; color: var(--pa-ink-soft); font-size: 15px; }
.pa-prose .pis-slot-desc { margin: 10px 0 0; font-size: 16px; }
.pa-prose .pis-slot-more summary { margin-top: 10px; color: var(--pa-base-2); font-weight: 600; cursor: pointer; }
.pa-prose .pis-slot-more-body { margin-top: 8px; font-size: 16px; }
/* A session's text runs the card's full width (owner, 3 Nov): the prose measure
   (.pa-prose p, 68ch) left the opened details filling half the card. */
.pa-prose .pis-slot > p, .pa-prose .pis-slot-more-body :is(p, ul, ol) { max-width: none; }
.pa-prose .pis-slot-meta { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 12px 0 0; font-size: 15px; }
.pa-prose .pis-slot-meta b { font-weight: 600; color: var(--pa-deep); }
.pa-prose .pis-slot .pis-btn { min-height: 44px; }
.pa-prose .pis-slot-more-open { display: none; }
@media (max-width: 760px) {
    /* Phones: details open as a full page (the popover), not inside the card. */
    .pa-prose .pis-slot-more { display: none; }
    .pa-prose .pis-slot-more-open { display: inline-flex; margin-top: 14px; }
    .pa-bio.pis-more-sheet {
        width: 100vw;
        max-width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        inset: 0;
        padding: 24px var(--pa-gutter) 48px;
        border-radius: 0;
    }
    .pis-more-sheet .pa-bio-name { font-size: 28px; padding-right: 48px; }
    .pis-more-sheet .pa-bio-org b { color: var(--pa-deep); font-weight: 600; }
}
.pa-prose .pis-daycard-tba, .pa-day-tba { color: var(--pa-ink-soft); }

/* No speaker shown yet: one line where the grid will be. */
.pa-prose .pis-speakers-soon { margin: 32px 0 0; font-size: 1.125rem; color: var(--pa-ink-soft); }

/* The speaker line-up (Control > Pages, category Speakers). A card is a
   button: it opens the speaker's bio panel (.pa-bio). */
.pa-prose .pis-speakers {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
    gap: 32px 24px;
    max-width: none;
    margin: 32px 0 0;
    padding: 0;
    list-style: none;
}
.pa-prose .pis-speaker { margin: 0; }
.pis-speaker-open {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}
.pa-prose .pis-speaker-portrait {
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
}
.pa-prose .pis-speaker-portrait img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--pa-ease-out); }
.pa-prose .pis-speaker-initials { color: var(--pa-mid); font-family: var(--pa-display); font-weight: 800; font-size: 48px; }
.pa-prose .pis-speaker-name {
    display: block;
    margin-top: 14px;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.1;
    text-transform: uppercase;
}
.pa-prose .pis-speaker-role { display: block; margin-top: 6px; color: var(--pa-ink); font-size: 15px; line-height: 1.4; }
.pa-prose .pis-speaker-org { display: block; margin-top: 2px; color: var(--pa-ink-soft); font-size: 14px; line-height: 1.4; }
.pis-speaker-open:focus-visible { outline: 3px solid var(--pa-focus); outline-offset: 4px; border-radius: var(--pa-radius); }
@media (hover: hover) and (pointer: fine) {
    .pis-speaker-open:hover .pis-speaker-portrait img { transform: scale(1.03); }
    .pis-speaker-open:hover .pis-speaker-name { color: var(--pa-mid); }
}

/* The people in a session, under its title: small cards that open the bios. */
.pa-prose .pis-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    max-width: none;
    margin: 14px 0 4px;
    padding: 0;
    list-style: none;
}
.pa-prose .pis-chips > li { margin: 0; }
.pis-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 6px 16px 6px 6px;
    border: 1px solid var(--pa-line);
    border-radius: 999px;
    background: var(--pa-white);
    color: var(--pa-ink);
    font: inherit;
    text-align: start;
    cursor: pointer;
    transition: border-color 200ms ease, transform 150ms var(--pa-ease-out);
}
.pis-chip:hover { border-color: var(--pa-ray); }
.pis-chip:active { transform: scale(.98); }
.pis-chip-photo {
    display: grid;
    flex: none;
    place-items: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--pa-mist);
    color: var(--pa-mid);
    font: 700 15px/1 var(--pa-display);
}
.pa-prose .pis-chip-photo img { width: 100%; height: 100%; object-fit: cover; }
.pis-chip-text { display: grid; gap: 2px; min-width: 0; }
.pis-chip-text b { color: var(--pa-deep); font-weight: 600; font-size: 15px; line-height: 1.2; }
.pis-chip-text span { color: var(--pa-ink-soft); font-size: 13px; line-height: 1.3; }

/* A speaker's bio: a native popover in the top layer. */
.pa-bio {
    width: min(720px, calc(100vw - 2 * var(--pa-gutter)));
    max-height: min(86vh, 900px);
    margin: auto;
    padding: clamp(24px, 4vw, 40px);
    overflow: auto;
    overscroll-behavior: contain;
    border: 0;
    border-radius: var(--pa-radius-lg);
    background: var(--pa-white);
    color: var(--pa-ink);
    font-family: var(--pa-text);
    box-shadow: 0 30px 80px -30px rgba(var(--pa-shadow), .6);
}
.pa-bio::backdrop { background: rgba(var(--pa-shadow), .55); }
.pa-bio-close {
    position: sticky;
    top: 0;
    float: right;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin: -8px -8px 0 12px;
    border: 1px solid var(--pa-line);
    border-radius: 50%;
    background: var(--pa-white);
    color: var(--pa-deep);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}
.pa-bio-close:hover { border-color: var(--pa-ray); }
.pa-bio :focus-visible { outline: 3px solid var(--pa-focus); outline-offset: 3px; }
.pa-bio-head { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 24px; align-items: end; }
.pa-bio-portrait {
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
    color: var(--pa-mid);
    font: 800 44px/1 var(--pa-display);
}
.pa-bio-portrait img { width: 100%; height: 100%; object-fit: cover; }
.pa-bio-name {
    margin: 0;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: clamp(28px, 4vw, 38px);
    line-height: 1;
    text-transform: uppercase;
}
.pa-bio-role { margin: 10px 0 0; font-size: 17px; }
.pa-bio-org { margin: 4px 0 0; color: var(--pa-ink-soft); font-size: 16px; }
.pa-bio-text { margin-top: 24px; font-size: 17px; line-height: 1.6; }
.pa-bio-text p { margin: 0 0 14px; }
.pa-bio-sub {
    margin: 28px 0 10px;
    padding-top: 20px;
    border-top: 1px solid var(--pa-line);
    color: var(--pa-deep);
    font: 600 20px/1.1 var(--pa-display);
    text-transform: uppercase;
}
.pa-bio-sessions { margin: 0; padding: 0; list-style: none; }
.pa-bio-sessions li { display: grid; gap: 2px; padding: 10px 0; }
.pa-bio-sessions li + li { border-top: 1px solid var(--pa-line); }
.pa-bio-sessions b { color: var(--pa-deep); font-weight: 600; }
.pa-bio-sessions span { color: var(--pa-ink-soft); font-size: 15px; }
.pa-bio-sessions .pa-bio-as { color: var(--pa-mid); font-weight: 600; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 560px) {
    /* Two cards a row on a phone; the bio's portrait sits above the name. */
    .pa-prose .pis-speakers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
    .pa-prose .pis-speaker-name { font-size: 19px; }
    .pa-bio-head { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .pa-bio-portrait { width: 132px; }
    .pa-bio-text { font-size: 16px; }
}
@media (prefers-reduced-motion: no-preference) {
    .pa-bio, .pa-bio::backdrop {
        transition: opacity 220ms var(--pa-ease-out), transform 220ms var(--pa-ease-out), overlay 220ms allow-discrete, display 220ms allow-discrete;
    }
    .pa-bio { opacity: 0; transform: translateY(12px) scale(.98); }
    .pa-bio::backdrop { opacity: 0; }
    .pa-bio:popover-open { opacity: 1; transform: none; }
    .pa-bio:popover-open::backdrop { opacity: 1; }
    @starting-style {
        .pa-bio:popover-open { opacity: 0; transform: translateY(12px) scale(.98); }
        .pa-bio:popover-open::backdrop { opacity: 0; }
    }
}

.pa-tier + .pa-tier, .pa-prose > .pa-tier:not(:first-child) { margin-top: 44px; }
.pa-tier .pa-label { margin-bottom: 16px; }
.pa-marks-tier { grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); }
.pa-marks-tier .pa-mark { height: 120px; }
.pa-marks-tier .pa-mark img { max-height: 76px; }
.pa-marks-tier .pa-mark.is-tall img { max-height: 92px; }

.pa-news {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
    gap: 20px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}
.pa-news-item { display: flex; }
.pa-news-item > a {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    border-radius: var(--pa-radius);
    background: var(--pa-mist);
    color: var(--pa-ink);
    text-decoration: none;
    transition: transform 200ms var(--pa-ease-out), box-shadow 200ms var(--pa-ease-out);
}
.pa-news-item > a:active { transform: scale(.99); }
@media (hover: hover) and (pointer: fine) {
    .pa-news-item > a:hover { transform: translateY(-4px); box-shadow: 0 16px 28px -18px rgba(var(--pa-shadow), .45); color: var(--pa-ink); }
}
.pa-news-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.pa-news-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pa-news-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 20px 22px 22px; }
.pa-news-date { color: var(--pa-ink-soft); font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.pa-news-title { color: var(--pa-deep); font-family: var(--pa-display); font-weight: 700; font-size: 24px; line-height: 1.08; text-transform: uppercase; }
.pa-news-teaser { font-size: 16px; line-height: 1.55; }
.pa-news-more { margin-top: auto; padding-top: 6px; color: var(--pa-base-2); font-weight: 600; }

.pa-legal { max-width: 72ch; }
.pa-legal h2 { margin: 40px 0 12px; font-family: var(--pa-display); font-weight: 700; font-size: 28px; line-height: 1.1; text-transform: uppercase; }
.pa-legal h3 { margin: 28px 0 10px; font-family: var(--pa-display); font-weight: 600; font-size: 22px; line-height: 1.15; }
.pa-legal table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: 15px; }
.pa-legal th, .pa-legal td { padding: 10px 12px; border-bottom: 1px solid var(--pa-line); text-align: start; vertical-align: top; }
.pa-legal th { color: var(--pa-deep); }
.pa-prose li { margin-bottom: 6px; }

/* ---------- footer ---------- */

.pa-footer {
    --pa-focus: var(--pa-soft);
    margin-top: clamp(64px, 3rem + 4vw, 112px);
    padding-block: 44px 28px;
    background: var(--pa-deep);
    color: rgba(255, 255, 255, .8);
    font-size: 14px;
}
.pa-footer a, .pa-body .pa-footer a { color: rgba(255, 255, 255, .88); text-decoration: none; }
.pa-footer a:hover, .pa-body .pa-footer a:hover { color: var(--pa-white); text-decoration: underline; text-underline-offset: 3px; }
.pa-footer-top {
    display: grid;
    gap: 24px;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.pa-brand-footer .pa-brand-name { font-size: 16px; }
.pa-footer-nav ul, .pa-footer-social, .pa-footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pa-footer-nav a, .pa-footer-social a, .pa-footer-legal a, .pa-footer-legal button {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
}
.pa-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    padding-top: 22px;
}
.pa-colophon { margin: 0; }
.pa-colophon-sep { margin-inline: 6px; }
.pa-footer-legal button {
    padding: 0;
    border: 0;
    background: none;
    color: rgba(255, 255, 255, .88);
    font: inherit;
    cursor: pointer;
}
.pa-footer-legal button:hover { color: var(--pa-white); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 1024px) {
    .pa-footer-top { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
    .pa-footer-nav ul { justify-content: center; }
}

/* ---------- motion ---------- */

/* Below-the-fold content rises in as it scrolls into view. pis-a.js adds
   .pa-pending only to elements that start out of view, so nothing visible
   at load ever blinks, and nothing is hidden without the script. */
.pa-pending { opacity: 0; transform: translate3d(0, 14px, 0); }
.pa-revealing { transition: opacity 450ms var(--pa-ease-out), transform 450ms var(--pa-ease-out); }

@keyframes pa-rise { from { opacity: 0; transform: translate3d(0, 16px, 0); } }
@keyframes pa-grow { from { opacity: 0; transform: scale(.96); } }
@keyframes pa-fade { from { opacity: 0; } }
@keyframes pa-turn { to { transform: rotate(360deg); } }
@keyframes pa-drift {
    from { transform: translate3d(-3%, 0, 0) rotate(-8deg); }
    to { transform: translate3d(3%, 0, 0) rotate(-6deg); }
}
@keyframes pa-breathe { from { opacity: .55; } to { opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
    .pa-enter { animation: pa-rise 500ms var(--pa-ease-out) both; }
    .pa-enter:nth-child(2) { animation-delay: 60ms; }
    .pa-enter:nth-child(3) { animation-delay: 120ms; }
    .pa-enter:nth-child(4) { animation-delay: 180ms; }
    .pa-emblem.pa-enter { animation-name: pa-grow; animation-delay: 140ms; }

    .pa-rays::before { animation: pa-drift 26s var(--pa-ease-sine) infinite alternate; }
    .pa-rays::after { animation: pa-breathe 9s var(--pa-ease-sine) infinite alternate; }
    .pa-emblem-turn { animation: pa-turn 120s linear infinite; }
}
@media (prefers-reduced-motion: reduce) {
    .pa-enter { animation: pa-fade 200ms ease both; }
    .pa-pending { transform: none; }
    .pa-revealing { transition: opacity 200ms ease; }
}

/* ===================================================================
   Second release (28 Oct): banners, co-branded hero, countdown in the
   hero, the conference collage, partner tiers, the sticky header and more
   motion. Every movement below is again removed under reduced motion.
   =================================================================== */

/* ---------- the header slot and the sticky, compact header ---------- */

/* Holds the bar's place while the bar itself is fixed, so nothing jumps. */
.pa-header-slot { min-height: var(--pa-header-h); }
.pa-header.is-stuck {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 60;
    background: rgba(16, 62, 56, .94);
    box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .6);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
.pa-header.is-stuck .pa-header-bar { min-height: 60px; }
.pa-header.is-stuck .pa-brand-logo { height: 38px; }
.pa-header.is-stuck .pa-pill { min-height: 40px; }
html:has(.pa-header) { scroll-padding-top: 76px; }

/* ---------- banner photographs behind inner pages' green band ---------- */

.pa-banner {
    position: absolute;
    inset: 0;
    z-index: -2;
    overflow: hidden;
    background: var(--pa-deep);
}
.pa-banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    transform-origin: 60% 40%;
}
/* The green wash: deep on the side the title sits, lighter across the photo. */
.pa-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(16, 62, 56, .55) 0%, rgba(16, 62, 56, 0) 30%),
        linear-gradient(90deg, rgba(16, 62, 56, .95) 0%, rgba(16, 62, 56, .82) 45%, rgba(16, 62, 56, .5) 100%);
}
@media (max-width: 767.98px) {
    .pa-banner::after { background: rgba(16, 62, 56, .84); }
}
.pa-top-chrome.pa-top-banner { padding-bottom: clamp(56px, 8vw, 120px); }

/* ---------- the homepage hero: logo, headline lines, countdown ---------- */

.pa-hero-title .pa-line { display: block; }
.pa-hero-title .pa-line-b { color: var(--pa-soft); }
.pa-w {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    padding-bottom: .06em;
    margin-bottom: -.06em;
}
.pa-w > span { display: inline-block; }

.pa-countdown {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 22px;
    max-width: 540px;
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid rgba(228, 238, 232, .2);
}
.pa-count-label {
    flex: 1 0 100%;
    margin: 0;
    color: var(--pa-soft);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.pa-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; margin: 0; }
.pa-count-clock { display: flex; gap: 16px; }
.pa-count-unit { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.pa-count-unit b {
    display: inline-block;
    min-width: 1.1em;
    color: var(--pa-white);
    font-family: var(--pa-display);
    font-weight: 700;
    font-size: 34px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.pa-count-days b { font-size: 52px; font-weight: 800; }
.pa-count-unit > span { color: var(--pa-soft-2); font-size: 14px; }

@media (min-width: 1024px) {
    .pa-hero-copy { grid-column: 1 / span 7; grid-row: 1; }
    .pa-emblem { grid-column: 7 / -1; grid-row: 1; width: min(100%, 560px); justify-self: end; }
}

/* ---------- the anniversary mark: an orbiting light, swaying leaves ---------- */

.pa-emblem-mark { position: relative; width: 60%; height: auto; overflow: visible; }
.pa-orbit { transform-origin: 455.5px 297.8px; }
.pa-leaf-0 { transform-origin: 478.4px 321.6px; }
.pa-leaf-1 { transform-origin: 437.6px 325.0px; }
.pa-leaf-2 { transform-origin: 484.7px 319.7px; }
.pa-leaf-3 { transform-origin: 481.3px 306.9px; }
.pa-leaf-4 { transform-origin: 440.8px 308.9px; }
.pa-leaf-5 { transform-origin: 440.8px 308.0px; }
.pa-leaf-6 { transform-origin: 414.8px 303.6px; }
.pa-leaf-7 { transform-origin: 409.2px 294.8px; }
.pa-leaf-8 { transform-origin: 449.5px 288.5px; }
.pa-leaf-9 { transform-origin: 412.2px 285.7px; }
.pa-leaf-10 { transform-origin: 454.6px 273.7px; }
.pa-leaf-11 { transform-origin: 466.6px 280.2px; }

/* ---------- the conference panel's collage ---------- */

.pa-conf-copy .pa-btn { margin-top: 26px; }
.pa-collage {
    position: relative;
    min-height: 320px;
    margin-inline: 8px;
}
.pa-collage-photo {
    position: absolute;
    margin: 0;
    overflow: hidden;
    border: 6px solid var(--pa-white);
    border-radius: 16px;
    background: var(--pa-mid);
    box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .55);
    transition: transform 300ms var(--pa-ease-out);
}
.pa-collage-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pa-collage-photo-0 { inset: 8% 22% 20% 0; rotate: -3deg; z-index: 2; }
.pa-collage-photo-1 { inset: 0 0 40% 34%; rotate: 4deg; z-index: 1; }
.pa-collage-photo-2 { inset: 52% 2% 0 40%; rotate: -2deg; z-index: 3; }
.pa-collage-1 .pa-collage-photo-0 { inset: 0 6% 16% 0; }
@media (min-width: 1024px) { .pa-collage { min-height: 460px; } }
.pa-conf-more { margin: 16px 0 0; font-size: 15px; }
.pa-conf-more a, .pa-body .pa-conf-more a { color: var(--pa-soft-2); text-decoration: none; }
.pa-conf-more a:hover { color: var(--pa-white); text-decoration: underline; text-underline-offset: 4px; }
/* Phones: one photo and the panel cards in plain flow, nothing overlapping
   the copy and nothing cut off. */
@media (max-width: 639.98px) {
    .pa-collage { display: grid; gap: 8px; min-height: 0; margin-inline: 0; }
    .pa-collage { grid-template-columns: 1fr 1fr; }
    .pa-collage .pa-collage-photo { position: static; translate: none !important; aspect-ratio: 4 / 3; }
    .pa-collage-photo-0 { grid-column: 1 / -1; aspect-ratio: 16 / 10; rotate: -1.5deg; }
    .pa-collage-photo-1 { rotate: 2deg; }
    .pa-collage-photo-2 { rotate: -2deg; }
}

/* ---------- partner tiers ---------- */

.pa-tier-name {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 14px;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.pa-tier-name::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--pa-line);
}
.pa-tier + .pa-tier { margin-top: 32px; }
.pa-tier-rank-0 .pa-marks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pa-tier-rank-0 .pa-mark { height: 132px; }
.pa-tier-rank-0 .pa-mark img { max-height: 92px; }
.pa-tier-rank-1 .pa-mark { height: 116px; }
.pa-tier-rank-1 .pa-mark img { max-height: 76px; }
@media (min-width: 640px) {
    .pa-tier-rank-0 .pa-marks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pa-tier-rank-1 .pa-marks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .pa-tier-rank-0 .pa-marks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pa-tier-rank-0 .pa-mark { height: 156px; }
    .pa-tier-rank-0 .pa-mark img { max-height: 108px; }
    .pa-tier-rank-1 .pa-marks { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
/* Logos keep their own colours (owner, 1 Nov): a card lifts and its logo
   grows a little under the pointer instead of the old grey-to-colour fade. */
@media (hover: hover) and (pointer: fine) {
    .pa-mark { transition: translate 220ms var(--pa-ease-out), box-shadow 220ms ease, background-color 220ms ease; }
    .pa-mark:hover { translate: 0 -4px; background-color: var(--pa-white); box-shadow: 0 16px 32px -20px rgba(16, 62, 56, .5); }
    .pa-mark img { transition: scale 260ms var(--pa-ease-out); }
    .pa-mark:hover img { scale: 1.05; }
}
@media (prefers-reduced-motion: reduce) {
    .pa-mark, .pa-mark img { transition: none; }
    .pa-mark:hover { translate: none; }
    .pa-mark:hover img { scale: none; }
}

/* ---------- rules that draw themselves ---------- */

.pa-section-head { position: relative; padding-bottom: 18px; }
.pa-section-head::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 1px;
    background: var(--pa-line);
    transform-origin: left center;
}
.pa-prose .pis-rule-head { position: relative; border-top: 0; }
.pa-prose .pis-rule-head::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 2px;
    background: var(--pa-base-2);
    transform-origin: left center;
}
.pa-section-head.pa-undrawn::after, .pa-prose .pis-rule-head.pa-undrawn::before { transform: scaleX(0); }
.pa-section-head.pa-drawing::after, .pa-prose .pis-rule-head.pa-drawing::before { transition: transform 800ms var(--pa-ease-out); }

/* ---------- footer logos ---------- */

.pa-footer-logos { display: flex; align-items: center; gap: 18px; }
.pa-footer-logo img { display: block; width: auto; height: 52px; }
.pa-footer-logo-technopark img { height: 60px; }
.pa-footer-logos .pa-footer-logo + .pa-footer-logo { padding-inline-start: 18px; border-inline-start: 1px solid rgba(255, 255, 255, .2); }

/* ---------- motion for this release ---------- */

@keyframes pa-word { from { transform: translate3d(0, 108%, 0); } }
@keyframes pa-kenburns {
    from { transform: scale(1.03); }
    to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
}
@keyframes pa-leaf-sway { from { transform: rotate(-4deg); } to { transform: rotate(4deg); } }
@keyframes pa-drop { from { transform: translate3d(0, -100%, 0); } }

@media (prefers-reduced-motion: no-preference) {
    .pa-w > span { animation: pa-word 650ms var(--pa-ease-out) both; }
    .pa-line-a .pa-w:nth-child(1) > span { animation-delay: 80ms; }
    .pa-line-a .pa-w:nth-child(2) > span { animation-delay: 150ms; }
    .pa-line-a .pa-w:nth-child(3) > span { animation-delay: 220ms; }
    .pa-line-a .pa-w:nth-child(n+4) > span { animation-delay: 290ms; }
    .pa-line-b .pa-w:nth-child(1) > span { animation-delay: 330ms; }
    .pa-line-b .pa-w:nth-child(2) > span { animation-delay: 400ms; }
    .pa-line-b .pa-w:nth-child(n+3) > span { animation-delay: 470ms; }
    .pa-hero-copy > .pa-enter:nth-child(3) { animation-delay: 300ms; }
    .pa-hero-copy > .pa-enter:nth-child(4) { animation-delay: 380ms; }
    .pa-hero-copy > .pa-enter:nth-child(5) { animation-delay: 460ms; }

    .pa-banner img { animation: pa-kenburns 26s var(--pa-ease-sine) infinite alternate; }
    .pa-orbit { animation: pa-turn 16s linear infinite; }
    .pa-leaf { animation: pa-leaf-sway 5s var(--pa-ease-sine) infinite alternate; }
    .pa-leaf-1, .pa-leaf-5, .pa-leaf-9 { animation-duration: 6.2s; animation-delay: -1.4s; }
    .pa-leaf-2, .pa-leaf-6, .pa-leaf-10 { animation-duration: 4.4s; animation-delay: -2.6s; }
    .pa-leaf-3, .pa-leaf-7, .pa-leaf-11 { animation-duration: 5.6s; animation-delay: -3.3s; }
    .pa-header.is-stuck { animation: pa-drop 300ms var(--pa-ease-out); }
}
@media (prefers-reduced-motion: reduce) {
    .pa-section-head.pa-undrawn::after, .pa-prose .pis-rule-head.pa-undrawn::before { transform: none; }
}

/* ---------- pasted bodies stay in the design ---------- */

/* A page added in Control can carry inline fonts, sizes and colours pasted
   from a word processor. Inside a 2026 body they give way to the design's
   own; images, tables and embeds never run wider than the column. */
/* Elements carrying the site's own pis-* classes are the summit's designed
   bodies and keep what they set. */
.pa-prose [style*="font-family"]:not([class*="pis-"]), .pa-prose font[face] { font-family: inherit !important; }
.pa-prose [style*="font-size"]:not([class*="pis-"]), .pa-prose font[size] { font-size: inherit !important; }
.pa-prose [style*="color"]:not([class*="pis-"]), .pa-prose font[color] { color: inherit !important; }
.pa-prose [style*="background"]:not([class*="pis-"]) { background: none !important; }
.pa-prose img { max-width: 100%; height: auto; }
.pa-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.pa-prose iframe, .pa-prose video, .pa-prose embed { max-width: 100%; }
.pa-prose iframe[src*="youtube"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* Logo grids sit inside .pa-prose on the Partners page, whose 68ch list width
 * is for text; it squeezed the grid until wide logos spilled out of their cells. */
.pa-prose ul.pa-marks { max-width: none; padding: 0; margin-left: 0; list-style: none; }
.pa-mark { min-width: 0; overflow: hidden; }
.pa-mark img { max-width: 100%; height: auto; }
/* A cell holding several logos shares its width between them instead of 44% each. */
.pa-mark-cluster img { flex: 1 1 0; min-width: 0; max-width: none; object-fit: contain; }

/* ---------- a rest day (a holiday) on the week ---------- */

.pa-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.pa-day.is-rest, .pa-body a.pa-day.is-rest {
    background: var(--pa-white);
    box-shadow: inset 0 0 0 1px var(--pa-line);
    color: var(--pa-ink-soft);
}
.pa-day.is-rest .pa-day-num { color: var(--pa-ray); }
.pa-day-leaf { width: 30px; height: 30px; fill: var(--pa-soft); }
.pa-day.is-rest .pa-day-tba { color: var(--pa-ink-soft); font-weight: 600; }
@media (min-width: 640px) { .pa-day-leaf { margin-top: auto; } .pa-day.is-rest .pa-day-tba { margin-top: 6px; } }
@media (max-width: 639.98px) { .pa-day-leaf { display: none; } }
.pa-day-rest { font-weight: 600; }

/* ---------- the Agenda page ---------- */

.pa-anchor { display: block; position: relative; top: -24px; }
.pa-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* The day bar sticks under the compact header. */
.pa-agenda-bar {
    position: sticky;
    top: 60px;
    z-index: 20;
    margin: 0 calc(-1 * var(--pa-gutter)) 8px;
    padding: 12px var(--pa-gutter);
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--pa-line);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.pa-agenda-days {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 0 0 4px;
    list-style: none;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}
.pa-agenda-days li { flex: 1 0 76px; scroll-snap-align: start; }
.pa-agenda-day {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2px;
    height: 100%;
    padding: 10px 12px;
    border-radius: var(--pa-radius-sm);
    background: var(--pa-mist);
    color: var(--pa-deep);
    text-decoration: none;
    transition: transform 150ms var(--pa-ease-out), background-color 200ms ease, color 200ms ease;
}
.pa-body a.pa-agenda-day { color: var(--pa-deep); }
.pa-agenda-day .pa-day-num { font-size: 34px; }
.pa-agenda-day.is-main { box-shadow: inset 0 0 0 2px var(--pa-ray); }
.pa-agenda-day.is-rest { background: var(--pa-white); box-shadow: inset 0 0 0 1px var(--pa-line); }
.pa-agenda-day.is-rest .pa-day-num { color: var(--pa-ray); }
.pa-agenda-day-tag { color: var(--pa-ink-soft); font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.pa-agenda-day[aria-current="true"], .pa-body a.pa-agenda-day[aria-current="true"] { background: var(--pa-deep); color: var(--pa-white); }
.pa-agenda-day[aria-current="true"] .pa-day-dow, .pa-agenda-day[aria-current="true"] .pa-agenda-day-tag { color: var(--pa-soft); }
.pa-agenda-day:active { transform: scale(.97); }

.pa-agenda-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 10px; }
.pa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-chip {
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--pa-line);
    border-radius: 999px;
    background: var(--pa-white);
    color: var(--pa-deep);
    font: 600 14px/1 var(--pa-text);
    cursor: pointer;
    transition: transform 150ms var(--pa-ease-out), background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.pa-chip:hover { border-color: var(--pa-ray); }
.pa-chip:active { transform: scale(.97); }
.pa-chip[aria-pressed="true"] { border-color: var(--pa-deep); background: var(--pa-deep); color: var(--pa-white); }
.pa-select {
    min-height: 36px;
    max-width: 100%;
    padding: 0 34px 0 14px;
    border: 1px solid var(--pa-line);
    border-radius: 999px;
    background: var(--pa-white);
    color: var(--pa-deep);
    font: 600 14px/1 var(--pa-text);
}

.pa-agenda-dayblock { padding-top: 36px; scroll-margin-top: 220px; }
.pa-agenda-date {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin: 0 0 18px;
    font-family: var(--pa-display);
    font-weight: 800;
    font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.4rem);
    line-height: 1;
    text-transform: uppercase;
}
.pa-agenda-badge {
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--pa-deep);
    color: var(--pa-white);
    font-family: var(--pa-text);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .14em;
}
/* The conference day's badge links to the full programme page. */
a.pa-agenda-badge { color: var(--pa-white); text-decoration: none; }
a.pa-agenda-badge:hover { color: var(--pa-white); text-decoration: underline; text-underline-offset: 3px; }
.pa-agenda-dayblock.is-main .pa-session-card { border-color: var(--pa-ray); }

/* A timeline: the time on the left, a dot on the line, the card. */
.pa-session { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 0 18px; position: relative; }
/* A session a link points at (#session-N): clear of the sticky header and day bar, and marked. */
.pa-session, .pis-slot { scroll-margin-top: 160px; }
.pa-session.pa-linked .pa-session-card, .pis-slot.pa-linked { box-shadow: 0 0 0 2px var(--pa-ray); border-radius: 12px; }
.pa-session::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    inset-inline-start: 87px;
    width: 1px;
    background: var(--pa-line);
}
.pa-session-time { padding-top: 18px; text-align: end; font-variant-numeric: tabular-nums; }
.pa-session-time b { display: block; color: var(--pa-deep); font-family: var(--pa-display); font-weight: 700; font-size: 20px; line-height: 1; }
.pa-session-time span { display: block; margin-top: 4px; color: var(--pa-ink-soft); font-size: 13px; }
.pa-session-card {
    position: relative;
    margin: 0 0 12px;
    padding: 16px 20px;
    border: 1px solid var(--pa-line);
    border-radius: var(--pa-radius);
    background: var(--pa-white);
    transition: transform 200ms var(--pa-ease-out), box-shadow 200ms var(--pa-ease-out);
}
.pa-session-card::before {
    content: "";
    position: absolute;
    top: 22px;
    inset-inline-start: -14px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--pa-ray);
    box-shadow: 0 0 0 3px var(--pa-white);
}
.pa-session-card h3 {
    margin: 0;
    color: var(--pa-deep);
    font-family: var(--pa-display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.1;
    text-transform: uppercase;
}
.pa-session-meta { margin: 6px 0 0; color: var(--pa-ink-soft); font-size: 15px; }
.pa-session-access {
    display: inline-block;
    margin-top: 10px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--pa-mist);
    color: var(--pa-deep);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.pa-session-access.pa-access-registration { background: var(--pa-leaf); }
.pa-session-access.pa-access-invitation { background: var(--pa-deep); color: var(--pa-white); }
.pa-session-more summary { margin-top: 10px; color: var(--pa-base-2); font-weight: 600; cursor: pointer; }
.pa-session-body { margin-top: 8px; font-size: 16px; }
.pa-prose .pa-session-card > p, .pa-prose .pa-session-body :is(p, ul, ol) { max-width: none; }
.pa-session-card .pa-arrow-link { margin-top: 4px; }
@media (hover: hover) and (pointer: fine) {
    .pa-session-card:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -20px rgba(var(--pa-shadow), .5); }
}
.pa-agenda-nomatch { color: var(--pa-ink-soft); }
@media (max-width: 639.98px) {
    .pa-session { grid-template-columns: minmax(0, 1fr); }
    .pa-session::before, .pa-session-card::before { display: none; }
    .pa-session-time { display: flex; gap: 8px; align-items: baseline; padding-top: 6px; text-align: start; }
    .pa-session-time span { margin: 0; }
    .pa-session-time span::before { content: "– "; }
}
@media (prefers-reduced-motion: no-preference) {
    .pa-session-more[open] .pa-session-body { animation: pa-rise 300ms var(--pa-ease-out); }
}

/* ---------- supporting colours: grounds, tints, highlights ---------- */

/* Homepage grounds run green (hero) / sand (the week) / white (the
   conference card on it) / green tint (partners) / green (footer), so no
   two neighbours share one. */
.pa-is-home .pa-week {
    max-width: none;
    padding-inline: max(var(--pa-gutter), calc((100% - var(--pa-shell)) / 2));
    background: var(--pa-sand);
    box-shadow: inset 0 1px 0 var(--pa-sand-2), inset 0 -1px 0 var(--pa-sand-2);
}
.pa-is-home .pa-conf { padding-top: clamp(48px, 2rem + 3vw, 80px); }
.pa-is-home .pa-partners {
    max-width: none;
    margin-top: clamp(56px, 3rem + 2vw, 80px);
    padding-block: clamp(48px, 3rem + 2vw, 72px);
    padding-inline: max(var(--pa-gutter), calc((100% - var(--pa-shell)) / 2));
    border-top: 1px solid var(--pa-mist);
}
.pa-is-home .pa-footer { margin-top: 0; }
.pa-is-home .pa-week .pa-section-head::after { background: var(--pa-sand-2); }

/* Each day its own tint; the conference day stays deep green with a maroon
   rule, the rest day white. Text on every tint is --pa-deep (over 9:1). */
.pa-day-slot:nth-child(7n+2) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-white); }
.pa-day-slot:nth-child(7n+3) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-blue-tint); }
.pa-day-slot:nth-child(7n+4) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-sand-2); }
.pa-day-slot:nth-child(7n+5) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-teal-tint); }
.pa-day-slot:nth-child(7n+6) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-leaf); }
.pa-day-slot:nth-child(7n+7) .pa-day:not(.is-main):not(.is-rest) { background: var(--pa-maroon-tint); }
.pa-day.is-main { box-shadow: inset 0 4px 0 var(--pa-maroon); }
.pa-day-slot:nth-child(7n+3) .pa-day:not(.is-main) .pa-day-dow { color: var(--pa-blue); }

/* Register: maroon on hover, the summit's own red. */
.pa-pill:hover, .pa-top .pa-pill:hover, .pa-btn-light:hover, .pa-top .pa-btn-light:hover, .pa-conf-card .pa-btn-light:hover {
    background: var(--pa-maroon);
    color: var(--pa-white);
}

/* Partner tiers: each its own label colour and tile ground. */
.pa-tier-rank-0 .pa-tier-name { color: var(--pa-maroon); }
.pa-tier-rank-0 .pa-tier-name::after { background: var(--pa-maroon-tint); }
.pa-tier-rank-1 .pa-tier-name { color: var(--pa-blue); }
.pa-tier-rank-1 .pa-tier-name::after { background: var(--pa-blue-tint); }
.pa-tier-rank-2 .pa-tier-name { color: var(--pa-teal); }
.pa-tier-rank-0 .pa-mark { background: var(--pa-sand); }
.pa-tier-rank-1 .pa-mark { background: var(--pa-blue-tint); }

/* The conference day on the Agenda page carries the maroon too. */
.pa-agenda-badge { background: var(--pa-maroon); }
.pa-agenda-day.is-main { box-shadow: inset 0 3px 0 var(--pa-maroon), inset 0 0 0 1px var(--pa-line); }

/* Inner-page cards cycle the tints, so a body of objectives is not one block of green. */
.pa-prose .pis-obj:nth-child(4n+2), .pa-prose .pis-card:nth-child(4n+2) { background: var(--pa-sand); }
.pa-prose .pis-obj:nth-child(4n+3), .pa-prose .pis-card:nth-child(4n+3) { background: var(--pa-blue-tint); }
.pa-prose .pis-obj:nth-child(4n+4), .pa-prose .pis-card:nth-child(4n+4) { background: var(--pa-teal-tint); }
.pa-prose .pis-obj:nth-child(4n+3) .n, .pa-prose .pis-card:nth-child(4n+3) .n { color: var(--pa-blue); }
.pa-prose .pis-fact:nth-child(3n+2), .pa-prose .pis-conf-at-i:nth-child(3n+2) { background: var(--pa-sand); }
.pa-prose .pis-fact:nth-child(3n+3), .pa-prose .pis-conf-at-i:nth-child(3n+3) { background: var(--pa-blue-tint); }
.pa-prose .pis-outs li::before, .pa-prose .pis-list li::before { background: var(--pa-maroon); }
.pa-session-access.pa-access-registration { background: var(--pa-blue-tint); color: var(--pa-blue); }
.pa-session-access.pa-access-public { background: var(--pa-teal-tint); }

.pa-prose .pa-agenda-days { max-width: none; }
.pa-agenda-days li { flex: 1 0 76px; }

/* ---------- header: log in link and the attendee's menu ---------- */

.pa-header-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 6px;
    color: var(--pa-white);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    white-space: nowrap;
    text-underline-offset: 6px;
}
.pa-header-link:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.pa-account { position: relative; }
.pa-account > summary { list-style: none; cursor: pointer; gap: 10px; }
.pa-account > summary::-webkit-details-marker { display: none; }
.pa-account-name { max-width: 14ch; overflow: hidden; text-overflow: ellipsis; }
.pa-account-caret {
    width: 8px;
    height: 8px;
    border-inline-end: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    rotate: 45deg;
    translate: 0 -2px;
    transition: rotate 200ms var(--pa-ease-out);
}
.pa-account[open] .pa-account-caret { rotate: -135deg; translate: 0 2px; }
.pa-account-menu {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + 8px);
    z-index: 30;
    min-width: 190px;
    padding: 6px;
    border-radius: 14px;
    background: var(--pa-white);
    box-shadow: 0 18px 40px -12px rgba(16, 62, 56, .35);
    display: grid;
    gap: 2px;
}
.pa-account-item {
    display: block;
    padding: 11px 14px;
    border-radius: 10px;
    color: var(--pa-deep);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
}
.pa-account-item:hover, .pa-account-item:focus-visible { background: var(--pa-mist, #eef5f1); outline: none; }
.pa-account-out { border-top: 1px solid rgba(16, 62, 56, .1); border-radius: 0 0 10px 10px; margin-top: 2px; }
/* Sign out is a form button (a GET link could be fired from another site): same look as the links. */
button.pa-account-item { width: 100%; border: 0; background: transparent; font-family: inherit; text-align: start; cursor: pointer; }
button.pa-account-out { border-top: 1px solid rgba(16, 62, 56, .1); }
@media (max-width: 379.98px) { .pa-header-link { display: none; } }
@media (prefers-reduced-motion: reduce) { .pa-account-caret { transition: none; } }

/* ---------- partners: the first two tiers side by side, wide cluster cards ---------- */

@media (min-width: 768px) {
    .pa-tier-pair {
        display: grid;
        grid-template-columns: var(--pa-pair-cols);
        gap: 24px;
        align-items: start;
    }
    .pa-tier-pair > .pa-tier { margin-top: 0; }
    .pa-tier-pair .pa-marks { grid-template-columns: repeat(var(--pa-n), minmax(0, 1fr)); }
    .pa-tier-pair .pa-mark { height: 150px; }
    .pa-tier-pair .pa-mark img { max-height: 100px; }
    .pa-tier-pair + .pa-tier { margin-top: 44px; }
}
@media (min-width: 640px) {
    .pa-marks-tier .pa-mark-cluster.pa-span-2,
    .pa-marks-tier .pa-mark-cluster.pa-span-3 { grid-column: span 2; }
}
@media (min-width: 1024px) {
    .pa-marks-tier .pa-mark-cluster.pa-span-3 { grid-column: span 3; }
}
.pa-mark-cluster { display: flex; align-items: center; justify-content: space-evenly; gap: 18px; }
.pa-marks-tier .pa-mark-cluster img { max-height: 76px; }

/* Delegation objectives and Celebration sections read without numbers (owner, 1 Nov). */
.pa-section-delegation .pis-obj > .n,
.pa-section-delegation .pis-rule-head > .n,
.pa-section-celebration .pis-rule-head > .n { display: none; }

/* The week strip shows dates only (owner, 1 Nov): compact tiles. */
.pa-week .pa-day { min-height: 0; justify-content: center; padding: 18px; }

/* The Conference page reads without counters too (owner, 1 Nov): the panel titles stay. */
.pa-section-conference .pis-obj > .n,
.pa-section-conference .pis-rule-head > .n { display: none; }

/* The contact page's map (Control > Pages, Contact body): OpenStreetMap,
   which sets no tracking cookies, with a link out to Google Maps. */
.pa-prose .pis-map { margin: 32px 0 0; }
.pa-prose .pis-map iframe { display: block; width: 100%; aspect-ratio: 16 / 9; min-height: 260px; border: 0; border-radius: var(--pa-radius); background: var(--pa-mist); }
.pa-prose .pis-map p { margin: 10px 0 0; font-size: 15px; }
