diff --git a/.github/workflows/update-search-index.yml b/.github/workflows/update-search-index.yml
new file mode 100644
index 0000000..a76b6c6
--- /dev/null
+++ b/.github/workflows/update-search-index.yml
@@ -0,0 +1,47 @@
+name: Update search index
+
+on:
+ push:
+ paths:
+ - "index.html"
+ - "html/**"
+ - "data/events.json"
+ - "data/news.json"
+ - "scripts/build-search-index.mjs"
+
+permissions:
+ contents: write
+
+concurrency:
+ group: search-index-${{ github.ref }}
+ cancel-in-progress: false
+
+jobs:
+ update-search-index:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+
+ - name: Rebuild search index
+ run: npm run build:search
+
+ - name: Commit updated search index
+ run: |
+ if git diff --quiet -- data/search-index.json; then
+ echo "Search index is already current."
+ exit 0
+ fi
+
+ git config user.name "github-actions[bot]"
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git add data/search-index.json
+ git commit -m "chore: update search index"
+ git push origin "HEAD:${GITHUB_REF_NAME}"
diff --git a/.github/workflows/validate-events.yml b/.github/workflows/validate-events.yml
index b01649d..008f3aa 100644
--- a/.github/workflows/validate-events.yml
+++ b/.github/workflows/validate-events.yml
@@ -5,7 +5,7 @@ on:
paths:
- "data/events.json"
- "html/events/**"
- - "events images/**"
+ - "images/events-images/**"
- "package.json"
- "scripts/validate-events.mjs"
- ".github/workflows/validate-events.yml"
@@ -13,7 +13,7 @@ on:
paths:
- "data/events.json"
- "html/events/**"
- - "events images/**"
+ - "images/events-images/**"
- "package.json"
- "scripts/validate-events.mjs"
- ".github/workflows/validate-events.yml"
diff --git a/css/conference.css b/css/conference.css
new file mode 100644
index 0000000..6cf898b
--- /dev/null
+++ b/css/conference.css
@@ -0,0 +1,761 @@
+.conference-page {
+ --conference-teal: #0d5d6b;
+ --conference-navy: #00263e;
+ --conference-hero-bg: #fbfbfb;
+ --conference-placeholder: #e8e6e6;
+}
+
+.conference-page main {
+ overflow: hidden;
+}
+
+.conference-hero {
+ position: relative;
+ width: 100%;
+ min-height: clamp(590px, calc(100vh - 126px), 760px);
+ overflow: hidden;
+ background: var(--conference-hero-bg);
+}
+
+.conference-hero__inner {
+ position: relative;
+ z-index: 2;
+ width: min(1140px, calc(100% - 4rem));
+ min-height: inherit;
+ margin: 0 auto;
+}
+
+.conference-hero h1 {
+ position: absolute;
+ top: 46.5%;
+ left: 0;
+ z-index: 2;
+ margin: 0;
+ transform: translateY(-50%);
+ color: var(--conference-navy);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(4.5rem, 7vw, 6.3rem);
+ font-weight: 700;
+ letter-spacing: -0.045em;
+ line-height: 1.08;
+}
+
+.conference-hero__images {
+ position: absolute;
+ top: 50%;
+ right: -6px;
+ width: 458px;
+ height: 492px;
+ transform: translateY(-50%);
+}
+
+.conference-hero__image {
+ position: absolute;
+ display: block;
+ overflow: hidden;
+ background-color: var(--conference-placeholder);
+ background-image:
+ linear-gradient(to top right, transparent 49.7%, #d2d0d0 50%, transparent 50.3%),
+ linear-gradient(to bottom right, transparent 49.7%, #d2d0d0 50%, transparent 50.3%);
+}
+
+.conference-hero__image::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 20px;
+ height: 16px;
+ transform: translate(-50%, -50%);
+ border: 3px solid #b4b2b2;
+ border-radius: 5px;
+ background:
+ radial-gradient(circle at 72% 28%, #b4b2b2 0 2px, transparent 2.5px),
+ linear-gradient(140deg, transparent 43%, #b4b2b2 44% 52%, transparent 53%) bottom / 100% 72% no-repeat;
+}
+
+.conference-hero__image--photo {
+ background-image: none;
+}
+
+.conference-hero__image--photo::after {
+ display: none;
+}
+
+.conference-hero__image--photo img {
+ width: 100%;
+ height: 100%;
+ display: block;
+ object-fit: cover;
+ object-position: center;
+}
+
+.conference-hero__image--large {
+ top: 0;
+ left: 0;
+ width: 300px;
+ height: 241px;
+}
+
+.conference-hero__image--wide {
+ top: 137px;
+ right: 0;
+ z-index: 2;
+ width: 234px;
+ height: 209px;
+}
+
+.conference-hero__image--small {
+ top: 307px;
+ left: 11px;
+ z-index: 3;
+ width: 214px;
+ height: 173px;
+}
+
+.conference-hero__corner {
+ position: absolute;
+ z-index: 1;
+ display: block;
+ width: clamp(220px, 20vw, 276px);
+ aspect-ratio: 1;
+ overflow: hidden;
+ background: var(--conference-teal);
+}
+
+.conference-hero__corner::after {
+ content: '';
+ position: absolute;
+ width: 128%;
+ aspect-ratio: 1;
+ border-radius: 50%;
+ background: var(--conference-hero-bg);
+}
+
+.conference-hero__corner--top {
+ top: 0;
+ left: 0;
+}
+
+.conference-hero__corner--top::after {
+ right: -64%;
+ bottom: -64%;
+}
+
+.conference-hero__corner--bottom {
+ right: 0;
+ bottom: 0;
+ width: clamp(220px, 20vw, 285px);
+}
+
+.conference-hero__corner--bottom::after {
+ top: -64%;
+ left: -64%;
+}
+
+.conference-feature-grid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ width: 100%;
+ margin-top: 0;
+}
+
+.conference-feature-grid__card {
+ position: relative;
+ display: block;
+ width: 100%;
+ aspect-ratio: 359.35 / 512.35;
+ padding: clamp(1.5rem, 2.5vw, 2.5rem);
+ background: #676767;
+ color: #ffffff;
+ transition: filter 160ms ease;
+}
+
+.conference-feature-grid__card:nth-child(2) {
+ background: var(--conference-teal);
+}
+
+.conference-feature-grid__card:nth-child(3) {
+ background: #d9d9d9;
+ color: var(--conference-navy);
+}
+
+.conference-feature-grid__card:hover {
+ filter: brightness(0.9);
+}
+
+.conference-feature-grid__card:focus-visible {
+ z-index: 2;
+ outline: 4px solid var(--site-accent);
+ outline-offset: -4px;
+}
+
+.conference-feature-grid__label {
+ font-size: 0.9rem;
+ font-weight: 700;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+}
+
+.conference-feature-grid__label::after {
+ content: '\2197';
+ margin-left: 0.5rem;
+ font-size: 1.15em;
+}
+
+.conference-feature-grid__content {
+ position: absolute;
+ right: clamp(1.5rem, 2.5vw, 2.5rem);
+ bottom: clamp(1.5rem, 2.5vw, 2.5rem);
+ left: clamp(1.5rem, 2.5vw, 2.5rem);
+ display: grid;
+ gap: 0.75rem;
+}
+
+.conference-feature-grid__content strong {
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.7rem, 2.6vw, 2.6rem);
+ line-height: 1.05;
+}
+
+.conference-feature-grid__content > span {
+ max-width: 25ch;
+ font-size: clamp(1rem, 1.35vw, 1.2rem);
+ line-height: 1.35;
+}
+
+.conference-content {
+ width: min(1100px, calc(100% - 4rem));
+ margin: 0 auto;
+ padding: 4rem 0 6rem;
+}
+
+.conference-content > section,
+.conference-content > nav {
+ margin-bottom: 3rem;
+}
+
+.conference-content h2 {
+ margin: 0 0 1.25rem;
+ color: var(--conference-navy);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.6rem, 3vw, 2.35rem);
+ line-height: 1.15;
+}
+
+.conference-content > section,
+.conference-content > nav {
+ padding: 2rem 0;
+ background: #ffffff;
+ border-top: 1px solid rgba(13, 93, 107, 0.2);
+}
+
+.conference-content ul {
+ margin: 0;
+ padding-left: 1.25rem;
+}
+
+.conference-content li {
+ font-size: 1.08rem;
+ line-height: 1.6;
+}
+
+.conference-content li + li {
+ margin-top: 0.6rem;
+}
+
+.conference-content nav ul {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 0.75rem 2rem;
+ padding: 0;
+ list-style: none;
+}
+
+.conference-content a {
+ color: var(--conference-teal);
+ font-weight: 700;
+ text-decoration: underline;
+ text-underline-offset: 0.18em;
+}
+
+.conference-content a:hover {
+ color: var(--conference-navy);
+}
+
+.conference-content a:focus-visible {
+ outline: 3px solid var(--site-accent);
+ outline-offset: 4px;
+}
+
+@media (max-width: 1080px) {
+ .conference-hero__inner {
+ width: min(850px, calc(100% - 4rem));
+ }
+
+ .conference-hero h1 {
+ font-size: clamp(4rem, 8vw, 5.4rem);
+ }
+
+ .conference-hero__images {
+ right: -2rem;
+ transform: translateY(-50%) scale(0.8);
+ transform-origin: center right;
+ }
+}
+
+@media (max-width: 780px) {
+ .conference-hero {
+ min-height: 720px;
+ }
+
+ .conference-hero__inner {
+ width: min(560px, calc(100% - var(--site-page-inset)));
+ }
+
+ .conference-hero h1 {
+ top: 210px;
+ left: 50%;
+ width: 100%;
+ transform: translateX(-50%);
+ font-size: clamp(3.4rem, 12vw, 5rem);
+ text-align: center;
+ }
+
+ .conference-hero__images {
+ top: auto;
+ right: 50%;
+ bottom: 25px;
+ transform: translateX(50%) scale(0.72);
+ transform-origin: bottom center;
+ }
+
+ .conference-hero__corner {
+ width: 190px;
+ }
+
+ .conference-content {
+ width: min(680px, calc(100% - var(--site-page-inset)));
+ padding-top: 3rem;
+ }
+
+ .conference-content nav ul {
+ grid-template-columns: 1fr;
+ }
+
+ .conference-feature-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+}
+
+@media (max-width: 520px) {
+ .conference-feature-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .conference-content {
+ width: min(680px, calc(100% - var(--site-page-inset)));
+ padding-top: 2.25rem;
+ }
+
+ .conference-content > nav {
+ margin-bottom: 1.75rem;
+ }
+
+ .conference-content img {
+ width: auto;
+ max-width: 100%;
+ max-height: min(62vh, 28rem);
+ margin-inline: auto;
+ object-fit: contain;
+ }
+
+ .conference-hero {
+ min-height: 560px;
+ }
+
+ .conference-hero h1 {
+ top: 112px;
+ font-size: clamp(2.65rem, 13vw, 3.3rem);
+ line-height: 1.02;
+ }
+
+ .conference-hero__images {
+ bottom: 14px;
+ transform: translateX(50%) scale(0.58);
+ }
+
+ .conference-hero__corner {
+ width: 112px;
+ }
+}
+
+@media (max-width: 360px) {
+ .conference-hero {
+ min-height: 530px;
+ }
+
+ .conference-hero h1 {
+ top: 100px;
+ font-size: clamp(2.4rem, 13vw, 2.85rem);
+ }
+
+ .conference-hero__images {
+ bottom: 10px;
+ transform: translateX(50%) scale(0.52);
+ }
+
+ .conference-hero__corner {
+ width: 100px;
+ }
+}
+
+/* Conference interior pages */
+
+.conference-detail-page {
+ --conference-teal: #0d5d6b;
+ --conference-navy: #00263e;
+ --conference-panel: #ffffff;
+ --conference-wash: #ffffff;
+ --conference-line: rgba(13, 93, 107, 0.2);
+ background: #ffffff;
+}
+
+.conference-detail-page main {
+ width: min(920px, calc(100% - 4rem));
+ min-height: 70vh;
+ margin: 0 auto;
+ padding: clamp(3rem, 7vw, 6rem) 0 clamp(4rem, 8vw, 7rem);
+}
+
+.conference-detail-page main > p:first-child {
+ margin: 0 0 1.5rem;
+ color: var(--conference-teal);
+ font-size: 0.98rem;
+ font-weight: 600;
+}
+
+.conference-detail-page main > p:first-child a {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.55rem;
+ text-decoration: none;
+}
+
+.conference-detail-page main > p:first-child a::before {
+ content: '\2190';
+ font-size: 1.15em;
+}
+
+.conference-detail-page main > h1 {
+ position: relative;
+ max-width: 13ch;
+ margin: 0 0 clamp(2.5rem, 5vw, 3.5rem);
+ padding-bottom: 1rem;
+ color: var(--conference-navy);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.75rem, 6vw, 4.4rem);
+ font-weight: 700;
+ letter-spacing: -0.03em;
+ line-height: 1.02;
+}
+
+.conference-detail-page main > h1::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 3.5rem;
+ height: 3px;
+ background: var(--conference-teal);
+}
+
+.conference-detail-page main > h1 + p:not(:first-child) {
+ max-width: 42rem;
+ margin: -2.25rem 0 3rem;
+ color: var(--site-text-muted);
+ font-size: clamp(1.15rem, 2vw, 1.4rem);
+ line-height: 1.5;
+}
+
+.conference-detail-page main > section,
+.conference-detail-page main > nav > article {
+ margin: 0;
+ padding: 2rem 0;
+ background: transparent;
+ border: 0;
+ border-top: 1px solid var(--conference-line);
+}
+
+.conference-detail-page main h2,
+.conference-detail-page main h3 {
+ color: var(--conference-navy);
+ font-family: 'Figtree', sans-serif;
+ line-height: 1.2;
+}
+
+.conference-detail-page main h2 {
+ margin: 0 0 1.1rem;
+ font-size: clamp(1.45rem, 2.6vw, 1.9rem);
+}
+
+.conference-detail-page main h3 {
+ margin: 0;
+ font-size: clamp(1.2rem, 2.3vw, 1.55rem);
+}
+
+.conference-detail-page main p,
+.conference-detail-page main li,
+.conference-detail-page main figcaption {
+ font-size: 1.08rem;
+ line-height: 1.68;
+}
+
+.conference-detail-page main section p {
+ max-width: 75ch;
+ margin: 0.75rem 0 0;
+}
+
+.conference-detail-page main ul {
+ margin: 1.25rem 0 0;
+ padding-left: 1.35rem;
+}
+
+.conference-detail-page main li + li {
+ margin-top: 0.7rem;
+}
+
+.conference-detail-page main a {
+ color: var(--conference-teal);
+ font-weight: 700;
+ text-decoration: underline;
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.18em;
+ overflow-wrap: anywhere;
+}
+
+.conference-detail-page main a:hover {
+ color: #073f49;
+ text-decoration-thickness: 2px;
+}
+
+.conference-detail-page main a:focus-visible {
+ outline: 3px solid var(--site-accent);
+ outline-offset: 4px;
+}
+
+.conference-detail-page figure {
+ min-width: 0;
+ margin: 1.5rem 0 0;
+ padding: 0;
+ background: transparent;
+ border: 0;
+}
+
+.conference-detail-page figcaption {
+ margin-bottom: 0.8rem;
+ color: var(--conference-navy);
+}
+
+.conference-detail-page iframe {
+ width: 100%;
+ height: clamp(300px, 42vw, 450px);
+ display: block;
+ border: 0;
+}
+
+/* Accommodations */
+
+.conference-accommodations-page #hotel-accommodations {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1.25rem;
+}
+
+.conference-accommodations-page #hotel-accommodations > h2,
+.conference-accommodations-page #hotel-accommodations > p {
+ grid-column: 1 / -1;
+}
+
+.conference-accommodations-page #hotel-accommodations figure {
+ margin-top: 0.5rem;
+}
+
+.conference-accommodations-page #hotel-accommodations iframe {
+ height: clamp(280px, 30vw, 390px);
+}
+
+/* Conference resource hub */
+
+.conference-resources-page main > nav {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 0 3rem;
+ margin-top: 0;
+ border-bottom: 1px solid var(--conference-line);
+}
+
+.conference-resources-page main > nav > article {
+ min-height: 0;
+ display: flex;
+ flex-direction: column;
+ margin: 0;
+}
+
+.conference-resources-page main > nav > article p:last-child {
+ margin-top: 1rem;
+ padding-top: 0;
+}
+
+.conference-resources-page main > nav > article p:last-child a {
+ display: inline-flex;
+ padding: 0;
+ border: 0;
+ text-decoration: underline;
+}
+
+/* NextGen schedule */
+
+.conference-nextgen-page main > section:first-of-type {
+ margin-bottom: 1rem;
+ padding: 1.75rem;
+ background: #f2f5f4;
+ border: 0;
+}
+
+.conference-nextgen-page main > section:first-of-type h2,
+.conference-nextgen-page main > section:first-of-type a {
+ color: var(--conference-navy);
+}
+
+.conference-nextgen-page main > section:not(:first-of-type) {
+ margin-left: 0;
+}
+
+.conference-nextgen-page main > hr {
+ display: none;
+}
+
+/* Main conference agenda */
+
+.conference-agenda-day {
+ border-top: 1px solid var(--conference-line);
+}
+
+.conference-agenda-day:last-of-type {
+ border-bottom: 1px solid var(--conference-line);
+}
+
+.conference-agenda-day summary {
+ position: relative;
+ padding: 1.5rem 3.5rem 1.5rem 0;
+ color: var(--conference-navy);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.35rem, 2.6vw, 1.9rem);
+ font-weight: 700;
+ line-height: 1.2;
+ cursor: pointer;
+ list-style: none;
+}
+
+.conference-agenda-day summary::-webkit-details-marker {
+ display: none;
+}
+
+.conference-agenda-day summary::after {
+ content: '+';
+ position: absolute;
+ top: 50%;
+ right: 0.25rem;
+ transform: translateY(-50%);
+ color: var(--conference-teal);
+ font-family: 'Source Sans Pro', sans-serif;
+ font-size: 2rem;
+ font-weight: 400;
+ line-height: 1;
+}
+
+.conference-agenda-day[open] summary::after {
+ content: '\2212';
+}
+
+.conference-agenda-day summary:hover {
+ color: var(--conference-teal);
+}
+
+.conference-agenda-day summary:focus-visible {
+ outline: 3px solid var(--site-accent);
+ outline-offset: 4px;
+}
+
+.conference-agenda-day > p,
+.conference-agenda-day > ul {
+ max-width: 75ch;
+}
+
+.conference-agenda-day > p:first-of-type {
+ margin-top: 0;
+}
+
+.conference-agenda-day > ul {
+ padding: 0;
+ list-style: none;
+}
+
+.conference-agenda-day > ul > li {
+ padding: 0.8rem 0;
+}
+
+.conference-agenda-day > ul ul {
+ margin-top: 0.75rem;
+}
+
+.conference-agenda-day[open] {
+ padding-bottom: 1.5rem;
+}
+
+.conference-agenda-page main > nav {
+ margin-top: 2rem;
+ padding-top: 2rem;
+ border-top: 1px solid var(--conference-line);
+}
+
+@media (max-width: 780px) {
+ .conference-detail-page main {
+ width: min(680px, calc(100% - 2rem));
+ padding-top: 3rem;
+ }
+
+ .conference-detail-page main > h1 {
+ margin-bottom: 3rem;
+ }
+
+ .conference-accommodations-page #hotel-accommodations,
+ .conference-resources-page main > nav {
+ grid-template-columns: 1fr;
+ }
+
+}
+
+@media (max-width: 520px) {
+ .conference-detail-page main {
+ width: calc(100% - 1.25rem);
+ padding-top: 2.25rem;
+ }
+
+ .conference-detail-page main > h1 {
+ font-size: clamp(2.65rem, 13vw, 3.6rem);
+ }
+
+ .conference-detail-page main p,
+ .conference-detail-page main li,
+ .conference-detail-page main figcaption {
+ font-size: 1rem;
+ }
+
+ .conference-detail-page iframe,
+ .conference-accommodations-page #hotel-accommodations iframe {
+ height: 300px;
+ }
+
+}
diff --git a/css/events.css b/css/events.css
index 1db07cb..cb31c88 100644
--- a/css/events.css
+++ b/css/events.css
@@ -2,6 +2,11 @@ body.events-page #header-placeholder {
min-height: 82px;
}
+.events-load-state {
+ width: min(1100px, calc(100% - var(--site-page-inset)));
+ margin: 2rem auto 4rem;
+}
+
body.event-detail-page {
background: #ffffff;
}
@@ -10,6 +15,289 @@ body.event-detail-page #header-placeholder {
background: #ffffff;
}
+.course-overview-page {
+ background: #ffffff;
+}
+
+.course-overview-page main {
+ width: min(900px, calc(100% - 4rem));
+ margin: 0 auto;
+ padding: 2.5rem 0 5rem;
+}
+
+.course-breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.4rem;
+ margin: 0 0 2.25rem;
+ color: var(--site-text-muted);
+ font-size: 0.88rem;
+ line-height: 1.4;
+}
+
+.course-breadcrumb a {
+ color: var(--site-link);
+ text-decoration: underline;
+ text-underline-offset: 0.15em;
+}
+
+.course-breadcrumb a:hover,
+.course-breadcrumb a:focus-visible {
+ color: var(--site-text);
+}
+
+.course-events-back-link {
+ margin: -1.4rem 0 2.25rem;
+ font-size: 0.95rem;
+}
+
+.course-events-back-link a {
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.course-overview-header {
+ display: block;
+ max-width: 760px;
+ padding: 0 0 2.5rem;
+ border: 0;
+ background: transparent;
+}
+
+.course-overview-header img {
+ display: block;
+ width: min(320px, 100%);
+ height: auto;
+ margin-top: 1.75rem;
+}
+
+.course-overview-header h1 {
+ max-width: 20ch;
+ margin: 0;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.1rem, 4vw, 3rem);
+ letter-spacing: -0.025em;
+ line-height: 1.08;
+}
+
+.course-overview-header p {
+ max-width: 62ch;
+ margin: 1rem 0 0;
+ color: var(--site-text-muted);
+ font-size: 1.15rem;
+ font-weight: 700;
+ line-height: 1.6;
+}
+
+.course-overview-page article > section {
+ display: block;
+ max-width: 760px;
+ padding: 2.5rem 0;
+ border-top: 1px solid var(--site-border);
+}
+
+.course-overview-page article > section:first-of-type {
+ padding-top: 0;
+ border-top: 0;
+}
+
+.course-overview-page article > section > * {
+ grid-column: auto;
+}
+
+.course-overview-page section h2 {
+ margin: 0 0 1rem;
+ padding: 0;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.8rem;
+ line-height: 1.2;
+}
+
+.course-overview-page section h3 {
+ margin: 1.9rem 0 0.65rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.15rem;
+ line-height: 1.3;
+}
+
+.course-overview-page section h2 + h3 {
+ margin-top: 1.4rem;
+}
+
+.course-overview-page section p {
+ margin: 0 0 1rem;
+ color: var(--site-text);
+ font-size: 1rem;
+ line-height: 1.7;
+}
+
+.course-overview-page section a {
+ color: var(--site-link);
+ font-weight: 800;
+ text-decoration: underline;
+ text-underline-offset: 0.13em;
+}
+
+.course-overview-page section ul {
+ margin: 0 0 1.25rem;
+ padding-left: 1.25rem;
+}
+
+.course-overview-page section li {
+ color: var(--site-text);
+ font-size: 1rem;
+ line-height: 1.65;
+}
+
+.course-overview-page section li + li {
+ margin-top: 0.45rem;
+}
+
+.course-instructor-list {
+ max-width: 620px;
+ padding: 0 !important;
+ border: 0;
+ list-style: none;
+}
+
+.course-instructor-list li {
+ display: block;
+ margin: 0 !important;
+ padding: 0 0 1.15rem;
+ border: 0;
+}
+
+.course-instructor-list span {
+ display: block;
+ margin-top: 0.15rem;
+ color: var(--site-text-muted);
+}
+
+.course-part-details {
+ max-width: 620px;
+ margin: 0 0 1.5rem;
+ border: 0;
+}
+
+.course-part-details div {
+ display: flex;
+ gap: 0.35rem;
+ padding: 0.25rem 0;
+ border: 0;
+}
+
+.course-part-details dt {
+ color: var(--site-text-muted);
+ font-weight: 800;
+}
+
+.course-part-details dd {
+ margin: 0;
+ color: var(--site-text);
+}
+
+.course-session-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.course-session-list li {
+ display: grid;
+ grid-template-columns: 6rem minmax(0, 1fr);
+ gap: 1rem;
+ align-items: baseline;
+ padding: 0.9rem 0;
+}
+
+.course-session-list time {
+ color: var(--site-text-muted);
+ font-size: 0.92rem;
+ font-weight: 800;
+}
+
+.course-session-list a {
+ line-height: 1.45;
+}
+
+.course-session-list li.is-complete time,
+.course-session-list li.is-complete a {
+ color: var(--site-text-muted);
+}
+
+.course-session-list li.is-complete a {
+ text-decoration-color: var(--site-border);
+}
+
+.course-session-status {
+ grid-column: 2;
+ justify-self: start;
+ display: inline-flex;
+ align-items: center;
+ margin-top: -0.15rem;
+ padding: 0.18rem 0.5rem;
+ border: 1px solid var(--site-border);
+ color: var(--site-text-muted);
+ font-size: 0.75rem;
+ font-weight: 900;
+ letter-spacing: 0.04em;
+ line-height: 1.2;
+ text-transform: uppercase;
+}
+
+@media (max-width: 900px) {
+ .course-overview-page main {
+ width: min(900px, calc(100% - 3rem));
+ padding: 3rem 0 4rem;
+ }
+}
+
+@media (max-width: 680px) {
+ .course-overview-page main {
+ width: min(calc(100% - var(--site-page-inset)), 900px);
+ padding-top: 2rem;
+ }
+
+ .course-overview-header {
+ padding-bottom: 1.5rem;
+ }
+
+ .course-overview-header img {
+ width: min(280px, 82%);
+ max-height: min(55vh, 22rem);
+ object-fit: contain;
+ }
+
+ .course-overview-page article > section {
+ padding-block: 1.75rem;
+ }
+
+ .course-overview-page section h2 {
+ margin-bottom: 0.65rem;
+ }
+
+ .course-part-details div {
+ display: block;
+ }
+
+ .course-part-details dd {
+ margin-top: 0.1rem;
+ }
+
+ .course-session-list li {
+ grid-template-columns: 1fr;
+ gap: 0.25rem;
+ }
+
+ .course-session-status {
+ grid-column: auto;
+ }
+}
+
.event-detail-page main {
width: min(1100px, calc(100% - 160px));
margin: 0 auto;
@@ -93,6 +381,21 @@ body.event-detail-page #header-placeholder {
font-weight: 700;
}
+.event-detail-page .event-past-title-label {
+ display: inline-block;
+ margin: 0 0 0.15em 0.75rem;
+ padding: 0.3rem 0.5rem;
+ border: 1px solid var(--site-border);
+ color: var(--site-text-muted);
+ font-family: 'Figtree', sans-serif;
+ font-size: 0.75rem;
+ font-weight: 700;
+ letter-spacing: 0.02em;
+ line-height: 1;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+
.event-detail-page .event-registration-status {
margin: 0 0 0.65rem;
padding: 0.1rem 0 0.15rem 0.85rem;
@@ -166,6 +469,24 @@ body.event-detail-page #header-placeholder {
text-underline-offset: 0.12em;
}
+.event-detail-page section[aria-label="Course information"] a {
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: underline;
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.15em;
+}
+
+.event-detail-page section[aria-label="Course information"] a:hover {
+ color: #005f70;
+ text-decoration-thickness: 2px;
+}
+
+.event-detail-page section[aria-label="Course information"] a:focus-visible {
+ outline: 2px solid var(--site-link);
+ outline-offset: 2px;
+}
+
.event-detail-page section[aria-label="Event details"] ul,
.event-detail-page section[aria-label="Event details"] ol {
margin: 0 0 1.1rem;
@@ -571,15 +892,6 @@ a.news-featured-card:focus-visible .news-featured-read-more-icon {
text-align: right;
}
-.news-empty-state {
- grid-column: 1 / -1;
- margin: 0;
- padding: 1.3rem;
- border: 1px solid var(--site-border);
- border-radius: 8px;
- color: var(--site-text-muted);
-}
-
.news-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -697,6 +1009,129 @@ a.news-featured-card:focus-visible .news-featured-read-more-icon {
flex-direction: column;
}
+.event-series-card {
+ align-self: start;
+ padding: 0;
+ border: 1px solid var(--site-border);
+}
+
+.event-series-card .event-series-image {
+ display: block;
+ margin: 0 0 1rem;
+ border-bottom: 0;
+}
+
+.event-series-card .news-card-content {
+ padding: 0 1.3rem 1.3rem;
+}
+
+.event-series-card h2 a {
+ color: inherit;
+ text-decoration: none;
+}
+
+.event-series-card h2 a:hover,
+.event-series-card h2 a:focus-visible {
+ color: var(--site-link);
+ text-decoration: underline;
+ text-underline-offset: 0.12em;
+}
+
+.event-series-sessions {
+ margin-top: auto;
+ padding-top: 0.9rem;
+ border-top: 1px solid var(--site-border);
+}
+
+.event-series-sessions summary {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.75rem;
+ color: var(--site-link);
+ font-size: 0.92rem;
+ font-weight: 900;
+ cursor: pointer;
+ list-style: none;
+}
+
+.event-series-sessions summary::-webkit-details-marker {
+ display: none;
+}
+
+.event-series-sessions summary::after {
+ content: '';
+ flex: 0 0 auto;
+ width: 0.48rem;
+ height: 0.48rem;
+ border-right: 2px solid currentColor;
+ border-bottom: 2px solid currentColor;
+ transform: rotate(45deg) translateY(-2px);
+ transition: transform 0.18s ease;
+}
+
+.event-series-sessions[open] summary::after {
+ transform: rotate(225deg) translate(-2px, -1px);
+}
+
+.event-series-sessions ol {
+ display: grid;
+ gap: 0;
+ max-height: 24rem;
+ margin: 0.85rem 0 0;
+ padding: 0 0 0 2rem;
+ overflow-y: auto;
+}
+
+.event-series-sessions li {
+ padding: 0.7rem 0;
+ border-top: 1px solid var(--site-border);
+}
+
+.event-series-sessions li:first-child {
+ border-top: 0;
+}
+
+.event-series-sessions li a {
+ display: block;
+ color: var(--site-text);
+ font-size: 0.92rem;
+ font-weight: 800;
+ line-height: 1.35;
+}
+
+.event-series-sessions li a:hover,
+.event-series-sessions li a:focus-visible {
+ color: var(--site-link);
+}
+
+.event-series-session-meta {
+ display: block;
+ margin-top: 0.2rem;
+ color: var(--site-text-muted);
+ font-size: 0.82rem;
+ font-weight: 700;
+ line-height: 1.35;
+}
+
+.event-series-sessions li.is-complete a {
+ color: var(--site-text-muted);
+}
+
+.event-series-session-status {
+ display: inline-flex;
+ align-items: center;
+ margin-top: 0.45rem;
+ padding: 0.18rem 0.48rem;
+ border: 1px solid var(--site-border);
+ color: var(--site-text-muted);
+ font-size: 0.7rem;
+ font-weight: 900;
+ letter-spacing: 0.04em;
+ line-height: 1.2;
+ text-transform: uppercase;
+}
+
.news-featured-meta {
margin: 0.2rem 0 0;
font-weight: 700;
@@ -1028,6 +1463,69 @@ a.news-card:focus-visible {
color: var(--site-text-muted);
}
+@media (max-width: 760px) {
+ .event-detail-page main,
+ .news-hero,
+ .news-featured-slot,
+ .events-page .event-featured-slot,
+ .news-controls-section,
+ .news-list-section,
+ .news-article {
+ width: min(calc(100% - var(--site-page-inset)), 1100px);
+ }
+
+ .event-detail-page main {
+ padding: 2.75rem 0 3.5rem;
+ }
+
+ .event-detail-page main > article > h1 {
+ margin-bottom: 0.8rem;
+ }
+
+ .event-detail-page section[aria-label="Event details"] img,
+ .news-article-image-link img,
+ .news-article-figure img,
+ .news-article-content img {
+ width: auto;
+ max-width: 100%;
+ max-height: min(62vh, 28rem);
+ margin-inline: auto;
+ object-fit: contain;
+ }
+
+ .news-pagination {
+ justify-content: center;
+ gap: 0.3rem !important;
+ width: 100%;
+ padding: 0.35rem;
+ box-sizing: border-box;
+ overflow: visible;
+ }
+
+ .news-pagination-page {
+ min-width: 2.75rem !important;
+ min-height: 2.75rem !important;
+ padding-inline: 0.55rem !important;
+ font-size: 1rem !important;
+ }
+
+ .news-pagination-control {
+ flex: 1 1 0;
+ min-width: 0 !important;
+ min-height: 2.75rem !important;
+ padding-inline: 0.5rem !important;
+ font-size: 0.875rem !important;
+ }
+
+ .news-pagination-ellipsis {
+ display: grid;
+ width: 1rem;
+ min-width: 1rem;
+ height: 2.75rem;
+ font-size: 0.9rem;
+ }
+}
+
.events-page .event-featured-slot {
position: relative;
z-index: 1;
@@ -1040,7 +1538,7 @@ a.news-card:focus-visible {
grid-template-columns: 132px minmax(0, 1fr) minmax(280px, 0.62fr);
gap: 1.35rem;
align-items: stretch;
- min-height: 280px;
+ min-height: 330px;
padding: 1rem;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.14);
@@ -1171,7 +1669,7 @@ a.news-card:focus-visible {
}
.events-page .event-featured-image {
- min-height: 248px;
+ min-height: 298px;
overflow: hidden;
border-radius: 10px;
background: rgba(255, 255, 255, 0.12);
@@ -1181,7 +1679,7 @@ a.news-card:focus-visible {
display: block;
width: 100%;
height: 100%;
- min-height: 248px;
+ min-height: 298px;
object-fit: cover;
}
@@ -1214,12 +1712,14 @@ a.news-card:focus-visible {
.events-page .event-featured-card {
grid-template-columns: 110px minmax(0, 1fr);
+ height: auto;
}
.events-page .event-featured-image {
grid-column: 1 / -1;
grid-row: 2;
display: block;
+ height: auto;
min-height: 260px;
border-radius: 10px;
}
@@ -1326,19 +1826,12 @@ a.news-featured-card:focus-visible {
}
@media (max-width: 520px) {
- .news-hero,
-.news-featured-slot,
-.events-page .event-featured-slot,
-.news-controls-section,
-.news-list-section,
-.news-article {
- width: min(100% - 1.25rem, 1100px);
- }
-
.events-page .event-featured-card {
grid-template-columns: 1fr;
- gap: 1rem;
- padding: 0.8rem;
+ gap: 0.7rem;
+ padding: 0.7rem;
+ border-radius: 10px;
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
}
.events-page .event-featured-date {
@@ -1346,32 +1839,77 @@ a.news-featured-card:focus-visible {
grid-row: auto;
grid-template-columns: auto auto auto;
justify-content: start;
- gap: 0.55rem;
+ gap: 0.45rem;
min-height: 0;
- padding: 0.75rem 0.9rem;
+ padding: 0.55rem 0.75rem;
}
.events-page .event-featured-date strong {
margin: 0;
- font-size: 2.25rem;
+ font-size: 1.7rem;
}
.events-page .event-featured-content {
grid-column: auto;
grid-row: auto;
- padding: 0.15rem 0.35rem 0.35rem;
+ padding: 0.1rem 0.3rem 0.25rem;
}
.events-page .event-featured-content h2 {
- max-width: 18ch;
- font-size: clamp(1.75rem, 9vw, 2.35rem);
+ display: -webkit-box;
+ max-width: none;
+ margin: 0.4rem 0 0.55rem;
+ overflow: hidden;
+ font-size: clamp(1.35rem, 6vw, 1.65rem);
+ line-height: 1.12;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
}
- .events-page .event-featured-image,
-.events-page .event-featured-image img {
+ .events-page .event-featured-label,
+ .events-page .event-featured-meta {
+ font-size: 0.82rem;
+ }
+
+ .events-page .event-featured-content p:not(.event-featured-label):not(.event-featured-meta) {
+ display: -webkit-box;
+ margin-top: 0.55rem;
+ overflow: hidden;
+ font-size: 0.9rem;
+ line-height: 1.42;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ }
+
+ .events-page .event-featured-cta {
+ gap: 0.55rem;
+ margin-top: 0.75rem;
+ font-size: 0.9rem;
+ }
+
+ .events-page .event-featured-cta-icon {
+ width: 2.1rem;
+ height: 2.1rem;
+ font-size: 1.25rem;
+ }
+
+ .events-page .event-featured-image {
grid-column: auto;
grid-row: auto;
- min-height: 190px;
+ height: clamp(140px, 38vw, 170px);
+ min-height: 0;
+ border-radius: 7px;
+ }
+
+ .events-page .event-featured-image img {
+ height: 100%;
+ min-height: 0;
+ object-fit: cover;
+ }
+
+ .events-page .event-featured-image--contain img {
+ padding: 0.55rem;
+ object-fit: contain;
}
.news-featured-slot .news-featured-image-link,
@@ -1384,16 +1922,12 @@ a.news-featured-card:focus-visible {
}
.news-pagination {
- width: fit-content;
- border-radius: 999px;
+ gap: 0.4rem;
}
- .news-pagination button {
- flex: 0 0 auto;
- }
-
- .news-pagination > button:not(.news-pagination-control):not([aria-current="page"]),
- .news-pagination-ellipsis {
- display: none;
+ .news-pagination-control {
+ min-height: 2.75rem;
+ padding-inline: 0.8rem !important;
+ font-size: 0.875rem;
}
}
diff --git a/css/header-footer.css b/css/header-footer.css
index 04179e0..e1a6e42 100644
--- a/css/header-footer.css
+++ b/css/header-footer.css
@@ -2,7 +2,6 @@
/* ─── Typography ─────────────────────────────────────────────────────────── */
-.header-banner .header-title,
.footer-section h3 {
font-family: 'Figtree', sans-serif;
font-optical-sizing: auto;
@@ -41,11 +40,7 @@
}
.header {
- --header-glass-background:
- linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(235, 249, 252, 0.72)),
- rgba(255, 255, 255, 0.78);
- --header-glass-filter: blur(16px) saturate(160%);
- --header-action-color: #008fa8;
+ --header-action-color: #006f82;
position: sticky;
top: 0;
z-index: 1000;
@@ -55,9 +50,11 @@
width: 100%;
min-height: 82px;
padding: 10px 40px;
- background: var(--header-glass-background);
- -webkit-backdrop-filter: var(--header-glass-filter);
- backdrop-filter: var(--header-glass-filter);
+ background-color: #ffffff !important;
+ background-image: none !important;
+ -webkit-backdrop-filter: none !important;
+ backdrop-filter: none !important;
+ opacity: 1;
border-bottom: 1px solid rgba(93, 128, 149, 0.18);
box-sizing: border-box;
}
@@ -139,7 +136,6 @@
}
.dropdown:hover > a::after,
-.dropdown:focus-within > a::after,
.dropdown.is-open > a::after {
transform: rotate(180deg);
}
@@ -149,12 +145,6 @@
}
/* ─── Dropdown panel ─────────────────────────────────────────────────────── */
-/*
- * The panel is pinned to the full width of the header using fixed positioning
- * anchored to the header's bottom edge. This means the dropdown extends
- * seamlessly from the header bar itself — no visual gap or border seam.
- */
-
.dropdown-menu {
display: block;
position: fixed;
@@ -186,7 +176,6 @@
display: none;
}
-.dropdown:focus-within .dropdown-menu,
.dropdown.is-open .dropdown-menu {
opacity: 1;
visibility: visible;
@@ -216,15 +205,6 @@
gap: 0 56px;
}
-.dropdown-conference .dropdown-menu {
- display: grid;
- grid-template-columns: minmax(360px, 480px);
- justify-content: center;
- align-items: start;
- padding-top: 18px;
- padding-bottom: 22px;
-}
-
.dropdown-column {
display: flex;
flex-direction: column;
@@ -232,11 +212,6 @@
min-width: 210px;
}
-.dropdown-conference-tree {
- gap: 2px;
- min-width: 360px;
-}
-
.dropdown-column-title {
display: block;
font-family: 'Source Sans Pro', sans-serif;
@@ -264,78 +239,26 @@
.dropdown-menu li a:hover,
.dropdown-menu li a:focus-visible {
background-color: transparent;
- color: var(--header-action-color, #0097B2);
+ color: var(--header-action-color, #006f82);
box-shadow: none;
border-bottom: none;
}
.dropdown-menu li a.is-current {
background-color: transparent;
- color: var(--header-action-color, #0097B2);
+ color: var(--header-action-color, #006f82);
font-weight: 700;
box-shadow: none;
border-bottom: none;
}
-/* ─── Dropdown section headings ──────────────────────────────────────────── */
-
-.dropdown-parent span {
- display: block;
- font-family: 'Source Sans Pro', sans-serif;
- font-weight: 700;
- font-size: 0.78rem;
- letter-spacing: 0.06em;
- text-transform: uppercase;
- color: var(--site-text-muted, #6e6e73);
- padding: 0 8px 6px;
- margin-top: 12px;
-}
-
-.dropdown-parent:first-child span {
- margin-top: 0;
-}
-
-.dropdown-menu .dropdown-parent-link > a {
- font-weight: 600;
- color: var(--site-text, #1d1d1f);
- font-size: 1rem;
-}
-
-/* ─── Dropdown subitems ──────────────────────────────────────────────────── */
-
-.dropdown-subitem a {
- padding-left: 20px;
- font-size: 0.95rem;
- color: var(--site-text-muted, #6e6e73);
- padding-top: 7px;
- padding-bottom: 7px;
-}
-
.dropdown-indent {
position: relative;
margin-left: 12px;
padding-left: 28px !important;
}
-.dropdown-indent-deep {
- position: relative;
- margin-left: 34px;
- padding-left: 28px !important;
- color: var(--site-text-muted, #6e6e73);
-}
-
-.dropdown-root {
- font-weight: 700 !important;
- color: var(--site-text, #1d1d1f);
- background-color: transparent;
-}
-
-.dropdown-branch {
- font-weight: 650 !important;
-}
-
-.dropdown-indent::before,
-.dropdown-indent-deep::before {
+.dropdown-indent::before {
content: '';
position: absolute;
top: 50%;
@@ -344,8 +267,7 @@
border-top: 1px solid rgba(93, 128, 149, 0.4);
}
-.dropdown-indent::after,
-.dropdown-indent-deep::after {
+.dropdown-indent::after {
content: '';
position: absolute;
top: -3px;
@@ -370,72 +292,25 @@
margin-left: auto;
}
-/* ─── Header banner ──────────────────────────────────────────────────────── */
-
-.header-banner {
- position: relative;
- width: 100%;
- height: 250px;
- display: flex;
- justify-content: center;
- align-items: center;
- overflow: hidden;
-}
-
-.header-banner .background-image {
- position: absolute;
- inset: 0;
- width: 100%;
- height: 100%;
- object-fit: cover;
- z-index: -1;
-}
-
-.header-title-box {
- background-color: rgba(255, 255, 255, 0.7);
- padding: 20px 60px;
- border-radius: 12px;
- width: calc(100% - 80px);
- max-width: 800px;
- box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
- text-align: center;
- z-index: 1;
- backdrop-filter: blur(8px);
- -webkit-backdrop-filter: blur(8px);
-}
-
-.header-banner .header-title {
- font-size: 3rem;
- color: #1d1d1f;
- font-weight: 700;
- margin: 0;
- text-align: center;
-}
-
-.header-banner .header-title.no-wrap {
- white-space: nowrap;
-}
-
/* ─── Footer ─────────────────────────────────────────────────────────────── */
.footer {
- background:
- linear-gradient(180deg, var(--site-primary), #4f7186);
- color: white;
padding: 56px 48px 24px;
margin-top: 0;
+ border-top: 3px solid var(--site-accent, #9bcb5e);
+ background: #3f6277;
+ color: #ffffff;
font-size: 0.95em;
line-height: 1.6;
- border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.footer-content {
display: grid;
- grid-template-columns: minmax(280px, 1.45fr) repeat(3, minmax(150px, 0.75fr));
+ grid-template-columns: minmax(220px, 1fr) minmax(135px, 0.7fr) minmax(160px, 0.8fr) minmax(210px, 1.1fr);
align-items: flex-start;
- gap: 40px;
- max-width: 1180px;
- margin: 0 auto 36px;
+ gap: clamp(28px, 4vw, 54px);
+ width: min(1180px, 100%);
+ margin: 0 auto 34px;
}
.footer-section {
@@ -443,55 +318,34 @@
}
.footer-section h3 {
- color: #ffffff;
- margin: 0 0 14px;
- font-size: 0.78rem;
+ margin: 0 0 18px;
+ color: rgba(255, 255, 255, 0.68);
+ font-size: 0.75rem;
font-weight: 700;
- letter-spacing: 0.07em;
+ letter-spacing: 0.12em;
text-transform: uppercase;
}
.footer-brand {
display: flex;
align-items: center;
- gap: 12px;
- margin-bottom: 14px;
+ gap: 14px;
+ margin-bottom: 0;
}
.footer-brand img {
- width: 58px;
+ width: 62px;
height: auto;
flex-shrink: 0;
+ object-fit: contain;
}
-.footer-brand h3 {
+.footer-brand h2 {
margin: 0;
- font-size: 1.15rem;
- letter-spacing: 0;
- text-transform: none;
-}
-
-.footer-tagline {
- max-width: 34rem;
- margin-bottom: 14px;
color: #ffffff;
- font-weight: 600;
-}
-
-.footer-address {
- margin: 0 0 16px;
- color: rgba(255, 255, 255, 0.84);
- font-style: normal;
- line-height: 1.55;
-}
-
-.footer-location-line {
- max-width: 1180px;
- margin: 0 auto 18px;
- color: rgba(255, 255, 255, 0.82);
- font-style: normal;
- font-size: 0.9rem;
- line-height: 1.45;
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.3rem, 2vw, 1.65rem);
+ line-height: 1.12;
}
.footer-section p,
@@ -501,25 +355,34 @@
list-style: none;
}
+.footer a:focus-visible {
+ outline: 3px solid rgba(155, 203, 94, 0.5);
+ outline-offset: 3px;
+}
+
.footer-section ul li {
- margin-bottom: 8px;
+ margin-bottom: 9px;
}
.footer-section ul li a {
- color: rgba(255, 255, 255, 0.84);
- line-height: 1.8;
- transition: color 0.2s ease;
+ color: rgba(255, 255, 255, 0.8);
+ line-height: 1.45;
+ text-decoration-color: transparent;
+ text-underline-offset: 0.2em;
+ transition: color 0.18s ease, text-decoration-color 0.18s ease;
}
-.footer-section ul li a:hover {
+.footer-section ul li a:hover,
+.footer-section ul li a:focus-visible {
color: #ffffff;
text-decoration: underline;
+ text-decoration-color: var(--site-accent, #9bcb5e);
}
.footer-social-list {
display: grid;
- grid-template-columns: 1fr;
- gap: 9px;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 8px 20px;
margin: 0;
padding: 0;
list-style: none;
@@ -532,76 +395,65 @@
.footer-social-link {
display: inline-flex;
align-items: center;
- gap: 9px;
+ gap: 8px;
+ padding: 2px 0;
color: rgba(255, 255, 255, 0.84);
- line-height: 1.5;
- transition: color 0.2s ease, opacity 0.2s ease;
+ line-height: 1.2;
+ transition: color 0.18s ease;
}
.footer-social-link img {
- width: 18px;
- height: 18px;
+ width: 17px;
+ height: 17px;
object-fit: contain;
flex-shrink: 0;
- opacity: 0.9;
}
.footer-social-link span {
- font-size: 0.95rem;
+ min-width: 0;
+ font-size: 0.9rem;
font-weight: 600;
}
.footer-social-link:hover,
-.footer-social-link:focus {
+.footer-social-link:focus-visible {
color: #ffffff;
- text-decoration: underline;
-}
-
-.footer-hosted {
- margin-top: 10px;
+ text-decoration: underline !important;
+ text-decoration-color: var(--site-accent, #9bcb5e) !important;
}
-.footer-hosted a {
- display: inline-flex;
+.footer-meta {
+ display: grid;
+ grid-template-columns: minmax(0, 1.65fr) minmax(230px, 0.7fr);
+ gap: clamp(28px, 5vw, 70px);
align-items: center;
- gap: 8px;
- font-size: 0.88em;
- line-height: 1.25;
- color: rgba(255, 255, 255, 0.88);
-}
-
-.footer-github-icon {
- width: 22px;
- height: 22px;
- filter: brightness(0) invert(1);
-}
-
-.footer-section p {
- color: rgba(255, 255, 255, 0.78);
+ width: min(1180px, 100%);
+ margin: 0 auto;
+ padding: 22px 0;
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.footer-disclaimer {
- max-width: 38rem;
+ margin: 0;
color: rgba(255, 255, 255, 0.78);
- font-size: 0.86rem;
- line-height: 1.65;
-}
-
-.nsf-logo-container {
- display: flex;
- align-items: center;
- margin-top: 20px;
- gap: 10px;
+ font-size: 0.82rem;
+ line-height: 1.55;
}
-.nsf-logo-container img {
- height: 80px;
+.footer-location-line {
+ display: grid;
+ margin: 0;
+ color: rgba(255, 255, 255, 0.76);
+ font-style: normal;
+ font-size: 0.84rem;
+ line-height: 1.5;
}
-.nsf-logo-container p {
- font-size: 0.88em;
- font-weight: 500;
+.footer-location-line span:first-child {
+ margin-bottom: 0.15rem;
color: #ffffff;
+ font-weight: 700;
}
.footer-bottom {
@@ -609,12 +461,11 @@
justify-content: space-between;
align-items: center;
gap: 20px;
- max-width: 1180px;
+ width: min(1180px, 100%);
margin: 0 auto;
- padding-top: 20px;
- border-top: 1px solid rgba(255, 255, 255, 0.2);
- color: rgba(255, 255, 255, 0.78);
- font-size: 0.88rem;
+ padding-top: 22px;
+ color: rgba(255, 255, 255, 0.62);
+ font-size: 0.8rem;
}
.footer-bottom p {
@@ -625,23 +476,7 @@
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
- gap: 16px;
-}
-
-.footer-credit {
- margin-top: 8px;
- font-size: 0.92em;
- color: rgba(255, 255, 255, 0.75);
-}
-
-.footer-bottom .footer-hosted {
- display: flex;
- justify-content: center;
- width: 100%;
-}
-
-.footer-bottom .footer-hosted a {
- font-size: 0.9em;
+ gap: 18px;
}
.footer a,
@@ -652,33 +487,60 @@
.footer a:hover,
.footer a:focus {
- color: rgba(255, 255, 255, 0.85);
- text-decoration: underline;
+ color: #ffffff;
}
/* ─── Hamburger ──────────────────────────────────────────────────────────── */
.hamburger {
display: none;
- flex-direction: column;
+ position: relative;
+ width: 44px;
+ height: 44px;
+ flex: 0 0 44px;
+ align-items: center;
+ justify-content: center;
background: transparent;
- border: none;
+ border: 0;
cursor: pointer;
- padding: 6px;
+ padding: 0;
z-index: 1001;
- gap: 5px;
+ -webkit-tap-highlight-color: transparent;
+ transition: background-color 0.2s ease;
+}
+
+.hamburger:hover,
+.hamburger:focus-visible,
+.hamburger.active {
+ background: transparent;
+}
+
+.hamburger:focus-visible {
+ outline: 3px solid #006f82;
+ outline-offset: 2px;
}
.hamburger .bar {
+ position: absolute;
+ left: 10px;
width: 22px;
height: 2px;
background-color: var(--site-text, #1d1d1f);
- transition: 0.25s ease-in-out;
+ transform-origin: center;
+ transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.16s ease;
border-radius: 2px;
}
+.hamburger .bar:nth-child(1) {
+ transform: translateY(-7px);
+}
+
+.hamburger .bar:nth-child(3) {
+ transform: translateY(7px);
+}
+
.hamburger.active .bar:nth-child(1) {
- transform: rotate(-45deg) translate(-6px, 7px);
+ transform: rotate(45deg);
}
.hamburger.active .bar:nth-child(2) {
@@ -686,7 +548,7 @@
}
.hamburger.active .bar:nth-child(3) {
- transform: rotate(45deg) translate(-6px, -7px);
+ transform: rotate(-45deg);
}
/* ─── Responsive — tablet portrait ──────────────────────────────────────── */
@@ -699,7 +561,8 @@
.nav {
display: none;
position: fixed;
- top: calc(var(--site-notice-height, 44px) + 52px);
+ top: var(--mobile-nav-top, 82px);
+ bottom: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.92);
@@ -707,12 +570,17 @@
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
padding: 14px 20px 20px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ overscroll-behavior: contain;
+ -webkit-overflow-scrolling: touch;
z-index: 998;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}
.nav.active {
display: block;
+ animation: mobile-nav-open 0.2s ease-out;
}
.hamburger {
@@ -755,8 +623,7 @@
.dropdown-about .dropdown-menu,
.dropdown-research .dropdown-menu,
- .dropdown-tools .dropdown-menu,
- .dropdown-conference .dropdown-menu {
+ .dropdown-tools .dropdown-menu {
display: none;
grid-template-columns: 1fr;
}
@@ -779,7 +646,10 @@
@media (max-width: 768px) {
.header {
- padding: 0 16px;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ gap: 8px 12px;
+ padding: 10px 16px 0;
}
.logo img {
@@ -789,7 +659,8 @@
.nav {
display: none;
position: fixed;
- top: calc(var(--site-notice-height, 44px) + 52px);
+ top: var(--mobile-nav-top, 82px);
+ bottom: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.95);
@@ -797,11 +668,16 @@
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
padding: 12px 16px 18px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ overscroll-behavior: contain;
+ -webkit-overflow-scrolling: touch;
z-index: 998;
}
.nav.active {
display: block;
+ animation: mobile-nav-open 0.2s ease-out;
}
.hamburger {
@@ -848,8 +724,7 @@
.dropdown-about .dropdown-menu,
.dropdown-research .dropdown-menu,
- .dropdown-tools .dropdown-menu,
- .dropdown-conference .dropdown-menu {
+ .dropdown-tools .dropdown-menu {
display: none;
grid-template-columns: 1fr;
}
@@ -868,78 +743,274 @@
}
.footer {
- padding: 40px 20px 24px;
+ padding: 46px 24px 24px;
}
.footer-content {
- grid-template-columns: 1fr;
- gap: 26px;
- align-items: center;
- text-align: center;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 34px 22px;
+ margin-bottom: 34px;
}
.footer-section {
- margin-bottom: 20px;
max-width: 100%;
min-width: unset;
margin-left: 0 !important;
}
- .footer-brand {
- justify-content: center;
- }
-
- .footer-disclaimer {
- margin-left: auto;
- margin-right: auto;
+ .footer-intro,
+ .footer-connect {
+ grid-column: 1 / -1;
}
- .footer-location-line {
- text-align: center;
+ .footer-brand img {
+ width: 60px;
+ height: auto;
}
- .footer-hosted {
- display: flex;
- justify-content: center;
- width: 100%;
+ .footer-social-list {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
}
- .footer-social-list {
+ .footer-meta {
grid-template-columns: 1fr;
- justify-items: center;
+ gap: 20px;
+ padding: 20px 0;
}
.footer-bottom {
flex-direction: column;
- text-align: center;
+ align-items: flex-start;
+ gap: 12px;
+ text-align: left;
}
.footer-bottom-links {
- justify-content: center;
+ justify-content: flex-start;
}
- .nsf-logo-container {
- justify-content: center;
- width: 100%;
- margin-left: auto;
- margin-right: auto;
+}
+
+@media (max-width: 430px) {
+ .footer {
+ padding-inline: 24px;
+ }
+
+ .footer-content {
+ gap: 30px 18px;
+ }
+
+ .footer-brand {
+ align-items: flex-start;
+ }
+
+ .footer-brand img {
+ width: 54px;
+ height: 54px;
+ }
+
+ .footer-brand h2 {
+ font-size: 1.25rem;
+ }
+
+ .footer-section h3 {
+ margin-bottom: 13px;
+ }
+
+ .footer-social-link {
+ padding-inline: 7px;
+ }
+
+ .footer-social-link span {
+ font-size: 0.78rem;
+ }
+
+ .footer-meta {
+ padding: 18px 0;
+ }
+}
+
+body.menu-open {
+ overflow: hidden;
+ overscroll-behavior: none;
+}
+
+body.menu-open .nav {
+ touch-action: pan-y;
+}
+
+@keyframes mobile-nav-open {
+ from {
+ opacity: 0;
+ transform: translateY(-6px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .hamburger .bar {
+ transition: none;
+ }
+
+ .nav.active {
+ animation: none;
+ }
+}
+
+@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
+ .nav {
+ padding: 8px 24px 30px;
+ background: #ffffff;
+ border-bottom: 0;
+ box-shadow: 0 10px 26px rgba(16, 38, 58, 0.08);
+ }
+
+ .nav-links {
+ gap: 0;
+ }
+
+ .nav-links > li {
+ border-bottom: 1px solid rgba(93, 128, 149, 0.2);
+ }
+
+ .nav-links > li:last-child {
+ border-bottom: 0;
+ }
+
+ .nav-links > li > a {
+ min-height: 50px;
+ padding: 13px 2px;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 0.98rem;
+ font-weight: 700;
+ line-height: 1.35;
+ }
+
+ .nav-links > li > a:hover,
+ .nav-links > li > a:focus-visible,
+ .dropdown.active > a,
+ .nav-links > li > a.is-current {
+ color: #006f82;
+ }
+
+ .dropdown > a::after {
+ content: '';
+ width: 7px;
+ height: 7px;
+ margin: -4px 4px 0 12px;
+ border-right: 1.5px solid currentColor;
+ border-bottom: 1.5px solid currentColor;
+ opacity: 0.75;
+ transform: rotate(45deg);
+ transition: transform 0.2s ease, margin-top 0.2s ease;
+ }
+
+ .dropdown.active > a::after {
+ margin-top: 4px;
+ transform: rotate(225deg);
}
- .footer-github-icon {
- width: 20px;
- height: 20px;
+ .dropdown.active .dropdown-menu {
+ display: flex;
+ margin: 0 0 12px 6px;
+ padding: 8px 0 10px 18px;
+ border: 0;
+ border-left: 2px solid #007f96;
+ border-radius: 0;
+ background: transparent;
+ box-shadow: none;
+ animation: mobile-submenu-open 0.18s ease-out;
}
- .header-banner {
- height: 150px;
+ .dropdown-column {
+ gap: 0;
}
- .header-title-box {
- padding: 15px 30px;
- width: calc(100% - 40px);
+ .dropdown-column + .dropdown-column {
+ margin-top: 10px;
+ padding-top: 12px;
+ border-top: 1px solid rgba(93, 128, 149, 0.18);
}
- .header-banner .header-title {
- font-size: 2rem;
+ .dropdown-column-title {
+ padding: 4px 0 6px;
+ color: var(--site-text-muted);
+ font-size: 0.7rem;
+ letter-spacing: 0.09em;
+ }
+
+ .dropdown-menu li a {
+ display: flex;
+ align-items: center;
+ min-height: 44px;
+ padding: 8px 0;
+ border-radius: 0;
+ color: var(--site-text);
+ font-size: 0.9rem;
+ line-height: 1.4;
+ }
+
+ .dropdown-menu li a:hover,
+ .dropdown-menu li a:focus-visible,
+ .dropdown-menu li a.is-current {
+ background: transparent;
+ color: #006f82;
+ text-decoration: underline;
+ text-decoration-thickness: 1px;
+ text-underline-offset: 0.18em;
+ }
+
+ .dropdown-indent {
+ margin-left: 8px;
+ padding-left: 16px !important;
+ }
+
+ .dropdown-indent::before {
+ left: 0;
+ width: 8px;
+ }
+
+ .dropdown-indent::after {
+ display: none;
+ }
+
+ .nav-links a:focus-visible,
+ .dropdown-menu li a:focus-visible {
+ outline: 3px solid #006f82;
+ outline-offset: 2px;
+ }
+}
+
+@keyframes mobile-submenu-open {
+ from {
+ opacity: 0;
+ transform: translateY(-4px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .dropdown.active .dropdown-menu {
+ animation: none;
+ }
+}
+
+@media (forced-colors: active) {
+ .hamburger,
+ .nav-links a:focus-visible,
+ .dropdown-menu li a:focus-visible {
+ outline: 2px solid CanvasText;
+ outline-offset: 2px;
+ }
+
+ .dropdown.active .dropdown-menu {
+ border-left-color: CanvasText;
}
}
diff --git a/css/homepage.css b/css/homepage.css
new file mode 100644
index 0000000..786d88e
--- /dev/null
+++ b/css/homepage.css
@@ -0,0 +1,1448 @@
+/* ─── Persona-led home page ─────────────────────────────────────────────── */
+
+.home-page {
+ --home-ink: #082438;
+ --home-blue: #0097b2;
+ --home-green: #9bcb5e;
+ overflow: hidden;
+ background: #f6faf9;
+}
+
+.home-hero {
+ position: relative;
+ min-height: min(760px, calc(100vh - 82px));
+ display: flex;
+ align-items: center;
+ isolation: isolate;
+ overflow: hidden;
+ padding: clamp(5rem, 9vw, 8rem) max(1.25rem, calc((100vw - 1180px) / 2));
+ background:
+ linear-gradient(90deg, rgba(2, 22, 34, 0.97) 0%, rgba(3, 31, 46, 0.93) 45%, rgba(6, 34, 49, 0.42) 100%),
+ url('../images/gradient-b-hero.jpg') center / cover no-repeat;
+ color: #fff;
+}
+
+.home-hero::after {
+ content: '';
+ position: absolute;
+ inset: auto -8vw -35% 45%;
+ z-index: -1;
+ height: 70%;
+ border: 1px solid rgba(155, 203, 94, 0.32);
+ border-radius: 50%;
+ transform: rotate(-9deg);
+}
+
+.home-hero__glow {
+ position: absolute;
+ z-index: -1;
+ top: 8%;
+ right: 6%;
+ width: min(39vw, 560px);
+ aspect-ratio: 1;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(155, 203, 94, 0.2), rgba(0, 151, 178, 0.07) 48%, transparent 70%);
+}
+
+.home-hero__content {
+ width: min(760px, 100%);
+}
+
+.home-news-showcase {
+ padding: 0 0 clamp(3rem, 5vw, 4.5rem);
+ background:
+ linear-gradient(90deg, rgba(2, 22, 34, 0.97) 0%, rgba(3, 31, 46, 0.93) 45%, rgba(6, 34, 49, 0.42) 100%),
+ url('../images/gradient-b-hero.jpg') center / cover no-repeat;
+}
+
+.hero-news-carousel {
+ width: min(1120px, calc(100% - clamp(3rem, 6vw, 5rem)));
+ margin: 0 auto;
+ overflow: hidden;
+ background: transparent;
+}
+
+.hero-news-carousel__stage {
+ position: relative;
+ overflow: hidden;
+}
+
+.hero-news-carousel__track {
+ display: flex;
+ gap: 20px;
+ width: 100%;
+ transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
+ will-change: transform;
+}
+
+.hero-news-carousel__state {
+ flex: 0 0 100%;
+ min-height: 460px;
+ justify-content: center;
+ background: #ffffff;
+}
+
+.hero-news-slide {
+ flex: 0 0 calc(100% - clamp(150px, 18vw, 220px));
+ height: 460px;
+ display: grid;
+ grid-template-columns: 52.6923% 47.3077%;
+ color: var(--home-ink);
+}
+
+.hero-news-slide:hover,
+.hero-news-slide:focus-visible {
+ outline: none;
+}
+
+.hero-news-slide__image {
+ grid-column: 2;
+ grid-row: 1;
+ min-height: 100%;
+ overflow: hidden;
+ background:
+ linear-gradient(135deg, rgba(0, 151, 178, 0.7), rgba(155, 203, 94, 0.52)),
+ url('../images/gradient-b-hero.jpg') center / cover;
+}
+
+.hero-news-slide__image img {
+ width: 100%;
+ height: 100%;
+ min-height: 460px;
+ display: block;
+ object-fit: cover;
+}
+
+.hero-news-slide__image--contain {
+ background: #fffcf5;
+}
+
+.hero-news-slide__image--contain img {
+ object-fit: contain;
+}
+
+.hero-news-slide__image--placeholder {
+ display: grid;
+ place-items: center;
+ background:
+ linear-gradient(to top right, transparent calc(50% - 1px), rgba(255, 255, 255, 0.24) 50%, transparent calc(50% + 1px)),
+ linear-gradient(to bottom right, transparent calc(50% - 1px), rgba(255, 255, 255, 0.24) 50%, transparent calc(50% + 1px)),
+ linear-gradient(135deg, #386879, #173747);
+}
+
+.hero-news-slide__image--placeholder > svg {
+ width: 4rem;
+ fill: none;
+ stroke: rgba(255, 255, 255, 0.7);
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 2;
+}
+
+.hero-news-slide__content {
+ grid-column: 1;
+ grid-row: 1;
+ display: block;
+ padding: 50px 48px;
+ background: #fff;
+}
+
+.hero-news-slide__content small {
+ display: block;
+ margin-bottom: 0.75rem;
+ color: var(--home-blue);
+ font-family: 'Figtree', sans-serif;
+ font-size: 0.75rem;
+ font-weight: 700;
+ letter-spacing: 0.1em;
+ line-height: 1.2;
+ text-transform: uppercase;
+}
+
+.hero-news-slide__content strong {
+ display: -webkit-box;
+ overflow: hidden;
+ width: min(498px, 100%);
+ height: 129px;
+ margin: 0;
+ color: var(--home-ink);
+ font-family: 'Figtree', sans-serif;
+ font-size: 36px;
+ font-weight: 700;
+ letter-spacing: 0;
+ line-height: 43px;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+}
+
+.hero-news-slide__content > span {
+ display: -webkit-box;
+ overflow: hidden;
+ width: min(498px, 100%);
+ height: 108px;
+ margin-top: 24px;
+ color: #424242;
+ font-family: 'Avenir', 'Source Sans Pro', sans-serif;
+ font-size: 19px;
+ line-height: 27px;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 4;
+}
+
+.hero-news-slide__read-more {
+ position: relative;
+ width: fit-content;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.7rem;
+ margin-top: 24px;
+ color: var(--home-ink);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1rem;
+ font-weight: 700;
+ line-height: 1;
+ letter-spacing: 0;
+}
+
+.hero-news-slide__read-more-icon {
+ display: inline-grid;
+ width: 1.85rem;
+ height: 1.85rem;
+ place-items: center;
+ border: 1px solid rgba(0, 151, 178, 0.38);
+ border-radius: 50%;
+ color: var(--home-blue);
+ font-size: 0.98rem;
+ line-height: 1;
+ transition:
+ background 160ms ease,
+ border-color 160ms ease,
+ color 160ms ease,
+ transform 160ms ease;
+}
+
+.hero-news-slide:hover .hero-news-slide__read-more-icon,
+.hero-news-slide:focus-visible .hero-news-slide__read-more-icon {
+ background: rgba(0, 151, 178, 0.1);
+ border-color: var(--home-blue);
+ color: var(--home-blue);
+ transform: translateX(3px);
+}
+
+.hero-news-slide:hover .hero-news-slide__read-more,
+.hero-news-slide:focus-visible .hero-news-slide__read-more {
+ color: var(--home-blue);
+}
+
+.hero-news-carousel__arrow {
+ position: relative;
+ width: 80px;
+ height: 80px;
+ flex: 0 0 80px;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ color: transparent;
+ font-size: 0;
+ cursor: pointer;
+}
+
+.hero-news-carousel__arrow::before {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 46px;
+ height: 3.5px;
+ background: #fffcfc;
+ transform: translate(-50%, -50%);
+ transition: background-color 0.18s ease;
+}
+
+.hero-news-carousel__arrow::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 18px;
+ width: 18px;
+ height: 18px;
+ border: solid #fffcfc;
+ border-width: 0 3.5px 3.5px 0;
+ transform: translateY(-50%) rotate(135deg);
+ transition: border-color 0.18s ease;
+}
+
+.hero-news-carousel__arrow[data-news-next]::after {
+ right: 18px;
+ left: auto;
+ transform: translateY(-50%) rotate(-45deg);
+}
+
+.hero-news-carousel__arrow:hover,
+.hero-news-carousel__arrow:focus-visible {
+ outline: none;
+ background: transparent;
+}
+
+.hero-news-carousel__arrow:hover::before,
+.hero-news-carousel__arrow:focus-visible::before {
+ background: var(--home-blue);
+}
+
+.hero-news-carousel__arrow:hover::after,
+.hero-news-carousel__arrow:focus-visible::after {
+ border-color: var(--home-blue);
+}
+
+.hero-news-carousel__arrow:disabled {
+ cursor: wait;
+ opacity: 0.35;
+}
+
+.hero-news-carousel__footer {
+ position: relative;
+ min-height: 3.3rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 0.55rem 1rem;
+ color: var(--home-ink);
+}
+
+.hero-news-carousel__counter {
+ color: rgba(255, 255, 255, 0.72);
+ font-size: 0.72rem;
+ font-weight: 700;
+ font-variant-numeric: tabular-nums;
+ letter-spacing: 0.08em;
+}
+
+.hero-news-carousel__dots {
+ position: absolute;
+ left: 50%;
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+ transform: translateX(-50%);
+}
+
+.hero-news-carousel__dots button {
+ width: 0.7rem;
+ height: 0.7rem;
+ padding: 0;
+ border: 2px solid rgba(255, 255, 255, 0.9);
+ border-radius: 50%;
+ background: transparent;
+ box-shadow: 0 0 0 1px rgba(8, 36, 56, 0.18);
+ cursor: pointer;
+ transition: width 0.2s ease, border-radius 0.2s ease, background-color 0.2s ease;
+}
+
+.hero-news-carousel__dots button[aria-current="true"] {
+ width: 1.5rem;
+ border-color: var(--home-blue);
+ border-radius: 999px;
+ background: var(--home-blue);
+ box-shadow: none;
+}
+
+.hero-news-carousel__dots button:focus-visible {
+ outline: 2px solid var(--home-blue);
+ outline-offset: 3px;
+}
+
+.hero-news-carousel__toggle {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+ margin-left: auto;
+ padding: 0.25rem 0.5rem;
+ border: 0;
+ border-radius: 999px;
+ background: transparent;
+ color: rgba(255, 255, 255, 0.72);
+ font: inherit;
+ font-size: 0.72rem;
+ cursor: pointer;
+}
+
+.hero-news-carousel__controls {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 0;
+ margin-left: auto;
+}
+
+.hero-news-carousel__toggle:hover,
+.hero-news-carousel__toggle:focus-visible {
+ outline: none;
+ background: rgba(0, 151, 178, 0.1);
+ color: var(--home-blue);
+}
+
+.hero-news-carousel__toggle:disabled {
+ cursor: wait;
+ opacity: 0.35;
+}
+
+.home-question {
+ padding: clamp(4.5rem, 8vw, 7.5rem) max(1.25rem, calc((100vw - 1180px) / 2));
+ background: #f6faf9;
+}
+
+.home-question__answer {
+ display: grid;
+ grid-template-columns: minmax(420px, 1.1fr) minmax(320px, 0.9fr);
+ gap: clamp(2.5rem, 6vw, 6rem);
+ align-items: stretch;
+}
+
+.home-question__copy {
+ display: grid;
+ align-content: start;
+ gap: clamp(2rem, 4vw, 3.5rem);
+}
+
+.home-question__question {
+ padding-bottom: clamp(2rem, 4vw, 3rem);
+}
+
+.home-question__question .home-eyebrow {
+ margin-bottom: 1rem;
+}
+
+.home-question__question h2 {
+ max-width: 12ch;
+ margin: 0;
+ color: var(--home-ink);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.6rem, 5vw, 4.75rem);
+ font-weight: 600;
+ letter-spacing: -0.05em;
+ line-height: 0.96;
+}
+
+.home-question__label {
+ margin: 0 0 1.25rem;
+ color: var(--home-blue);
+ font-size: 0.76rem;
+ font-weight: 800;
+ letter-spacing: 0.13em;
+ text-transform: uppercase;
+}
+
+.home-question__response > p:not(.home-question__label) {
+ margin: 0;
+ color: #314955;
+ font-size: clamp(1.15rem, 2vw, 1.45rem);
+ line-height: 1.55;
+}
+
+.home-question__image {
+ position: relative;
+ margin: 0;
+ min-height: 100%;
+}
+
+.home-question__image img {
+ width: 100%;
+ height: 100%;
+ display: block;
+ object-fit: cover;
+}
+
+.home-question__image--illustration {
+ align-self: center;
+ min-height: 0;
+ aspect-ratio: 1;
+ overflow: hidden;
+ border-radius: 1rem;
+ background: #badbdc;
+}
+
+.home-question__image--illustration img {
+ height: auto;
+ aspect-ratio: 1;
+ object-fit: contain;
+}
+
+.home-question__image--placeholder {
+ display: grid;
+ place-items: center;
+ background:
+ linear-gradient(to top right, transparent calc(50% - 1px), #cbd1d4 50%, transparent calc(50% + 1px)),
+ linear-gradient(to bottom right, transparent calc(50% - 1px), #cbd1d4 50%, transparent calc(50% + 1px)),
+ #e8ebed;
+}
+
+.home-question__image--placeholder > svg {
+ width: 4rem;
+ fill: none;
+ stroke: #9ca7ac;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 2;
+}
+
+.home-question__image figcaption {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin: 0;
+ padding: 0.65rem 0.8rem;
+ background: rgba(8, 36, 56, 0.82);
+ color: rgba(255, 255, 255, 0.88);
+ font-size: 0.8rem;
+ line-height: 1.4;
+}
+
+.home-eyebrow {
+ margin: 0 0 1.35rem;
+ color: var(--home-blue);
+ font-size: 0.78rem;
+ font-weight: 800;
+ letter-spacing: 0.14em;
+ line-height: 1.3;
+ text-transform: uppercase;
+}
+
+.home-hero h1 {
+ margin: 0;
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(3.5rem, 7vw, 6rem);
+ font-weight: 600;
+ letter-spacing: -0.065em;
+ line-height: 0.92;
+}
+
+.home-hero__intro {
+ max-width: 590px;
+ margin: clamp(2rem, 5vw, 3.25rem) 0 1.75rem;
+ color: rgba(255, 255, 255, 0.83);
+ font-size: clamp(1.15rem, 2vw, 1.4rem);
+ line-height: 1.55;
+}
+
+.home-hero__link,
+.home-scroll-cue {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
+ font-weight: 700;
+}
+
+.home-hero__link {
+ padding-bottom: 0.35rem;
+ border-bottom: 1px solid rgba(182, 230, 111, 0.65);
+ color: #fff;
+}
+
+.home-hero__link span {
+ color: #b6e66f;
+}
+
+.home-hero__link:hover,
+.home-hero__link:focus-visible {
+ color: #b6e66f;
+}
+
+.home-scroll-cue {
+ position: absolute;
+ right: max(1.25rem, calc((100vw - 1180px) / 2));
+ bottom: 2rem;
+ color: rgba(255, 255, 255, 0.72);
+ font-size: 0.85rem;
+ letter-spacing: 0.04em;
+}
+
+.home-scroll-cue span:last-child {
+ display: grid;
+ width: 2.5rem;
+ height: 2.5rem;
+ place-items: center;
+ border: 1px solid rgba(255, 255, 255, 0.36);
+ border-radius: 50%;
+}
+
+.persona-section {
+ padding: clamp(5rem, 9vw, 8.5rem) max(1.25rem, calc((100vw - 1180px) / 2));
+ background: #f6faf9;
+ scroll-margin-top: 8rem;
+}
+
+.persona-heading {
+ display: grid;
+ grid-template-columns: minmax(0, 1.25fr) minmax(270px, 0.75fr);
+ gap: 1rem 5rem;
+ align-items: end;
+ margin-bottom: clamp(3rem, 6vw, 5rem);
+}
+
+.persona-heading h2 {
+ margin: 0;
+ color: var(--home-ink);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.6rem, 5vw, 5rem);
+ font-weight: 600;
+ letter-spacing: -0.045em;
+ line-height: 0.98;
+}
+
+.persona-heading > p:last-child {
+ margin: 0;
+ color: #566c77;
+ font-size: 1.08rem;
+ line-height: 1.6;
+}
+
+.persona-picker {
+ display: grid;
+ grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
+ border-top: 1px solid rgba(8, 36, 56, 0.19);
+ border-bottom: 1px solid rgba(8, 36, 56, 0.19);
+}
+
+.persona-tabs {
+ min-width: 0;
+}
+
+.persona-tab {
+ position: relative;
+ width: 100%;
+ display: grid;
+ grid-template-columns: 2rem 3.2rem minmax(0, 1fr) auto;
+ gap: 1.15rem;
+ align-items: center;
+ min-height: 7.25rem;
+ margin: 0;
+ padding: 1.25rem 1.4rem 1.25rem 0;
+ border: 0;
+ border-bottom: 1px solid rgba(8, 36, 56, 0.19);
+ background: transparent;
+ color: var(--home-ink);
+ font: inherit;
+ text-align: left;
+ cursor: pointer;
+ transition: color 0.2s ease, padding 0.2s ease;
+}
+
+.persona-tab:last-child {
+ border-bottom: 0;
+}
+
+@media (min-width: 901px) {
+ .persona-tabs {
+ display: grid;
+ grid-template-rows: repeat(5, minmax(0, 1fr));
+ }
+
+ .persona-tab {
+ min-height: 0;
+ }
+}
+
+.persona-tab::before {
+ content: '';
+ position: absolute;
+ inset: 0;
+ z-index: 0;
+ background: var(--home-ink);
+ transform: scaleX(0);
+ transform-origin: right;
+ transition: transform 0.28s ease;
+}
+
+.persona-tab > * {
+ position: relative;
+ z-index: 1;
+}
+
+.persona-tab:hover,
+.persona-tab:focus-visible,
+.persona-tab.is-active {
+ padding-left: 1.4rem;
+ color: #fff;
+ outline: none;
+}
+
+.persona-tab:hover::before,
+.persona-tab:focus-visible::before,
+.persona-tab.is-active::before {
+ transform: scaleX(1);
+ transform-origin: left;
+}
+
+.persona-tab__number {
+ color: #71838b;
+ font-size: 0.75rem;
+ font-weight: 700;
+ letter-spacing: 0.08em;
+}
+
+.persona-tab.is-active .persona-tab__number,
+.persona-tab:hover .persona-tab__number,
+.persona-tab:focus-visible .persona-tab__number {
+ color: #b6e66f;
+}
+
+.persona-tab__icon {
+ display: grid;
+ width: 3.2rem;
+ height: 3.2rem;
+ place-items: center;
+ border: 1px solid rgba(8, 36, 56, 0.2);
+ border-radius: 50%;
+}
+
+.persona-tab__icon svg {
+ width: 1.75rem;
+ fill: none;
+ stroke: currentColor;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 1.7;
+}
+
+.persona-tab.is-active .persona-tab__icon,
+.persona-tab:hover .persona-tab__icon,
+.persona-tab:focus-visible .persona-tab__icon {
+ border-color: rgba(182, 230, 111, 0.52);
+ color: #b6e66f;
+}
+
+.persona-tab__copy {
+ display: grid;
+ gap: 0.25rem;
+}
+
+.persona-tab__copy strong {
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.15rem, 2vw, 1.4rem);
+ font-weight: 600;
+ line-height: 1.15;
+}
+
+.persona-tab__copy small {
+ color: #687b85;
+ font-size: 0.92rem;
+ line-height: 1.3;
+}
+
+.persona-tab.is-active .persona-tab__copy small,
+.persona-tab:hover .persona-tab__copy small,
+.persona-tab:focus-visible .persona-tab__copy small {
+ color: rgba(255, 255, 255, 0.64);
+}
+
+.persona-tab__arrow {
+ font-size: 1.3rem;
+ transition: transform 0.2s ease;
+}
+
+.persona-tab:hover .persona-tab__arrow,
+.persona-tab:focus-visible .persona-tab__arrow,
+.persona-tab.is-active .persona-tab__arrow {
+ color: #b6e66f;
+ transform: translateX(0.25rem);
+}
+
+.persona-results {
+ display: grid;
+ min-width: 0;
+ background: var(--home-blue);
+ color: #fff;
+}
+
+.persona-panel {
+ grid-area: 1 / 1;
+ width: 100%;
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ padding: clamp(2.4rem, 5vw, 4.5rem);
+ animation: persona-in 0.32s ease both;
+}
+
+.persona-panel:not(.is-active) {
+ visibility: hidden;
+ pointer-events: none;
+ animation: none;
+}
+
+@keyframes persona-in {
+ from { opacity: 0; transform: translateY(0.65rem); }
+ to { opacity: 1; transform: translateY(0); }
+}
+
+.persona-panel h3 {
+ max-width: 15ch;
+ margin: 0 0 1.35rem;
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.1rem, 3.3vw, 3.3rem);
+ font-weight: 600;
+ letter-spacing: -0.045em;
+ line-height: 0.98;
+}
+
+.persona-panel > p {
+ max-width: 31rem;
+ margin: 0 0 3rem;
+ color: rgba(255, 255, 255, 0.82);
+ font-size: 1.06rem;
+ line-height: 1.6;
+}
+
+.persona-panel nav {
+ display: grid;
+ margin-top: auto;
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+.persona-panel nav a {
+ display: flex;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 1rem 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.35);
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+.persona-panel nav a:hover,
+.persona-panel nav a:focus-visible {
+ color: #e4ffb5;
+}
+
+.persona-panel nav b {
+ font-weight: 400;
+}
+
+.persona-resources {
+ position: relative;
+ isolation: isolate;
+ width: 100vw;
+ overflow: hidden;
+ margin-top: clamp(5rem, 9vw, 8rem);
+ margin-right: calc(50% - 50vw);
+ margin-left: calc(50% - 50vw);
+ padding: clamp(3rem, 6vw, 5.5rem) max(1.25rem, calc((100vw - 1180px) / 2));
+ background:
+ linear-gradient(90deg, rgba(2, 22, 34, 0.97) 0%, rgba(3, 31, 46, 0.93) 45%, rgba(6, 34, 49, 0.42) 100%),
+ url('../images/gradient-b-hero.jpg') center / cover;
+ color: #fff;
+}
+
+.persona-resource-links {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: clamp(1.25rem, 4vw, 3.5rem);
+ max-width: 960px;
+ margin: 0 auto;
+}
+
+.persona-resource-card {
+ position: relative;
+ min-height: 335px;
+ display: flex;
+ flex-direction: column;
+ padding: clamp(1.75rem, 3vw, 2.5rem);
+ border: 2px solid var(--home-blue);
+ background: #f6faf9;
+ color: var(--home-ink);
+}
+
+.persona-resource-card:hover,
+.persona-resource-card:focus-visible {
+ outline: 3px solid #b6e66f;
+ outline-offset: 3px;
+}
+
+.persona-resource-card__icon {
+ position: absolute;
+ top: 1.5rem;
+ right: 1.5rem;
+ color: var(--site-primary);
+}
+
+.persona-resource-card__icon svg {
+ width: 3.5rem;
+ fill: none;
+ stroke: currentColor;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 2;
+}
+
+.persona-resource-card small {
+ max-width: calc(100% - 4rem);
+ margin-bottom: 3rem;
+ color: #516873;
+ font-size: 0.76rem;
+ font-weight: 800;
+ letter-spacing: 0.07em;
+ text-transform: uppercase;
+}
+
+.persona-resource-card > strong {
+ margin-bottom: 0.65rem;
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2rem, 4vw, 3rem);
+ line-height: 1;
+}
+
+.persona-resource-card p {
+ max-width: 34rem;
+ margin: 0;
+ color: #3f535e;
+ font-size: 1rem;
+ line-height: 1.5;
+}
+
+.persona-resource-card b,
+.persona-demo-card__body b {
+ width: fit-content;
+ margin-top: auto;
+ padding-top: 1.5rem;
+ color: var(--home-blue);
+ font-size: 0.92rem;
+}
+
+.persona-demos {
+ margin-top: clamp(4rem, 8vw, 7rem);
+ padding-top: clamp(3rem, 6vw, 5rem);
+}
+
+.persona-demos__heading {
+ max-width: 650px;
+ margin: 0 auto clamp(2.25rem, 5vw, 3.75rem);
+ text-align: center;
+}
+
+.persona-demos__heading h3 {
+ margin: 0;
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2rem, 4vw, 3.25rem);
+ font-weight: 600;
+ letter-spacing: -0.035em;
+ line-height: 1.05;
+}
+
+.persona-demo-grid {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 1.25rem;
+}
+
+.persona-demo-card {
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ background: #f6faf9;
+ color: var(--home-ink);
+}
+
+.persona-demo-card__image {
+ position: relative;
+ aspect-ratio: 4 / 3;
+ overflow: hidden;
+}
+
+.persona-demo-card__image img {
+ width: 100%;
+ height: 100%;
+ display: block;
+ object-fit: cover;
+}
+
+.persona-demo-card--robot .persona-demo-card__image {
+ background: #cecec5;
+}
+
+.persona-demo-card--robot .persona-demo-card__image img {
+ object-fit: cover;
+}
+
+.persona-demo-card--guide .persona-demo-card__image,
+.persona-demo-card--bioclip .persona-demo-card__image {
+ background: #fff;
+}
+
+.persona-demo-card--guide .persona-demo-card__image img,
+.persona-demo-card--bioclip .persona-demo-card__image img {
+ object-fit: contain;
+}
+
+.persona-demo-card--placeholder .persona-demo-card__image {
+ display: grid;
+ place-items: center;
+ background:
+ linear-gradient(to top right, transparent calc(50% - 1px), #cbd1d4 50%, transparent calc(50% + 1px)),
+ linear-gradient(to bottom right, transparent calc(50% - 1px), #cbd1d4 50%, transparent calc(50% + 1px)),
+ #e8ebed;
+}
+
+.persona-demo-card--placeholder .persona-demo-card__image > svg {
+ width: 2.25rem;
+ fill: none;
+ stroke: #9ca7ac;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-width: 2;
+}
+
+.persona-demo-card__image small {
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 0.42rem 0.85rem;
+ background: var(--home-green);
+ color: #244410;
+ font-size: 0.72rem;
+ font-weight: 800;
+}
+
+.persona-demo-card__body {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ padding: 1.35rem;
+}
+
+.persona-demo-card__body > strong {
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.35rem;
+ line-height: 1.15;
+}
+
+.persona-demo-card__body p {
+ margin: 0.65rem 0 0;
+ color: #40545f;
+ font-size: 0.94rem;
+ line-height: 1.45;
+}
+
+.home-updates {
+ padding: clamp(1.5rem, 3vw, 2.5rem) max(1.25rem, calc((100vw - 1180px) / 2)) clamp(5rem, 9vw, 8rem);
+ background: #f6faf9;
+}
+
+.home-updates__grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: clamp(1.5rem, 4vw, 3.5rem);
+}
+
+.home-update-list {
+ min-width: 0;
+ display: grid;
+ grid-template-rows: auto 1fr;
+}
+
+.home-update-list header {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 1rem 0;
+}
+
+.home-update-list header h3 {
+ margin: 0;
+ color: var(--home-ink);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.2rem;
+}
+
+.home-update-list header a {
+ color: var(--home-blue);
+ font-size: 0.85rem;
+ font-weight: 700;
+}
+
+.home-update-list__items {
+ display: grid;
+ grid-template-rows: repeat(3, minmax(0, 1fr));
+ gap: 0.75rem;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ counter-reset: home-update;
+}
+
+.home-update-list__items li {
+ counter-increment: home-update;
+ display: grid;
+ grid-template-columns: 2.25rem minmax(0, 1fr);
+ gap: 1rem;
+ padding: 1.25rem;
+ background: rgba(0, 151, 178, 0.045);
+}
+
+.home-update-list__items li::before {
+ content: counter(home-update);
+ padding-top: 0.15rem;
+ color: var(--home-blue);
+ font-size: 0.72rem;
+ font-weight: 800;
+ letter-spacing: 0.06em;
+}
+
+.home-update-list__items li.content-state {
+ counter-increment: none;
+ display: flex;
+ grid-template-columns: none;
+ background: transparent;
+}
+
+.home-update-list__items li.content-state::before {
+ content: '';
+ padding: 0;
+ font-size: 0.8rem;
+ letter-spacing: 0;
+}
+
+.home-update-list__items li.content-state--empty::before,
+.home-update-list__items li.content-state--error::before {
+ display: none;
+}
+
+.home-update-list__items a {
+ min-width: 0;
+ display: grid;
+ gap: 0.35rem;
+ color: var(--home-ink);
+}
+
+.home-update-list__items a:hover strong,
+.home-update-list__items a:focus-visible strong {
+ color: var(--home-blue);
+}
+
+.home-update-list__items a:focus-visible {
+ outline: 2px solid var(--home-blue);
+ outline-offset: 4px;
+}
+
+.home-update-list__items time {
+ color: #667982;
+ font-size: 0.78rem;
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+.home-update-list__items strong {
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(1.15rem, 2vw, 1.4rem);
+ line-height: 1.2;
+}
+
+.home-update-list__items p {
+ margin: 0.15rem 0 0;
+ color: #526670;
+ font-size: 0.94rem;
+ line-height: 1.45;
+}
+
+@media (max-width: 900px) {
+ .hero-news-slide {
+ height: 480px;
+ }
+
+ .hero-news-slide__image img {
+ min-height: 480px;
+ }
+
+ .hero-news-slide__content {
+ padding: 55px 42px 48px;
+ }
+
+ .hero-news-slide__content strong {
+ height: 132px;
+ font-size: 36px;
+ line-height: 44px;
+ }
+
+ .hero-news-slide__content > span {
+ height: 112px;
+ margin-top: 24px;
+ font-size: 20px;
+ line-height: 28px;
+ }
+
+ .hero-news-slide__read-more {
+ margin-top: 20px;
+ font-size: 0.96rem;
+ }
+
+ .home-question__answer,
+ .persona-heading {
+ grid-template-columns: 1fr;
+ }
+
+ .home-question__image {
+ min-height: auto;
+ }
+
+ .home-question__image img {
+ height: auto;
+ aspect-ratio: 16 / 9;
+ }
+
+ .home-question__image--illustration img {
+ aspect-ratio: 1;
+ }
+
+ .home-question__image--placeholder {
+ min-height: 0;
+ aspect-ratio: 16 / 9;
+ }
+
+ .persona-picker {
+ grid-template-columns: 1fr;
+ }
+
+ .persona-resource-links {
+ grid-template-columns: 1fr;
+ }
+
+ .persona-demo-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .persona-results {
+ min-height: 560px;
+ }
+
+ .persona-panel h3 {
+ max-width: 12ch;
+ }
+
+}
+
+@media (max-width: 620px) {
+ .home-question,
+ .home-hero,
+ .home-updates {
+ padding-inline: 1.5rem;
+ }
+
+ .home-news-showcase {
+ padding-top: 0;
+ padding-bottom: 3.5rem;
+ }
+
+ .home-question {
+ padding-top: 3.75rem;
+ padding-bottom: 3.75rem;
+ }
+
+ .home-question__answer {
+ gap: 2.5rem;
+ }
+
+ .home-hero {
+ min-height: 820px;
+ align-items: flex-start;
+ padding-top: 4.5rem;
+ }
+
+ .hero-news-carousel {
+ width: calc(100% - var(--site-page-inset));
+ margin: 0 auto;
+ border-radius: 0.75rem;
+ }
+
+ .hero-news-carousel__toggle span:last-child {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ clip: rect(0 0 0 0);
+ }
+
+ .hero-news-slide {
+ height: auto;
+ flex-basis: calc(100% - 32px);
+ grid-template-columns: 1fr;
+ }
+
+ .hero-news-slide__image,
+ .hero-news-slide__image img {
+ grid-column: 1;
+ grid-row: 1;
+ min-height: 175px;
+ max-height: 175px;
+ }
+
+ .hero-news-slide__content {
+ grid-column: 1;
+ grid-row: 2;
+ min-height: 250px;
+ padding: 1.5rem 3.25rem 1.5rem 1.5rem;
+ }
+
+ .hero-news-slide__content strong {
+ height: auto;
+ font-size: 2rem;
+ line-height: 1.15;
+ }
+
+ .hero-news-slide__read-more {
+ margin-top: 1.25rem;
+ font-size: 0.95rem;
+ }
+
+ .hero-news-slide__read-more-icon {
+ width: 1.75rem;
+ height: 1.75rem;
+ font-size: 0.94rem;
+ }
+
+ .hero-news-slide__content > span {
+ display: none;
+ }
+
+ .hero-news-carousel__arrow {
+ width: 56px;
+ height: 56px;
+ flex-basis: 56px;
+ opacity: 1;
+ }
+
+ .hero-news-carousel__arrow::before {
+ width: 32px;
+ height: 3px;
+ }
+
+ .hero-news-carousel__arrow::after {
+ left: 12px;
+ width: 14px;
+ height: 14px;
+ border-width: 0 3px 3px 0;
+ }
+
+ .hero-news-carousel__arrow[data-news-next]::after {
+ right: 12px;
+ left: auto;
+ }
+
+ .home-hero h1 {
+ font-size: clamp(4rem, 21vw, 6rem);
+ }
+
+ .home-scroll-cue span:first-child {
+ display: none;
+ }
+
+ .persona-tabs {
+ display: flex;
+ gap: 0.65rem;
+ overflow-x: auto;
+ padding: 0 0 1rem;
+ scroll-snap-type: x mandatory;
+ scrollbar-width: thin;
+ }
+
+ .persona-resources {
+ padding: 3rem 1.5rem;
+ }
+
+ .persona-resource-card {
+ min-height: 310px;
+ }
+
+ .persona-demo-grid {
+ display: flex;
+ gap: 1rem;
+ overflow-x: auto;
+ padding: 0 0 1rem;
+ scroll-padding-inline: 0;
+ scroll-snap-type: x mandatory;
+ overscroll-behavior-inline: contain;
+ scrollbar-width: thin;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .persona-demo-card {
+ flex: 0 0 min(82vw, 320px);
+ scroll-snap-align: start;
+ }
+
+ .home-updates__grid {
+ grid-template-columns: 1fr;
+ }
+
+ .persona-tab {
+ flex: 0 0 min(82vw, 340px);
+ grid-template-columns: 2.75rem minmax(0, 1fr) auto;
+ gap: 0.8rem;
+ min-height: 8rem;
+ padding: 1rem;
+ border: 1px solid rgba(8, 36, 56, 0.19);
+ scroll-snap-align: start;
+ }
+
+ .persona-tab:last-child {
+ border-bottom: 1px solid rgba(8, 36, 56, 0.19);
+ }
+
+ .persona-tab:hover,
+ .persona-tab:focus-visible,
+ .persona-tab.is-active {
+ padding-left: 1rem;
+ }
+
+ .persona-tab__number {
+ display: none;
+ }
+
+ .persona-tab__icon {
+ width: 2.75rem;
+ height: 2.75rem;
+ }
+
+ .persona-tab__copy small {
+ font-size: 0.82rem;
+ }
+
+ .persona-results {
+ min-height: 590px;
+ }
+
+ .persona-panel {
+ padding: 2.25rem 1.5rem;
+ }
+
+ .persona-heading {
+ margin-bottom: 2rem;
+ }
+
+ .persona-panel h3 {
+ margin-bottom: 0.9rem;
+ }
+
+ .persona-demos__heading {
+ margin-bottom: 1.5rem;
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .hero-news-carousel__track,
+ .persona-tab::before,
+ .persona-tab,
+ .persona-tab__arrow,
+ .persona-panel {
+ animation: none;
+ transition: none;
+ }
+}
+
+.hero-news-slide__event-date {
+ color: var(--home-blue);
+ font-size: 0.875rem;
+ font-weight: 600;
+ line-height: 1.4;
+}
diff --git a/css/news.css b/css/news.css
index ba3700d..3a7f1db 100644
--- a/css/news.css
+++ b/css/news.css
@@ -6,7 +6,7 @@ body.news-page #header-placeholder {
position: relative;
overflow: hidden;
width: 100%;
- padding-bottom: 1.85rem;
+ padding-bottom: 1rem;
background-color: #0d5565;
background-image: url('../images/gradient-b-hero.jpg');
background-position: center;
@@ -33,7 +33,7 @@ body.news-page #header-placeholder {
.news-hero {
width: min(1100px, calc(100% - 160px));
margin: 0 auto;
- padding: 1.85rem 0 1.15rem;
+ padding: 1.05rem 0 0.75rem;
color: #ffffff;
}
@@ -44,10 +44,10 @@ body.news-page #header-placeholder {
.news-hero p {
max-width: 38rem;
- margin-top: 0.75rem;
+ margin-top: 0.45rem;
color: rgba(255, 255, 255, 0.88);
- font-size: 1.16rem;
- line-height: 1.48;
+ font-size: 1.04rem;
+ line-height: 1.42;
}
.news-featured-slot {
@@ -321,15 +321,6 @@ a.news-featured-card:focus-visible .news-featured-read-more-icon {
text-align: right;
}
-.news-empty-state {
- grid-column: 1 / -1;
- margin: 0;
- padding: 1.3rem;
- border: 1px solid var(--site-border);
- border-radius: 8px;
- color: var(--site-text-muted);
-}
-
.news-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -541,6 +532,10 @@ a.news-card:focus-visible {
margin: 0.15rem 0 1rem 1.5rem;
}
+.news-article-figure-source-small {
+ width: min(42%, 357px);
+}
+
.news-article-image-inline {
float: right;
width: min(48%, 420px);
@@ -757,22 +752,90 @@ a.news-card:focus-visible {
color: var(--site-text-muted);
}
+@media (max-width: 760px) {
+ .news-hero,
+ .news-featured-slot,
+ .news-controls-section,
+ .news-list-section,
+ .news-article {
+ width: min(calc(100% - var(--site-page-inset)), 1100px);
+ }
+
+ .news-article-page {
+ padding: 2.75rem 0 3.5rem;
+ }
+
+ .news-article-header {
+ margin-bottom: 1rem;
+ }
+
+ .news-article-header h1 {
+ margin-bottom: 0.4rem;
+ }
+
+ .news-article-content {
+ margin-top: 1.25rem;
+ }
+
+ .news-article-image-link img,
+ .news-article-figure img,
+ .news-article-content img {
+ width: auto;
+ max-width: 100%;
+ max-height: min(62vh, 28rem);
+ margin-inline: auto;
+ object-fit: contain;
+ }
+
+ .news-pagination {
+ justify-content: center;
+ gap: 0.3rem !important;
+ width: 100%;
+ padding: 0.35rem;
+ box-sizing: border-box;
+ overflow: visible;
+ }
+
+ .news-pagination-page {
+ min-width: 2.75rem !important;
+ min-height: 2.75rem !important;
+ padding-inline: 0.55rem !important;
+ font-size: 1rem !important;
+ }
+
+ .news-pagination-control {
+ flex: 1 1 0;
+ min-width: 0 !important;
+ min-height: 2.75rem !important;
+ padding-inline: 0.5rem !important;
+ font-size: 0.875rem !important;
+ }
+
+ .news-pagination-ellipsis {
+ display: grid;
+ width: 1rem;
+ min-width: 1rem;
+ height: 2.75rem;
+ font-size: 0.9rem;
+ }
+}
+
@media (max-width: 900px) {
.news-grid {
grid-template-columns: 1fr;
}
.news-gradient-stage {
- padding-bottom: 1.35rem;
+ padding-bottom: 1rem;
background-position: 58% center;
}
.news-hero {
- padding: 1.45rem 0 1rem;
+ padding: 1.05rem 0 0.75rem;
}
.news-hero h1 {
- margin-bottom: 0.65rem;
+ margin-bottom: 0.45rem;
}
.news-hero p {
@@ -786,6 +849,7 @@ a.news-card:focus-visible {
display: grid;
grid-template-columns: 1fr;
gap: 0;
+ height: auto;
min-height: 0;
background: rgba(16, 38, 58, 0.82);
padding: 0;
@@ -803,6 +867,7 @@ a.news-featured-card:focus-visible {
position: relative;
grid-column: 1;
grid-row: 1;
+ height: auto;
min-height: 210px;
border-bottom: 0;
}
@@ -815,6 +880,7 @@ a.news-featured-card:focus-visible {
.news-featured-slot .news-featured-content {
grid-column: 1;
grid-row: 2;
+ height: auto;
min-height: 0;
padding: 1.35rem;
border-right: 0;
@@ -849,6 +915,10 @@ a.news-featured-card:focus-visible {
margin: 0 0 1rem;
}
+ .news-article-figure-source-small {
+ width: min(100%, 357px);
+ }
+
}
@media (max-width: 620px) {
@@ -864,34 +934,67 @@ a.news-featured-card:focus-visible {
}
@media (max-width: 520px) {
- .news-hero,
-.news-featured-slot,
-.news-controls-section,
-.news-list-section,
-.news-article {
- width: min(100% - 1.25rem, 1100px);
+ .news-featured-slot .news-featured-card {
+ border-radius: 10px;
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
}
- .news-featured-slot .news-featured-image-link,
-.news-featured-slot .news-featured-image-link img {
- min-height: 185px;
+ .news-featured-slot .news-featured-image-link {
+ height: clamp(155px, 42vw, 185px);
+ min-height: 0;
+ }
+
+ .news-featured-slot .news-featured-image-link img {
+ height: 100%;
+ min-height: 0;
+ object-fit: cover;
}
.news-featured-slot .news-featured-content {
- padding: 1.15rem;
+ padding: 1rem;
}
- .news-pagination {
- width: fit-content;
- border-radius: 999px;
+ .news-featured-slot .news-card.news-featured-card h2 {
+ max-width: none;
+ margin: 0 0 0.55rem;
+ font-size: clamp(1.35rem, 6vw, 1.65rem);
+ line-height: 1.12;
}
- .news-pagination button {
- flex: 0 0 auto;
+ .news-featured-slot .news-featured-meta {
+ margin-top: 0.1rem;
+ font-size: 0.82rem;
}
- .news-pagination > button:not(.news-pagination-control):not([aria-current="page"]),
- .news-pagination-ellipsis {
- display: none;
+ .news-featured-slot .news-card.news-featured-card p:not(.news-featured-meta) {
+ display: -webkit-box;
+ margin-top: 0.65rem;
+ overflow: hidden;
+ font-size: 0.9rem;
+ line-height: 1.42;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ }
+
+ .news-featured-read-more {
+ gap: 0.55rem;
+ margin-top: 0.8rem;
+ font-size: 0.9rem;
+ }
+
+ .news-featured-read-more-icon {
+ width: 2.1rem;
+ height: 2.1rem;
+ font-size: 1.25rem;
+ }
+
+ .news-pagination {
+ gap: 0.4rem;
+ }
+
+ .news-pagination-control {
+ min-height: 2.75rem;
+ padding-inline: 0.8rem !important;
+ font-size: 0.875rem;
}
}
diff --git a/css/research.css b/css/research.css
new file mode 100644
index 0000000..8b086af
--- /dev/null
+++ b/css/research.css
@@ -0,0 +1,774 @@
+body.research-projects-page {
+ background: #ffffff;
+}
+
+.research-projects-page .page-shell {
+ padding-bottom: 4.5rem;
+}
+
+.research-projects-layout {
+ width: min(1180px, calc(100% - 4rem));
+ margin-inline: auto;
+}
+
+.research-projects-layout {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
+ gap: clamp(2.5rem, 5vw, 4.5rem);
+ align-items: start;
+ margin-top: 3.75rem;
+}
+
+.research-projects-section {
+ padding: 0 0 4.5rem;
+}
+
+.research-projects-section > h1 {
+ margin: 0 0 1.75rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.25rem, 4vw, 3.5rem);
+ font-weight: 700;
+ letter-spacing: -0.035em;
+ line-height: 1.05;
+}
+
+.research-projects-grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ column-gap: 2.5rem;
+}
+
+.research-project-card {
+ min-width: 0;
+ padding: 1.25rem 0;
+}
+
+.research-project-card > a {
+ display: grid;
+ grid-template-columns: 200px minmax(0, 1fr);
+ gap: 1.25rem;
+ align-items: start;
+ color: var(--site-text);
+}
+
+.research-project-card--unlinked {
+ display: grid;
+ grid-template-columns: 200px minmax(0, 1fr);
+ gap: 1.25rem;
+ align-items: start;
+}
+
+.research-project-card img {
+ display: block;
+ width: 200px;
+ aspect-ratio: 4 / 3;
+ object-fit: cover;
+ background: #edf1f2;
+}
+
+.research-project-card h3 {
+ margin: 0;
+ padding-top: 0.1rem;
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.15rem;
+ font-weight: 700;
+ letter-spacing: -0.01em;
+ line-height: 1.35;
+}
+
+.research-project-card > a:hover h3,
+.research-project-card > a:focus-visible h3 {
+ color: var(--site-link);
+}
+
+.research-project-card > a:focus-visible {
+ outline: 2px solid var(--site-link);
+ outline-offset: 4px;
+}
+
+.research-project-team {
+ margin: 0.6rem 0 0 225px;
+ color: var(--site-text-muted);
+ font-size: 0.88rem;
+ line-height: 1.45;
+}
+
+.research-project-card--unlinked .research-project-team {
+ grid-column: 2;
+ margin-left: 0;
+}
+
+.research-project-team span {
+ font-weight: 700;
+}
+
+.research-project-team span::after {
+ content: ':';
+}
+
+.research-approach {
+ position: sticky;
+ top: calc(var(--site-notice-height, 44px) + 82px + 1.5rem);
+ margin-top: 0;
+ padding: 0;
+}
+
+.research-approach h2 {
+ margin: 0 0 1.25rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.5rem;
+ font-weight: 700;
+ letter-spacing: -0.02em;
+ line-height: 1.2;
+}
+
+.research-approach-copy {
+ max-width: 47rem;
+}
+
+.research-approach-copy p {
+ margin: 0;
+ color: var(--site-text-muted);
+ font-size: 0.98rem;
+ line-height: 1.62;
+}
+
+.research-approach-copy p + p {
+ margin-top: 1rem;
+}
+
+.research-approach-copy strong {
+ color: var(--site-text);
+ font-weight: 700;
+}
+
+.research-github-link {
+ display: inline-block;
+ margin-top: 1.5rem;
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.research-github-link:hover,
+.research-github-link:focus-visible {
+ color: var(--site-text);
+}
+
+.research-project-detail {
+ width: min(920px, calc(100% - 4rem));
+ min-height: calc(100vh - 220px);
+ margin-inline: auto;
+ padding: 2.5rem 0 5rem;
+}
+
+.research-breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.4rem;
+ margin: 0 0 2.25rem;
+ color: var(--site-text-muted);
+ font-size: 0.88rem;
+ line-height: 1.4;
+}
+
+.research-breadcrumb a {
+ color: var(--site-link);
+ text-decoration: none;
+}
+
+.research-breadcrumb a:hover,
+.research-breadcrumb a:focus-visible {
+ color: var(--site-text);
+}
+
+.research-project-detail-header {
+ padding-bottom: 0;
+}
+
+.research-project-detail-header h1 {
+ margin: 0;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: clamp(2.25rem, 4.5vw, 3.5rem);
+ letter-spacing: -0.025em;
+ line-height: 1.08;
+}
+
+.research-project-hero {
+ margin: 2rem 0 0;
+}
+
+.research-project-hero img {
+ display: block;
+ width: auto;
+ max-width: 100%;
+ height: auto;
+ margin-inline: auto;
+}
+
+.research-project-detail-content {
+ max-width: 720px;
+}
+
+.research-project-detail--with-sidebar {
+ width: min(1100px, calc(100% - 4rem));
+}
+
+.research-project-detail-layout {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) 240px;
+ gap: clamp(2.5rem, 6vw, 5rem);
+ align-items: start;
+}
+
+.research-project-detail-layout--publications {
+ grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
+}
+
+.research-project-tools {
+ position: sticky;
+ top: calc(var(--site-notice-height, 44px) + 82px + 1.5rem);
+ z-index: 1;
+ margin-top: 2rem;
+ padding-left: 0;
+}
+
+.research-project-tools h2 {
+ margin: 0 0 0.85rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.05rem;
+ line-height: 1.3;
+}
+
+.research-project-tools a {
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.research-project-tools a:hover,
+.research-project-tools a:focus-visible {
+ color: var(--site-text);
+}
+
+.research-publications-sidebar {
+ max-height: calc(100vh - var(--site-notice-height, 44px) - 82px - 3rem);
+ overflow-y: auto;
+ padding-right: 0.75rem;
+}
+
+.research-publications-sidebar .research-related-publications {
+ margin: 0;
+ padding-left: 1.2rem;
+ color: var(--site-text-muted);
+ font-size: 0.9rem;
+ line-height: 1.55;
+}
+
+.research-project-resources {
+ margin-top: 2.5rem;
+ padding-top: 0;
+}
+
+.research-project-resources ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.research-project-resources li + li {
+ margin-top: 1.25rem;
+}
+
+.research-project-resources span {
+ display: block;
+ margin-top: 0.3rem;
+ color: var(--site-text-muted);
+ font-size: 0.88rem;
+ line-height: 1.5;
+}
+
+.behavioral-project-page .research-project-detail-layout {
+ display: grid;
+ grid-template-columns: minmax(0, 1000px) minmax(310px, 340px);
+ gap: clamp(2.5rem, 3.5vw, 3rem);
+}
+
+.behavioral-project-page .research-project-detail--with-sidebar {
+ width: min(1380px, calc(100% - 4rem));
+}
+
+.behavioral-project-page .research-project-detail-content {
+ max-width: none;
+}
+
+.behavioral-project-page .research-project-detail-content > section {
+ max-width: 760px;
+}
+
+.behavioral-project-supplement {
+ margin-top: 2rem;
+ padding-top: 0;
+}
+
+.behavioral-project-supplement h2 {
+ margin: 0 0 1rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.4rem;
+ line-height: 1.25;
+}
+
+.behavioral-project-supplement .research-related-publications {
+ display: grid;
+ grid-template-columns: 1fr;
+ margin: 0;
+ color: var(--site-text-muted);
+ font-size: 0.92rem;
+ line-height: 1.55;
+}
+
+.behavioral-project-supplement .research-related-publications article {
+ padding: 1.15rem 0;
+}
+
+.behavioral-project-supplement .research-related-publications p {
+ margin: 0;
+}
+
+.behavioral-project-supplement .research-related-publications strong {
+ color: var(--site-text);
+}
+
+.behavioral-project-supplement a {
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.behavioral-project-supplement a:hover,
+.behavioral-project-supplement a:focus-visible {
+ color: var(--site-text);
+}
+
+.behavioral-project-supplement .research-project-resources ul {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 1.4rem;
+}
+
+.behavioral-project-supplement .research-project-resources li + li {
+ margin-top: 0;
+}
+
+.behavioral-project-supplement .research-project-resources span {
+ font-size: 0.96rem;
+ line-height: 1.55;
+}
+
+.research-publications-sidebar .research-related-publications li + li {
+ margin-top: 1.25rem;
+}
+
+.research-sidebar-copy {
+ color: var(--site-text-muted);
+ font-size: 0.9rem;
+ line-height: 1.55;
+}
+
+.research-sidebar-copy p {
+ margin: 0;
+}
+
+.research-sidebar-copy p + p {
+ margin-top: 1.25rem;
+}
+
+.research-project-detail-content section {
+ padding: 1.75rem 0;
+}
+
+.research-project-detail-content h2 {
+ margin: 0 0 0.75rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.2rem;
+ line-height: 1.25;
+}
+
+.research-project-detail-content p {
+ margin: 0;
+ color: var(--site-text-muted);
+ font-size: 1.02rem;
+ line-height: 1.68;
+}
+
+.research-project-detail-content p + p {
+ margin-top: 1rem;
+}
+
+.research-project-inline-figure {
+ margin: 2rem 0 0;
+}
+
+.research-project-inline-figure img {
+ display: block;
+ width: 100%;
+ height: auto;
+}
+
+.research-project-inline-figure figcaption {
+ margin-top: 0.85rem;
+ color: var(--site-text-muted);
+ font-size: 0.86rem;
+ line-height: 1.55;
+}
+
+.research-project-inline-figure figcaption strong {
+ color: var(--site-text);
+}
+
+.research-project-detail-content p + ol,
+.research-project-detail-content p + ul {
+ margin-top: 1rem;
+}
+
+.research-project-detail-content ol,
+.research-project-detail-content ul {
+ margin-bottom: 0;
+ padding-left: 1.4rem;
+ color: var(--site-text-muted);
+ font-size: 1.02rem;
+ line-height: 1.65;
+}
+
+.research-project-detail-content li + li {
+ margin-top: 0.65rem;
+}
+
+.research-related-publications li + li {
+ margin-top: 1.25rem;
+}
+
+.research-project-detail-content a {
+ color: var(--site-link);
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.research-project-detail-content a:hover,
+.research-project-detail-content a:focus-visible {
+ color: var(--site-text);
+}
+
+.research-projects-section > h1,
+.research-projects-grid,
+.research-project-card,
+.research-approach,
+.research-project-detail-header,
+.research-project-detail-content section,
+.research-project-tools,
+.behavioral-project-supplement .research-related-publications article {
+ border: 0 !important;
+ box-shadow: none !important;
+}
+
+.research-project-card > a:hover h3,
+.research-project-card > a:focus-visible h3,
+.research-github-link,
+.research-breadcrumb a,
+.research-project-tools a,
+.behavioral-project-supplement a,
+.research-project-detail-content a {
+ text-decoration: none !important;
+}
+
+@media (max-width: 1100px) {
+ .research-projects-grid {
+ grid-template-columns: 1fr;
+ }
+}
+
+@media (max-width: 900px) {
+ .research-projects-layout {
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+
+ .research-approach {
+ position: static;
+ margin: 0 0 3rem;
+ padding: 2rem 0 0;
+ border-left: 0;
+ }
+
+ .research-project-detail-layout {
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+
+ .behavioral-project-page .research-project-detail-layout {
+ grid-template-columns: minmax(0, 1fr);
+ gap: 0;
+ }
+
+ .behavioral-project-page .research-project-detail-content,
+ .behavioral-project-supplement {
+ min-width: 0;
+ max-width: 100%;
+ }
+
+ .behavioral-project-page .research-project-detail-content > section {
+ max-width: none;
+ }
+
+ .behavioral-project-supplement {
+ margin-top: 1rem;
+ padding-top: 2rem;
+ border-top: 1px solid var(--site-border);
+ }
+
+ .research-project-tools {
+ position: static;
+ margin: 2rem 0 0;
+ padding: 1.5rem 0 0;
+ border-left: 0;
+ }
+
+ .research-publications-sidebar {
+ max-height: none;
+ overflow: visible;
+ padding-right: 0;
+ }
+
+ .behavioral-project-supplement .research-related-publications,
+ .behavioral-project-supplement .research-project-resources ul {
+ grid-template-columns: 1fr;
+ }
+}
+
+@media (max-width: 560px) {
+ .research-projects-layout {
+ width: min(calc(100% - var(--site-page-inset)), 1180px);
+ }
+
+ .research-projects-section > h1 {
+ margin-bottom: 1rem;
+ }
+
+ .research-project-card > a {
+ grid-template-columns: 112px minmax(0, 1fr);
+ gap: 1rem;
+ }
+
+ .research-project-card--unlinked {
+ grid-template-columns: 112px minmax(0, 1fr);
+ gap: 1rem;
+ }
+
+ .research-project-card img {
+ width: 112px;
+ }
+
+ .research-project-team {
+ margin-left: 128px;
+ }
+
+ .research-project-detail {
+ width: min(calc(100% - var(--site-page-inset)), 920px);
+ padding-top: 2.75rem;
+ }
+
+ .research-breadcrumb {
+ margin-bottom: 1.25rem;
+ }
+
+ .research-project-hero {
+ margin-top: 1.25rem;
+ }
+
+ .research-project-hero img,
+ .research-project-inline-figure img {
+ width: auto;
+ max-width: 100%;
+ max-height: min(62vh, 28rem);
+ margin-inline: auto;
+ object-fit: contain;
+ }
+
+ .research-project-detail-content h2,
+ .behavioral-project-supplement h2,
+ .research-project-tools h2 {
+ margin-bottom: 0.6rem;
+ }
+
+ .behavioral-project-page .research-project-detail--with-sidebar {
+ width: min(calc(100% - var(--site-page-inset)), 920px);
+ }
+
+ .behavioral-project-page .research-breadcrumb {
+ margin-bottom: 1.25rem;
+ }
+
+ .behavioral-project-page .research-project-detail-header h1 {
+ font-size: clamp(2rem, 10vw, 2.65rem);
+ }
+
+ .behavioral-project-page .research-project-hero {
+ margin-top: 1.25rem;
+ }
+
+ .behavioral-project-page .research-project-hero img {
+ width: 100%;
+ }
+
+ .behavioral-project-page .research-project-detail-content section {
+ padding: 1.4rem 0;
+ }
+
+ .behavioral-project-supplement .research-related-publications article {
+ padding: 1rem 0;
+ overflow-wrap: anywhere;
+ border-bottom: 1px solid var(--site-border) !important;
+ }
+
+ .behavioral-project-supplement .research-related-publications article:last-child {
+ border-bottom: 0 !important;
+ }
+}
+
+/* Project accordion: match the design width while allowing rows to grow. */
+.research-projects-page .research-projects-layout {
+ width: min(1113px, calc(100% - 3rem));
+ grid-template-columns: minmax(0, 1fr);
+ gap: 0;
+}
+
+.research-projects-accordion {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.research-project-accordion {
+ border-bottom: 2px solid rgba(93, 128, 149, 0.4);
+}
+
+.research-project-accordion > summary {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ gap: 1.5rem;
+ min-height: 64px;
+ padding: 1rem 1.25rem 1rem 0;
+ cursor: pointer;
+ list-style: none;
+}
+
+.research-project-accordion > summary::-webkit-details-marker { display: none; }
+
+.research-project-accordion > summary h2 {
+ margin: 0;
+ color: #07273d;
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.5rem;
+ font-weight: 700;
+ line-height: 1.35;
+ overflow-wrap: anywhere;
+}
+
+.research-project-accordion > summary::after {
+ content: '';
+ flex: 0 0 14px;
+ width: 14px;
+ height: 14px;
+ margin: 7px 4px 0 0;
+ border-top: 4px solid rgba(93, 128, 149, 0.4);
+ border-right: 4px solid rgba(93, 128, 149, 0.4);
+ transform: rotate(45deg);
+}
+
+.research-project-accordion[open] > summary::after { transform: rotate(135deg); }
+.research-project-accordion > summary:hover h2 { color: var(--site-link); }
+.research-project-accordion > summary:focus-visible {
+ outline: 3px solid var(--site-link);
+ outline-offset: 4px;
+}
+
+.research-project-panel {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr);
+ align-items: start;
+ gap: clamp(1.5rem, 4vw, 3rem);
+ padding: 0.75rem 0 2rem;
+}
+
+.research-project-panel--with-team {
+ grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
+}
+
+.research-project-panel-copy { min-width: 0; display: grid; gap: 1.5rem; }
+.research-project-info {
+ padding: 0 1rem;
+ border-left: 5px solid #8dcd4b;
+}
+.research-project-panel h3 {
+ margin: 0 0 0.75rem;
+ color: #07273d;
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.2rem;
+ font-weight: 700;
+ line-height: 1.35;
+}
+.research-project-panel p {
+ margin: 0;
+ color: #5d8095;
+ font-family: 'Source Sans Pro', sans-serif;
+ font-size: 1rem;
+ line-height: 1.65;
+}
+.research-project-team-card {
+ padding: 1.25rem;
+ background: #ecf0f5;
+ border-top: 5px solid #5d8095;
+}
+.research-project-team-card h3 { display: flex; align-items: center; gap: 0.625rem; margin-bottom: 1rem; }
+.research-project-team-card p { color: #282828; }
+.research-project-team-icon { position: relative; width: 24px; height: 24px; flex: 0 0 24px; }
+.research-project-team-icon::before {
+ content: ''; position: absolute; width: 12px; height: 12px;
+ left: 6px; top: 0; border-radius: 50%; background: #374957;
+}
+.research-project-team-icon::after {
+ content: ''; position: absolute; width: 18px; height: 10px;
+ left: 3px; bottom: 0; border-radius: 8px 8px 0 0; background: #374957;
+}
+@media (max-width: 800px) {
+ .research-project-panel--with-team { grid-template-columns: minmax(0, 1fr); }
+ .research-project-panel { padding-left: 0; padding-bottom: 2rem; }
+ .research-project-team-card { width: 100%; }
+}
+.research-project-link { color: var(--site-link); font-weight: 700; }
+.research-projects-page .research-approach {
+ position: static;
+ max-width: 760px;
+ margin: 0 0 3rem;
+ padding: 0;
+}
+
+@media (max-width: 600px) {
+ .research-projects-accordion { gap: 16px; }
+ .research-project-accordion > summary { padding-right: 12px; gap: 16px; }
+ .research-project-accordion > summary h2 { font-size: 1.25rem; line-height: 1.4; }
+ .research-project-panel { grid-template-columns: minmax(0, 1fr); padding-right: 0; gap: 1.5rem; }
+ .research-project-panel h3 { font-size: 1.2rem; line-height: 1.35; }
+}
+
+.research-project-panel--with-team > .research-project-team-card:only-child {
+ grid-column: 1 / -1;
+ max-width: 36rem;
+}
diff --git a/css/search.css b/css/search.css
index 1afadf7..35366b6 100644
--- a/css/search.css
+++ b/css/search.css
@@ -1,14 +1,15 @@
.search-container {
display: flex;
align-items: center;
- flex: 0 1 220px;
- max-width: 240px;
+ flex: 0 1 250px;
+ max-width: 270px;
+ width: 100%;
min-width: 160px;
- background: color-mix(in srgb, var(--site-primary) 8%, white);
- border-radius: 20px;
+ background: #ffffff;
+ border-radius: 5px;
border: 1px solid var(--site-border);
position: relative;
- padding: 0 10px;
+ padding: 0 9px;
margin-left: auto;
margin-right: 8px;
overflow: visible;
@@ -16,8 +17,7 @@
.search-container:focus-within {
border-color: #006f82;
- outline: 3px solid #006f82;
- outline-offset: 3px;
+ box-shadow: 0 0 0 2px rgba(0, 111, 130, 0.12);
}
.search-icon-btn {
@@ -50,13 +50,17 @@
width: 100%;
border: none;
background: transparent;
- padding: 10px 8px;
+ padding: 10px 6px;
font-size: 14px;
outline: none;
position: relative;
z-index: 2;
}
+.search-bar::-webkit-search-cancel-button {
+ cursor: pointer;
+}
+
.search-bar::placeholder {
color: var(--site-text-muted);
}
@@ -64,17 +68,21 @@
.search-results {
display: none;
position: absolute;
- top: calc(100% + 4px);
- left: 0;
+ top: calc(100% + 6px);
+ left: auto;
right: 0;
+ width: min(540px, calc(100vw - 32px));
+ max-width: calc(100vw - 32px);
background: var(--site-surface);
border: 1px solid var(--site-border);
- border-radius: 0 0 4px 4px;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
- max-height: 320px;
+ border-radius: 4px;
+ box-shadow: 0 8px 22px rgba(16, 38, 58, 0.14);
+ max-height: min(620px, calc(100vh - 150px));
+ overflow-x: hidden;
overflow-y: auto;
z-index: 1000;
- min-width: 240px;
+ min-width: 0;
+ box-sizing: border-box;
}
.search-results.is-visible {
@@ -82,37 +90,97 @@
}
.search-results-list {
- padding: 10px 0;
+ padding: 0;
+}
+
+.search-results-header {
+ display: flex;
+ align-items: center;
+ padding: 10px 15px;
+ color: var(--site-text-muted);
+ font-size: 0.75rem;
+ position: sticky;
+ top: 0;
+ z-index: 2;
+ border-bottom: 1px solid var(--site-border);
+ background: #f7f9fa;
+}
+
+.search-results-header strong {
+ color: var(--site-text);
+ font-size: 0.82rem;
}
.search-result-item {
display: block;
- padding: 12px 15px;
+ padding: 13px 15px;
border-bottom: 1px solid var(--site-border);
color: var(--site-text);
- transition: background 0.2s ease;
+ transition: background-color 0.12s ease;
}
.search-result-item:last-child {
- border-bottom: none;
+ border-bottom: 0;
}
.search-result-item:hover,
-.search-result-item:focus-visible {
+.search-result-item:focus-visible,
+.search-result-item.is-active {
background: var(--site-link-soft);
+ outline: none;
+}
+
+.search-result-meta {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ min-width: 0;
+ margin-bottom: 5px;
+ font-size: 0.69rem;
+}
+
+.search-result-section {
+ flex: 0 0 auto;
+ color: #006f82;
+ font-weight: 700;
+ letter-spacing: 0.045em;
+ text-transform: uppercase;
+}
+
+.search-result-path {
+ min-width: 0;
+ overflow: hidden;
+ color: var(--site-text-muted);
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.search-result-title {
font-weight: 650;
color: #006f82;
- margin-bottom: 4px;
- font-size: 14px;
+ margin-bottom: 5px;
+ font-size: 15px;
+ line-height: 1.28;
+ overflow-wrap: anywhere;
+}
+
+.search-result-title mark,
+.search-result-snippet mark {
+ padding: 0;
+ background: transparent;
+ color: inherit;
+ font-weight: 700;
}
.search-result-snippet {
- font-size: 12px;
+ font-size: 13px;
color: var(--site-text-muted);
line-height: 1.4;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+ overflow: hidden;
+ overflow-wrap: anywhere;
}
.search-no-results {
@@ -122,15 +190,86 @@
font-size: 14px;
}
+.search-no-results.content-state {
+ min-height: 0;
+ justify-content: flex-start;
+ border: 0;
+ border-radius: 0;
+ background: transparent;
+}
+
+.search-loading::after {
+ content: '';
+ width: 14px;
+ height: 14px;
+ margin-left: 8px;
+ border: 2px solid rgba(0, 111, 130, 0.2);
+ border-top-color: #006f82;
+ border-radius: 50%;
+ animation: search-spin 0.7s linear infinite;
+}
+
+.search-empty {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 6px;
+ padding: 32px 24px;
+ color: var(--site-text-muted);
+ text-align: center;
+}
+
+.search-empty strong {
+ color: var(--site-text);
+ font-size: 1rem;
+}
+
+.search-empty span {
+ max-width: 34ch;
+ font-size: 0.85rem;
+ line-height: 1.45;
+}
+
+@keyframes search-spin {
+ to { transform: rotate(360deg); }
+}
+
+@media (max-width: 1180px) {
+ .search-container {
+ flex-basis: 220px;
+ max-width: 240px;
+ }
+}
+
@media (max-width: 768px) {
.search-container {
- order: 2;
- max-width: none;
+ order: 4;
+ flex: 1 0 100%;
+ max-width: 100%;
+ min-width: 0;
width: 100%;
- margin: 10px 0 0;
+ margin: 0 0 10px;
+ box-sizing: border-box;
}
.search-results {
- min-width: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ max-width: 100%;
+ max-height: min(560px, calc(100vh - 160px));
+ border-radius: 4px;
+ }
+
+ .search-result-item {
+ padding-inline: 11px;
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .search-result-item,
+ .search-loading::after {
+ transition: none;
+ animation: none;
}
}
diff --git a/css/style.css b/css/style.css
index 43430e4..e60812f 100644
--- a/css/style.css
+++ b/css/style.css
@@ -1,5 +1,5 @@
-@import url('header-footer.css');
-@import url('search.css');
+@import url('header-footer.css?v=9');
+@import url('search.css?v=12');
* {
box-sizing: border-box;
@@ -15,21 +15,16 @@ body {
--color-lm-url: #007f96;
--color-lm-url-10: #007f961a;
--color-lm-accent: #9bcb5e;
- --color-lm-accent-10: #9bcb5e1a;
- --color-dm-primary: #5d8095;
- --color-dm-url: #0097b2;
- --color-dm-accent: #92991c;
- --color-dm-accent-10: #92991c1a;
--site-primary: var(--color-lm-primary);
--site-link: var(--color-lm-url);
--site-link-soft: var(--color-lm-url-10);
--site-accent: var(--color-lm-accent);
- --site-accent-soft: var(--color-lm-accent-10);
--site-bg: #ffffff;
--site-surface: #ffffff;
--site-text: #10263a;
--site-text-muted: #5d6f7c;
--site-border: rgba(93, 128, 149, 0.24);
+ --site-page-inset: 3rem;
margin: 0;
background: var(--site-bg);
color: var(--site-text);
@@ -41,6 +36,81 @@ a {
text-decoration: none;
}
+.content-state {
+ grid-column: 1 / -1;
+ display: flex;
+ width: 100%;
+ min-width: 0;
+ min-height: 4rem;
+ align-items: center;
+ gap: 0.7rem;
+ margin: 0;
+ padding: 1rem 0;
+ border: 0;
+ border-top: 1px solid var(--site-border);
+ border-radius: 0;
+ background: transparent;
+ color: var(--site-text-muted);
+ font-size: 0.95rem;
+ font-weight: 400;
+ line-height: 1.45;
+ text-align: left;
+}
+
+.content-state::before {
+ flex: 0 0 auto;
+ display: block;
+}
+
+.content-state--loading::before {
+ content: '';
+ width: 1.75rem;
+ height: 2px;
+ background: var(--site-link);
+ transform-origin: left center;
+ animation: content-state-progress 1.15s ease-in-out infinite;
+}
+
+.content-state--empty::before {
+ display: none;
+}
+
+.content-state--error {
+ padding-left: 0.9rem;
+ border-top-color: rgba(140, 63, 55, 0.42);
+ border-left: 3px solid #8c3f37;
+ color: #71352f;
+}
+
+.content-state--error::before {
+ display: none;
+}
+
+@keyframes content-state-progress {
+ 0%,
+ 100% {
+ opacity: 0.35;
+ transform: scaleX(0.4);
+ }
+ 50% {
+ opacity: 1;
+ transform: scaleX(1);
+ }
+}
+
+.component-load-state {
+ width: min(1100px, calc(100% - var(--site-page-inset)));
+ margin: 1rem auto;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .content-state--loading::before {
+ animation: none;
+ opacity: 1;
+ transform: none;
+ }
+}
+
#header-placeholder,
#footer-placeholder {
opacity: 0;
@@ -49,10 +119,12 @@ a {
}
#header-placeholder {
- min-height: calc(92px + var(--site-notice-height));
+ min-height: calc(82px + var(--site-notice-height));
position: sticky;
top: 0;
z-index: 1000;
+ background-color: #ffffff !important;
+ background-image: none !important;
}
#footer-placeholder {
@@ -79,37 +151,6 @@ a {
padding: 5rem 0 3rem;
}
-.home-progress {
- min-height: calc(100vh - 370px);
- display: flex;
- flex-direction: column;
- justify-content: center;
-}
-
-.home-progress p {
- max-width: 42rem;
- color: var(--site-text-muted);
-}
-
-.home-progress a {
- color: var(--site-link);
- font-weight: 700;
- text-decoration: underline;
- text-underline-offset: 0.14em;
-}
-
-.stub-kicker {
- display: inline-block;
- padding: 0.35rem 0.7rem;
- border-radius: 999px;
- background: var(--site-link-soft);
- color: var(--site-link);
- font-weight: 700;
- letter-spacing: 0.04em;
- text-transform: uppercase;
- font-size: 0.8rem;
-}
-
.stub-hero h1,
.stub-page h1 {
font-family: 'Figtree', sans-serif;
@@ -125,41 +166,11 @@ a {
}
.stub-hero p,
-.stub-page p,
-.stub-card p {
+.stub-page p {
font-size: 1.08rem;
line-height: 1.65;
}
-.stub-grid {
- display: grid;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- gap: 1rem;
- margin: 2rem 0 0;
-}
-
-.stub-card {
- padding: 1.3rem;
- border-radius: 1.15rem;
- background: var(--site-surface);
- border: 1px solid var(--site-border);
- box-shadow: 0 16px 40px rgba(12, 40, 69, 0.06);
-}
-
-.stub-card h2 {
- margin-top: 0;
- margin-bottom: 0.5rem;
- font-family: 'Figtree', sans-serif;
- font-optical-sizing: auto;
- font-style: normal;
- font-size: 1.2rem;
-}
-
-.stub-card a {
- color: var(--site-link);
- font-weight: 700;
-}
-
.stub-page {
padding: 4rem 0 5rem;
}
@@ -192,7 +203,7 @@ a {
.policy-hero,
.policy-content {
- width: min(820px, calc(100% - 2rem));
+ width: min(820px, calc(100% - var(--site-page-inset)));
margin: 0 auto;
}
@@ -200,8 +211,31 @@ a {
padding: 4rem 0 1.5rem;
}
+.breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.4rem;
+ margin: 0 0 2.25rem;
+ color: var(--site-text-muted);
+ font-size: 0.88rem;
+ line-height: 1.4;
+}
+
+.breadcrumb a {
+ color: var(--site-link);
+ text-decoration: underline;
+ text-underline-offset: 0.15em;
+}
+
+.breadcrumb a:hover,
+.breadcrumb a:focus-visible {
+ color: var(--site-text);
+}
+
.policy-hero h1,
-.policy-content h2 {
+.policy-content h2,
+.policy-content h3,
+.policy-content h4 {
font-family: 'Figtree', sans-serif;
font-optical-sizing: auto;
font-style: normal;
@@ -246,6 +280,18 @@ a {
line-height: 1.2;
}
+.policy-content h3 {
+ margin: 1.5rem 0 0.1rem;
+ font-size: 1.15rem;
+ line-height: 1.3;
+}
+
+.policy-content h4 {
+ margin: 1.25rem 0 0;
+ font-size: 1rem;
+ line-height: 1.35;
+}
+
.policy-content p,
.policy-content li,
.policy-content blockquote {
@@ -301,100 +347,60 @@ a {
margin: 0;
}
-.excursion-content {
- gap: 1.25rem;
+.policy-content hr {
+ width: 100%;
+ margin: 1.5rem 0 0.6rem;
+ border: 0;
+ border-top: 1px solid var(--site-border);
}
-.excursion-summary {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 1rem;
- margin: 0.5rem 0 0.7rem;
+.policy-content table {
+ display: block;
+ width: 100%;
+ margin-top: 1rem;
+ overflow-x: auto;
+ border-collapse: collapse;
}
-.excursion-summary div {
- min-width: 0;
- padding: 1rem;
+.policy-content th,
+.policy-content td {
+ min-width: 8rem;
+ padding: 0.75rem;
border: 1px solid var(--site-border);
- border-radius: 8px;
- background: var(--site-surface);
+ vertical-align: top;
+ text-align: left;
}
-.excursion-summary span {
- display: block;
- margin-bottom: 0.28rem;
- color: var(--site-text-muted);
- font-size: 0.84rem;
- font-weight: 700;
- letter-spacing: 0.04em;
- text-transform: uppercase;
-}
-
-.excursion-summary a,
-.excursion-summary strong {
+.policy-content th {
+ background: var(--site-soft-bg);
color: var(--site-text);
- font-size: 1.12rem;
- font-weight: 800;
}
-.excursion-schedule {
- position: relative;
- display: grid;
- gap: 0;
- margin: 1rem 0 0;
- padding: 0;
- list-style: none;
+.policy-content table p {
+ margin: 0;
+ font-size: 0.95rem;
+ line-height: 1.45;
}
-.excursion-schedule::before {
- content: '';
- position: absolute;
- top: 0.75rem;
- bottom: 0.75rem;
- left: 7.65rem;
- width: 1px;
- background: var(--site-border);
+.policy-content table p + p {
+ margin-top: 0.55rem;
}
-.excursion-schedule li {
- position: relative;
- display: grid;
- grid-template-columns: 6.8rem minmax(0, 1fr);
- gap: 1.8rem;
- padding: 0.45rem 0 1.1rem;
- color: var(--site-text);
+.policy-figure {
+ margin: 1.6rem 0 1rem;
}
-.excursion-schedule li::before {
- content: '';
- position: absolute;
- top: 0.82rem;
- left: 7.33rem;
- width: 0.65rem;
- height: 0.65rem;
- border: 2px solid var(--site-bg);
- border-radius: 999px;
- background: var(--site-accent);
- box-shadow: 0 0 0 1px rgba(155, 203, 94, 0.45);
-}
-
-.excursion-schedule time {
- color: var(--site-link);
- font-weight: 800;
- line-height: 1.5;
-}
-
-.excursion-schedule span {
- min-width: 0;
- color: var(--site-text);
- font-size: 1.08rem;
- line-height: 1.55;
+.policy-figure img {
+ display: block;
+ width: 100%;
+ height: auto;
}
-.excursion-schedule em {
+.policy-figure figcaption {
+ margin-top: 0.8rem;
color: var(--site-text-muted);
- font-style: normal;
- font-weight: 700;
+ font-size: 0.95rem;
+ line-height: 1.55;
}
.video-embed {
@@ -482,6 +488,56 @@ a {
text-underline-offset: 0.12em;
}
+.resource-page .policy-hero,
+.resource-page .resource-layout {
+ width: min(1100px, calc(100% - var(--site-page-inset)));
+}
+
+.resource-primary .policy-hero {
+ width: 100%;
+ margin: 0;
+}
+
+.resource-layout {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
+ gap: 2.4rem;
+ align-items: start;
+}
+
+.resource-primary {
+ min-width: 0;
+}
+
+.resource-sidebar {
+ position: sticky;
+ top: calc(82px + 0.75rem);
+ align-self: start;
+ min-width: 0;
+ max-height: calc(100vh - 82px - 1.5rem);
+ overflow-y: auto;
+ padding-left: 1.2rem;
+ border-left: 1px solid var(--site-border);
+}
+
+.resource-sidebar h2 {
+ margin: 0 0 0.8rem;
+ font-size: clamp(1.35rem, 3vw, 1.75rem);
+}
+
+.resource-sidebar p {
+ margin: 0;
+ color: var(--site-text-muted);
+ font-size: 0.98rem;
+ line-height: 1.5;
+}
+
+.resource-sidebar hr {
+ margin: 0.9rem 0;
+ border: 0;
+ border-top: 1px solid var(--site-border);
+}
+
.policy-emphasis {
display: block;
margin-top: 1rem;
@@ -774,7 +830,7 @@ a {
}
.people-section {
- width: min(1220px, calc(100% - 2rem));
+ width: min(1220px, calc(100% - var(--site-page-inset)));
margin: 0 auto;
}
@@ -877,6 +933,423 @@ a {
color: var(--site-text-muted);
}
+.publications-page {
+ padding-bottom: 5rem;
+}
+
+.publications-page .policy-hero,
+.publications-page .policy-content {
+ width: min(1120px, calc(100% - 4rem));
+}
+
+.publications-page .policy-hero {
+ padding-top: 3.25rem;
+ padding-bottom: 1rem;
+}
+
+.publications-content {
+ gap: 1.75rem;
+}
+
+.publications-intro {
+ max-width: 820px;
+ color: var(--site-text-muted);
+}
+
+.publications-toolbar {
+ display: flex;
+ align-items: end;
+ justify-content: space-between;
+ gap: 2rem;
+ margin-top: 0.25rem;
+ padding: 1rem 0 1.25rem;
+ border-top: 1px solid var(--site-border);
+ border-bottom: 1px solid var(--site-border);
+}
+
+.publications-toolbar label {
+ display: grid;
+ gap: 0.4rem;
+ width: min(520px, 100%);
+}
+
+.publications-toolbar label span {
+ color: var(--site-text);
+ font-size: 0.82rem;
+ font-weight: 800;
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+}
+
+.publications-toolbar input {
+ width: 100%;
+ min-height: 2.75rem;
+ padding: 0.55rem 0.75rem;
+ border: 1px solid var(--site-border);
+ border-radius: 2px;
+ background: #ffffff;
+ color: var(--site-text);
+ font: inherit;
+}
+
+.publications-toolbar input:focus {
+ border-color: var(--site-link);
+ outline: 2px solid var(--site-link-soft);
+ outline-offset: 0;
+}
+
+.publications-results-count {
+ margin: 0 0 0.65rem;
+ color: var(--site-text-muted);
+ font-size: 0.9rem;
+ font-weight: 700;
+ white-space: nowrap;
+}
+
+.publications-browser {
+ display: grid;
+ grid-template-columns: 150px minmax(0, 1fr);
+ gap: 3rem;
+ align-items: start;
+}
+
+.publications-year-nav {
+ position: sticky;
+ top: 9rem;
+ display: grid;
+ border-top: 1px solid var(--site-border);
+}
+
+.publications-year-button {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1rem;
+ width: 100%;
+ padding: 0.75rem 0.65rem;
+ border: 0;
+ border-bottom: 1px solid var(--site-border);
+ border-left: 3px solid transparent;
+ background: transparent;
+ color: var(--site-text-muted);
+ font: inherit;
+ font-weight: 700;
+ text-align: left;
+ cursor: pointer;
+ transition: border-color 0.15s ease, color 0.15s ease;
+}
+
+.publications-year-button:hover,
+.publications-year-button:focus-visible {
+ color: var(--site-link);
+}
+
+.publications-year-button:focus-visible {
+ outline: 2px solid var(--site-link);
+ outline-offset: 2px;
+}
+
+.publications-year-button.is-active {
+ border-left-color: var(--site-link);
+ color: var(--site-text);
+}
+
+.publications-year-count {
+ color: var(--site-text-muted);
+ font-size: 0.78rem;
+ font-weight: 600;
+}
+
+.publications-year-button.is-active .publications-year-count {
+ color: var(--site-link);
+}
+
+.publications-years {
+ min-width: 0;
+}
+
+.publication-year[hidden] {
+ display: none;
+}
+
+.publication-year h2 {
+ margin: 0 0 0.75rem;
+ color: var(--site-text);
+ font-size: clamp(1.6rem, 3vw, 2rem);
+ line-height: 1.1;
+}
+
+.publications-list {
+ counter-reset: publication;
+ border-top: 1px solid var(--site-border);
+}
+
+.publications-list p,
+.publications-list p + p {
+ position: relative;
+ counter-increment: publication;
+ margin: 0;
+ padding: 1.15rem 0 1.15rem 3.25rem;
+ border: 0;
+ border-bottom: 1px solid var(--site-border);
+ background: transparent;
+ color: var(--site-text-muted);
+ font-size: 0.98rem;
+ line-height: 1.6;
+}
+
+.publications-list p::before {
+ position: absolute;
+ top: 1.25rem;
+ left: 0;
+ width: 2rem;
+ color: var(--site-text-muted);
+ content: counter(publication, decimal-leading-zero);
+ font-family: 'Figtree', sans-serif;
+ font-size: 0.78rem;
+ font-weight: 700;
+}
+
+.publications-list a {
+ display: block;
+ margin-bottom: 0.3rem;
+ color: var(--site-text);
+ font-family: 'Figtree', sans-serif;
+ font-size: 1.04rem;
+ font-weight: 700;
+ line-height: 1.35;
+ text-decoration: none;
+}
+
+.publications-list a:hover,
+.publications-list a:focus-visible {
+ color: var(--site-link);
+ text-decoration: underline;
+ text-underline-offset: 0.14em;
+}
+
+.publications-list .publication-inline-title a {
+ display: inline;
+ margin-bottom: 0;
+}
+
+.publications-list p[hidden],
+.publications-empty-state[hidden] {
+ display: none;
+}
+
+.publications-empty-state {
+ margin: 0;
+ padding: 1.5rem 0;
+ border-top: 1px solid var(--site-border);
+ color: var(--site-text-muted);
+}
+
+.publications-pagination {
+ display: none;
+}
+
+@media (max-width: 760px) {
+ html,
+ body {
+ max-width: 100%;
+ overflow-x: hidden;
+ overflow-x: clip;
+ }
+
+ body {
+ --site-page-inset: 3rem;
+ }
+
+ main :where(h1, h2, h3, p, li, a) {
+ overflow-wrap: anywhere;
+ }
+
+ main :where(img, video, canvas, iframe) {
+ max-width: 100%;
+ }
+
+ main :where(pre, table) {
+ max-width: 100%;
+ overflow-x: auto;
+ }
+
+ .stub-hero {
+ padding: 3rem 0 1.5rem;
+ }
+
+ .stub-hero h1 {
+ margin: 0 0 0.55rem;
+ }
+
+ .stub-page {
+ padding-top: 2.5rem;
+ }
+
+ .policy-hero {
+ padding: 2.75rem 0 1rem;
+ }
+
+ .policy-hero h1 {
+ margin-bottom: 0.7rem;
+ }
+
+ .policy-content h2 {
+ margin-top: 1.55rem;
+ }
+
+ .resource-page .policy-hero,
+ .resource-page .resource-layout {
+ width: min(calc(100% - var(--site-page-inset)), 1100px);
+ }
+
+ .resource-primary .policy-hero {
+ width: 100%;
+ }
+
+ .resource-layout {
+ grid-template-columns: minmax(0, 1fr);
+ }
+
+ .resource-sidebar {
+ position: static;
+ margin-top: 1.25rem;
+ padding-top: 1.25rem;
+ padding-left: 0;
+ border-top: 1px solid var(--site-border);
+ border-left: 0;
+ }
+
+ .publications-page .policy-hero,
+ .publications-page .policy-content {
+ width: min(calc(100% - var(--site-page-inset)), 1100px);
+ }
+
+ .publications-page .policy-content {
+ grid-template-columns: minmax(0, 1fr);
+ }
+
+ .publications-toolbar {
+ display: grid;
+ align-items: stretch;
+ justify-content: stretch;
+ gap: 0.4rem;
+ }
+
+ .publications-toolbar label {
+ min-width: 0;
+ width: 100%;
+ }
+
+ .publications-toolbar input,
+ .publications-browser,
+ .publication-year,
+ .publications-list {
+ min-width: 0;
+ max-width: 100%;
+ }
+
+ .publications-results-count {
+ margin-bottom: 0;
+ }
+
+ .publications-browser {
+ display: block;
+ }
+
+ .publications-year-nav {
+ position: static;
+ display: flex;
+ margin: 0 -0.625rem 1.75rem 0;
+ padding-right: 0.625rem;
+ overflow-x: auto;
+ border-top: 0;
+ border-bottom: 1px solid var(--site-border);
+ overscroll-behavior-inline: contain;
+ scrollbar-width: thin;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .publications-year-button {
+ flex: 0 0 auto;
+ width: auto;
+ min-height: 44px;
+ border-bottom: 3px solid transparent;
+ border-left: 0;
+ }
+
+ .publications-year-button.is-active {
+ border-bottom-color: var(--site-link);
+ }
+
+ .publications-list p,
+ .publications-list p + p {
+ padding-left: 2.5rem;
+ overflow-wrap: anywhere;
+ }
+
+ .publications-list a {
+ overflow-wrap: anywhere;
+ }
+
+ .publications-pagination:not(:empty) {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.65rem;
+ width: 100%;
+ max-width: 100%;
+ margin-top: 1.5rem;
+ padding-top: 1rem;
+ border-top: 1px solid var(--site-border);
+ }
+
+ .publications-pagination button,
+ .publications-pagination select {
+ min-height: 44px;
+ border: 1px solid var(--site-border);
+ border-radius: 6px;
+ background: #ffffff;
+ color: var(--site-text);
+ font: inherit;
+ font-size: 0.875rem;
+ font-weight: 700;
+ }
+
+ .publications-pagination button {
+ padding: 0.55rem 0.8rem;
+ cursor: pointer;
+ }
+
+ .publications-pagination button:disabled {
+ cursor: not-allowed;
+ background: #f5f7f8;
+ color: var(--site-text-muted);
+ opacity: 0.58;
+ }
+
+ .publications-pagination label {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+ color: var(--site-text);
+ font-size: 0.9rem;
+ font-weight: 700;
+ white-space: nowrap;
+ }
+
+ .publications-pagination select {
+ min-width: 3.5rem;
+ padding: 0.45rem 1.55rem 0.45rem 0.6rem;
+ }
+
+ .publications-pagination button:focus-visible,
+ .publications-pagination select:focus-visible {
+ outline: 3px solid var(--site-link);
+ outline-offset: 2px;
+ }
+}
+
.talks-page {
padding-bottom: 5rem;
}
@@ -1077,10 +1550,6 @@ a {
}
@media (max-width: 900px) {
- .stub-grid {
- grid-template-columns: 1fr;
- }
-
.vision-content-layout {
grid-template-columns: 1fr;
}
@@ -1108,11 +1577,25 @@ a {
grid-column: auto;
grid-row: auto;
flex-direction: row;
- flex-wrap: wrap;
- gap: 0.35rem 0.8rem;
+ flex-wrap: nowrap;
+ gap: 0.8rem;
+ width: 100%;
+ max-width: 100%;
margin: 0 0 2.2rem;
- padding: 0 0 1.1rem;
+ padding: 0 0 0.65rem;
border-bottom: 1px solid var(--site-border);
+ overflow-x: auto;
+ overflow-y: hidden;
+ overscroll-behavior-inline: contain;
+ scrollbar-width: thin;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .in-the-news-years a {
+ display: inline-flex;
+ flex: 0 0 auto;
+ min-height: 44px;
+ align-items: center;
}
.nextgens-list {
@@ -1153,28 +1636,6 @@ a {
padding-top: 3.2rem;
}
- .excursion-summary {
- grid-template-columns: 1fr;
- }
-
- .excursion-schedule::before {
- left: 0.32rem;
- }
-
- .excursion-schedule li {
- grid-template-columns: 1fr;
- gap: 0.15rem;
- padding-left: 1.65rem;
- }
-
- .excursion-schedule li::before {
- left: 0;
- }
-
- .excursion-schedule span {
- font-size: 1rem;
- }
-
.in-the-news-list li {
grid-template-columns: 1fr;
gap: 0.2rem;
@@ -1194,11 +1655,94 @@ a {
}
.people-grid {
- grid-template-columns: 1fr;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ align-items: start;
+ gap: 2.5rem 0.9rem;
}
.person-card {
+ width: 100%;
min-height: 0;
+ gap: 0.7rem;
+ }
+
+ .person-image-wrap {
+ aspect-ratio: 1;
+ }
+
+ .person-details {
+ text-align: left;
+ }
+
+ .person-details h3 {
+ min-height: 0;
+ margin-bottom: 0.25rem;
+ justify-content: flex-start;
+ font-size: 1rem;
+ }
+
+ .person-role,
+ .person-affiliation {
+ font-size: 0.875rem;
+ }
+
+ .person-affiliation {
+ margin-top: 0.35rem;
+ }
+
+ .person-card.is-expanded {
+ grid-column: 1 / -1;
+ grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr);
+ gap: 1rem;
+ }
+
+ .person-card.is-expanded .person-image-wrap {
+ grid-row: 1;
+ }
+
+ .person-card.is-expanded .person-details {
+ align-self: center;
+ }
+
+ .person-card.is-expanded .person-card-toggle {
+ grid-column: 1 / -1;
+ }
+
+ .person-card-toggle {
+ display: inline-flex;
+ width: 100%;
+ min-height: 44px;
+ align-items: center;
+ justify-content: space-between;
+ gap: 0.5rem;
+ padding: 0.55rem 0;
+ border: 0;
+ border-top: 1px solid var(--site-border);
+ border-radius: 0;
+ background: var(--site-surface);
+ color: var(--site-link);
+ cursor: pointer;
+ font: inherit;
+ font-size: 0.875rem;
+ font-weight: 700;
+ text-align: left;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .person-card-toggle::after {
+ content: '+';
+ font-size: 1.15rem;
+ font-weight: 700;
+ line-height: 1;
+ }
+
+ .person-card.is-expanded .person-card-toggle::after {
+ content: '\2212';
+ }
+
+ .person-card-toggle:focus-visible {
+ outline: 3px solid var(--site-link);
+ outline-offset: 2px;
}
.talks-section summary {
diff --git a/data/events.json b/data/events.json
index 1a4b25b..9bf09cb 100644
--- a/data/events.json
+++ b/data/events.json
@@ -1,37 +1,181 @@
[
{
- "title": "Experiential Introduction to AI and Ecology Course - Part 2: Field Course",
- "url": "events/2027-01-experiential-introduction-ai-and-ecology-course-part-2-field-course.html",
- "date": "Mon, Jan 4 - Sun, Jan 24 2027",
- "description": "(Tentative Dates for Field Course Portion) Experiential Introduction to AI and...",
- "image": "",
- "imageAlt": "Experiential Introduction to AI and Ecology Course - Part 2: Field Course",
- "startDate": "2027-01-04"
- },
- {
- "title": "Experiential Introduction to AI and Ecology Course - Part 1",
- "url": "events/2026-08-experiential-introduction-ai-and-ecology-course-part-1.html",
- "date": "Tue, Aug 25 2026, Tue, Sep 1 2026, Tue, Sep 8 2026, Tue, Sep 15 2026, Mon, Sep 28 2026, Tue, Oct 6 2026, Tue, Oct 13 2026, Tue, Oct 20 2026, Tue, Oct 27 2026, Tue, Nov 3 2026, Tue, Nov 10 2026, Tue, Nov 17 2026, Tue, Nov 24 2026, Tue, Dec 1 2026, Tue, Dec 8 2026, Tue, Dec 15 2026",
- "description": "Format: Virtual, mostly synchronous Class Time: Tuesdays at 2:00 PM ET (Zoom)...",
- "image": "",
- "imageAlt": "Experiential Introduction to AI and Ecology Course - Part 1",
- "startDate": "2026-08-25"
+ "title": "Invitation Only - Experiential Introduction to AI and Ecology Field Course",
+ "url": "events/2027-01-invitation-only-experiential-introduction-ai-and-ecology-field-course.html",
+ "date": "Tue, Jan 5 - Tue, Jan 26 2027",
+ "description": "Event Overview Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, project...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2027-01-05",
+ "endDate": "2027-01-26"
+ },
+ {
+ "title": "AI and Ecology Course: Module 5 Week 2 (Advanced Ecology: Global Biodiversity: An AI perspective)",
+ "url": "events/2026-11-ai-and-ecology-course-module-5-week-2-advanced-ecology-global-biodiversity-ai-perspective.html",
+ "date": "Tue, Nov 17 2026",
+ "description": "Session Instructor - Laura Pollock, McGill University Summary - Module 5: Advanced Ecology This module explores lon...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-11-17",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 5 Week 1 (Advanced Ecology: Long-term Ecosystem Dynamics)",
+ "url": "events/2026-11-ai-and-ecology-course-module-5-week-1-advanced-ecology-long-term-ecosystem-dynamics.html",
+ "date": "Tue, Nov 10 2026",
+ "description": "Session Instructor - Sydne Record, University of Maine Summary - Module 5: Advanced Ecology This module explores lo...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-11-10",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 4 Week 2 (Advanced Methods and Best Practices in FAIR AI & ML: Best Practices for FAIR AI and ML)",
+ "url": "events/2026-11-ai-and-ecology-course-module-4-week-2-advanced-methods-and-best-practices-fair-ai-ml-best-practices-fair-ai-and-ml.html",
+ "date": "Tue, Nov 3 2026",
+ "description": "Session Instructor - Hilmar Lapp, Neuromatch Module 4: Advanced Methods and Best Practices in FAIR AI & ML: Best Pr...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-11-03",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 4 Week 1 (Advanced Methods and Best Practices in FAIR AI & ML: Advanced Methods in AI and ML)",
+ "url": "events/2026-10-ai-and-ecology-course-module-4-week-1-advanced-methods-and-best-practices-fair-ai-ml-advanced-methods-ai-and-ml.html",
+ "date": "Tue, Oct 27 2026",
+ "description": "Session Instructor - Wei-Lun Chao, Boston University Module 4: Advanced Methods and Best Practices in FAIR AI & ML:...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-10-27",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 3 Week 3 (AI Literacy: Key Modalities and Modeling Paradigms: Introduction to Field Technologies)",
+ "url": "events/2026-10-ai-and-ecology-course-module-3-week-3-ai-literacy-key-modalities-and-modeling-paradigms-introduction-field-technologies.html",
+ "date": "Tue, Oct 20 2026",
+ "description": "Session Instructor - Justin Kitzes Module 3 - AI Literacy: Key Modalities and Modeling Paradigms: Introduction to F...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-10-20",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 3 Week 2 (AI Literacy: Key Modalities and Modeling Paradigms: Computer Vision/Remote Sensing)",
+ "url": "events/2026-10-ai-and-ecology-course-module-3-week-2-ai-literacy-key-modalities-and-modeling-paradigms-computer-visionremote-sensing.html",
+ "date": "Tue, Oct 13 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-10-13",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 3 Week 1 (AI Literacy: Key Modalities and Modeling Paradigms: Introduction to Edge Computing)",
+ "url": "events/2026-10-ai-and-ecology-course-module-3-week-1-ai-literacy-key-modalities-and-modeling-paradigms-introduction-edge-computing.html",
+ "date": "Tue, Oct 6 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-10-06",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 2 Week 2 (Intro to Evolutionary Biology: Niches and the Dynamics That Shape Them)",
+ "url": "events/2026-09-ai-and-ecology-course-module-2-week-2-intro-evolutionary-biology-niches-and-dynamics-shape-them.html",
+ "date": "Tue, Sep 29 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-09-29",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 2 Week 1 (Intro to Evolutionary Biology: Foundations in Evolutionary Biology)",
+ "url": "events/2026-09-ai-and-ecology-course-module-2-week-1-intro-evolutionary-biology-foundations-evolutionary-biology.html",
+ "date": "Tue, Sep 22 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-09-22",
+ "time": "2–3pm"
+ },
+ {
+ "title": "Seminar: A Generative Pretrained Transformer for Genomic Photosynthesis (GPTgp)",
+ "url": "events/2026-09-seminar-generative-pretrained-transformer-genomic-photosynthesis-gptgp.html",
+ "date": "Mon, Sep 21 2026",
+ "description": "Lianhong Gu and Mengjun Shu of Oak Ridge National Laboratory present GPTgp, an AI foundation model project connecting genomic variation with photosynthetic traits.",
+ "image": "../images/events-images/gptgp.png",
+ "imageAlt": "Plant leaf with DNA strand and AI.",
+ "startDate": "2026-09-21",
+ "endDate": "2026-09-21",
+ "time": "4–5pm ET"
+ },
+ {
+ "title": "AI and Ecology Course: Module 1 Week 3 (Course Foundations: Exploring the Field Sites: Ecology and Research Themes)",
+ "url": "events/2026-09-ai-and-ecology-course-module-1-week-3-course-foundations-exploring-field-sites-ecology-and-research-themes.html",
+ "date": "Tue, Sep 15 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-09-15",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 1 Week 2 (Course Foundations: AI for Ecology: Practical Applications)",
+ "url": "events/2026-09-ai-and-ecology-course-module-1-week-2-course-foundations-ai-ecology-practical-applications.html",
+ "date": "Tue, Sep 8 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-09-08",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 1 Week 1 (Course Foundations: Introduction to AI for Ecology)",
+ "url": "events/2026-09-ai-and-ecology-course-module-1-week-1-course-foundations-introduction-ai-ecology.html",
+ "date": "Tue, Sep 1 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-09-01",
+ "time": "2–3pm"
+ },
+ {
+ "title": "AI and Ecology Course: Module 0 Week 1 (Orientation: Administration and Introduction to Course Tools)",
+ "url": "events/2026-08-ai-and-ecology-course-module-0-week-1-orientation-administration-and-introduction-course-tools.html",
+ "date": "Tue, Aug 25 2026",
+ "description": "Course Description Experiential Introduction to AI and Ecology is a year-long graduate-level interdisciplinary, pro...",
+ "image": "../images/events-images/ai-ecology-course-icon.jpg",
+ "imageAlt": "Experiential Introduction to AI and Ecology course icon",
+ "startDate": "2026-08-25",
+ "time": "2–3pm"
+ },
+ {
+ "title": "Version Control with Git",
+ "url": "events/2026-08-version-control-git.html",
+ "date": "Fri, Aug 21 2026",
+ "description": "Learn how to track changes, collaborate efficiently, and manage your projects using Git and GitHub.",
+ "image": "../images/events-images/version-control-with-git-event.png",
+ "imageAlt": "Version Control with Git",
+ "startDate": "2026-08-21",
+ "time": "11am–4pm"
},
{
"title": "FloraPalooza 2026",
"url": "events/2026-08-florapalooza-2026.html",
"date": "Mon, Aug 17 - Thu, Aug 20 2026",
"description": "",
- "image": "../events images/florapalooza-flyer-1.png",
+ "image": "../images/events-images/florapalooza-flyer-1.png",
"imageAlt": "Poster with details for FloraPalooza 2026",
- "startDate": "2026-08-17"
+ "startDate": "2026-08-17",
+ "endDate": "2026-08-20"
},
{
"title": "Designing for Discovery: Shaping Imageomics Tools for Biologists at the Evolution Conference",
"url": "events/2026-06-designing-discovery.html",
"date": "Sat, Jun 20 2026",
"description": "Workshop Agenda | Tutorial Website About the Event: Imageomics Institute is...",
- "image": "../events images/designing-for-discovery-flyer-1.png",
+ "image": "../images/events-images/designing-for-discovery-flyer-1.png",
"imageAlt": "Designing for Discovery: Shaping Imageomics Tools For Biologists",
"startDate": "2026-06-20"
},
@@ -40,7 +184,7 @@
"url": "events/2026-04-ai-spy-my-little-eye-something-wild.html",
"date": "Wed, Apr 29 2026",
"description": "As part of COSI's Science Festival, we're hosting a family-oriented event on...",
- "image": "../events images/ai-spy.png",
+ "image": "../images/events-images/ai-spy.png",
"imageAlt": "AI Spy with my Little Eye Something Wild",
"startDate": "2026-04-29"
},
@@ -49,7 +193,7 @@
"url": "events/2026-04-seminar-pixels-are-data-image-analysis-tools-known-and-unknown-unknowns.html",
"date": "Mon, Apr 20 2026",
"description": "Please join us Monday, April 20 @4pm EST on Zoom for the next Imageomics Seminar...",
- "image": "../events images/beth-cimini-seminar-145bf5a0.jpg",
+ "image": "../images/events-images/beth-cimini-seminar-145bf5a0.jpg",
"imageAlt": "Seminar Flyer with Title and research image",
"startDate": "2026-04-20"
},
@@ -58,17 +202,17 @@
"url": "events/2026-04-designing-discovery.html",
"date": "Thu, Apr 16 2026, Fri, Apr 17 2026",
"description": "About the Event The Imageomics Institute is hosting a workshop as part of the...",
- "image": "../events images/designing-for-discovery-flyer_0.png",
+ "image": "../images/events-images/designing-for-discovery-flyer_0.png",
"imageAlt": "Designing for Discovery: Shaping Imageomics Tools for Biologists",
"startDate": "2026-04-16"
},
{
- "title": "Event: First Imageomics Conference",
- "url": "events/2026-04-event-first-imageomics-conference.html",
- "date": "Tue, Apr 14 2026, Wed, Apr 15 2026, Thu, Apr 16 2026, Fri, Apr 17 2026",
- "description": "Imageomics is hosting the First Imageomics Conference April 14-16, 2026 at The...",
- "image": "../events images/imageomics-conference-flyer.png",
- "imageAlt": "Event: First Imageomics Conference",
+ "title": "First Imageomics Conference",
+ "url": "events/imageomics-conference/index.html",
+ "date": "Tue, Apr 14 2026 - Fri, Apr 17 2026",
+ "description": "Four days of big ideas, community building, research talks, and hands-on Imageomics workshops in Columbus, Ohio.",
+ "image": "../images/events-images/imageomics-conference-flyer.png",
+ "imageAlt": "First Imageomics Conference event flyer",
"startDate": "2026-04-14"
},
{
@@ -76,7 +220,7 @@
"url": "events/2026-04-seminar-beyond-species-identification-plntnets-large-scale-ai-pipeline-downstream-biodiversity-inference.html",
"date": "Thu, Apr 9 2026",
"description": "Please join us on Thursday April 9 @ 10am ET for an Imageomics Seminar, Beyond...",
- "image": "../events images/pierre_bonnet_april_14-b5afd37c.jpg",
+ "image": "../images/events-images/pierre_bonnet_april_14-b5afd37c.jpg",
"imageAlt": "Pierre Bonnet Headshot",
"startDate": "2026-04-09"
},
@@ -85,7 +229,7 @@
"url": "events/2026-03-seminar-ai-based-arthropod-biodiversity-bugbox-lessons-learned-over-first-four-years.html",
"date": "Mon, Mar 23 2026",
"description": "Please join us on Monday, March 23rd at 4pm ET for an Imageomics Seminar, AI...",
- "image": "../events images/kelton_headshot-0ea15825.jpg",
+ "image": "../images/events-images/kelton_headshot-0ea15825.jpg",
"imageAlt": "Man with a beard wearing glasses and a wide brimmed hat",
"startDate": "2026-03-23"
},
@@ -94,7 +238,7 @@
"url": "events/2026-03-seminar-images-insight-cloud-based-morphometrics-and-ai-classification-3d-knockout-embryos.html",
"date": "Mon, Mar 9 2026",
"description": "Please join us on Monday, March 9th @4pm EST for the next Imageomics Seminar...",
- "image": "../events images/murat-maga-seminar-banner-1.png",
+ "image": "../images/events-images/murat-maga-seminar-banner-1.png",
"imageAlt": "Seminar Flyer with Title and picture of a white mouse on a DNA molecule",
"startDate": "2026-03-09"
},
@@ -103,7 +247,7 @@
"url": "events/2026-02-seminar-rethinking-semantics-biological-trait-recognition.html",
"date": "Mon, Feb 23 2026",
"description": "Join us on Monday, February 23rd @4pm EST for the next Imageomics Seminar...",
- "image": "../events images/copy-of-sabina-leonelli-seminar.png",
+ "image": "../images/events-images/copy-of-sabina-leonelli-seminar.png",
"imageAlt": "Seminar: Rethinking the Semantics of Biological Trait Recognition",
"startDate": "2026-02-23"
},
@@ -112,7 +256,7 @@
"url": "events/2026-02-seminar-bioclip-2-and-biocap-extending-species-classification-rich-ecological-understanding.html",
"date": "Mon, Feb 9 2026",
"description": "Join us for our next seminar on February 9th at 4pm EST where Imageomics...",
- "image": "../events images/jianyang-gu-headshot.jpg",
+ "image": "../images/events-images/jianyang-gu-headshot.jpg",
"imageAlt": "Jianyang Gu seminar BioCLIP 2 and BioCAP: Extending Species Classification to Rich Ecological Understanding",
"startDate": "2026-02-09"
},
@@ -121,7 +265,7 @@
"url": "events/2025-11-seminar-mothbox-open-science-tool-automated-insect-monitoring.html",
"date": "Mon, Nov 24 2025",
"description": "Join us for a seminar hosted by the Imageomics Institute Monday at 4pm ET on...",
- "image": "../events images/andy-quitmeyer-seminar-1.png",
+ "image": "../images/events-images/andy-quitmeyer-seminar-1.png",
"imageAlt": "Andy Quitmeyer with a bug on his face",
"startDate": "2025-11-24"
},
@@ -148,7 +292,7 @@
"url": "events/2025-08-funcapalooza-2025-get-your-func-tionality.html",
"date": "Mon, Aug 18 - Thu, Aug 21 2025",
"description": "August 18-21, 2025 A collaborative hands-on machine learning event for...",
- "image": "../events images/1-bcba49f0.jpg",
+ "image": "../images/events-images/1-bcba49f0.jpg",
"imageAlt": "Funcapalooza 2025",
"startDate": "2025-08-18"
},
@@ -157,7 +301,7 @@
"url": "events/2025-04-wild-data-showcasing-ai-ecology-and-field-imageomics.html",
"date": "Thu, Apr 17 2025",
"description": "Join us for a public showcase of student research from the year-long AI &...",
- "image": "../events images/ai-leopard.jpeg",
+ "image": "../images/events-images/ai-leopard.jpeg",
"imageAlt": "an image of a leopard with computer network lines hyperimposed on top of the image",
"startDate": "2025-04-17"
},
@@ -166,7 +310,7 @@
"url": "events/2025-04-imageomics-community-and-collaborators-day.html",
"date": "Thu, Apr 17 2025",
"description": "The Imageomics Institute’s Community and Collaborators Day on April 17, 2025...",
- "image": "../events images/copy-of-2025-all-hands-meeting-1-e84acdaa.png",
+ "image": "../images/events-images/copy-of-2025-all-hands-meeting-1-e84acdaa.png",
"imageAlt": "Imageomics Community and Collaborators Day",
"startDate": "2025-04-17"
},
@@ -175,7 +319,7 @@
"url": "events/2025-04-imageomics-2025-all-hands-meeting.html",
"date": "Wed, Apr 16 - Fri, Apr 18 2025",
"description": "The Imageomics Institute’s All-Hands Meeting and NextGen Day occurring between...",
- "image": "../events images/2025-all-hands-meeting-1-c4646505.png",
+ "image": "../images/events-images/2025-all-hands-meeting-1-c4646505.png",
"imageAlt": "Imageomics 2025 All-hands Meeting",
"startDate": "2025-04-16"
},
@@ -184,7 +328,7 @@
"url": "events/2025-04-seminar-fishing-data-three-vignettes-image-based-research-fish.html",
"date": "Mon, Apr 14 2025",
"description": "Fishing for Data with Becky Fuller Join us for a seminar hosted by the...",
- "image": "../events images/_becky-fuller-banner.png",
+ "image": "../images/events-images/_becky-fuller-banner.png",
"imageAlt": "Seminar: Fishing for Data – Three Vignettes on Image-Based Research in Fish",
"startDate": "2025-04-14"
},
@@ -193,7 +337,7 @@
"url": "events/2025-03-seminar-explore-pangea-project-elsa-ordway.html",
"date": "Fri, Mar 7 2025",
"description": "Explore the PANGEA Project with Elsa Ordway Join us for a joint Imageomics...",
- "image": "../events images/elsa-ordway-banner.png",
+ "image": "../images/events-images/elsa-ordway-banner.png",
"imageAlt": "Seminar: Explore the PANGEA Project with Elsa Ordway",
"startDate": "2025-03-07"
},
@@ -202,7 +346,7 @@
"url": "events/2025-03-aaai-2025-workshop-anomaly-detection-scientific-domains.html",
"date": "Tue, Mar 4 2025",
"description": "Description Scientific discovery often involves the observation of an...",
- "image": "../events images/aaai25.jpg",
+ "image": "../images/events-images/aaai25.jpg",
"imageAlt": "AAAi25",
"startDate": "2025-03-04"
},
@@ -211,7 +355,7 @@
"url": "events/2025-03-imageomics-workshop-aaai-2025.html",
"date": "Mon, Mar 3 2025",
"description": "Overview Imageomics is an emerging field of science that uses images, ranging...",
- "image": "../events images/imageomics-aaai-2025-image-84d35970.png",
+ "image": "../images/events-images/imageomics-aaai-2025-image-84d35970.png",
"imageAlt": "Networked tree with animals and computer code with the words imageomics workshop AAAI 2025",
"startDate": "2025-03-03"
},
@@ -220,7 +364,7 @@
"url": "events/2025-02-fathomverse-explore-depths.html",
"date": "Mon, Feb 24 2025",
"description": "Abstract: The deep sea is the largest habitable ecosystem on the planet and...",
- "image": "../events images/kakani-katija-banner-1.png",
+ "image": "../images/events-images/kakani-katija-banner-1.png",
"imageAlt": "FathomVerse: Explore the Depths",
"startDate": "2025-02-24"
},
@@ -229,7 +373,7 @@
"url": "events/2024-11-imageomics-seminar-dr.-maks-ovsjanikov-november-22-2024.html",
"date": "Fri, Nov 22 2024",
"description": "Imageomics Seminar: Dr. Maks Ovsjanikov, November 22, 2024 November 22, 2024...",
- "image": "../events images/maks-ovsjaniko-photo-1-f8bc53fd.jpg",
+ "image": "../images/events-images/maks-ovsjaniko-photo-1-f8bc53fd.jpg",
"imageAlt": "Maks",
"startDate": "2024-11-22"
},
@@ -238,7 +382,7 @@
"url": "events/2024-10-seminar-ofir-levy-school-zoology-tel-aviv-university-presentation-ai-ecology-refining-microclimate-predictions-and-thermoregulatory-tracking.html",
"date": "Mon, Oct 28 2024",
"description": "Who: Announcing the upcoming talk from Ofir Levy, School of Zoology at Tel Aviv...",
- "image": "../events images/_g3a1983-1-30-3961c910.jpg",
+ "image": "../images/events-images/_g3a1983-1-30-3961c910.jpg",
"imageAlt": "Ofir Levy",
"startDate": "2024-10-28"
},
@@ -247,7 +391,7 @@
"url": "events/2024-10-seminar-automated-plankton-image-recognition-featuring-prof.-heikki-kalviainen.html",
"date": "Mon, Oct 14 2024",
"description": "Abstract: The presentation considers computer vision and machine learning in...",
- "image": "../events images/face_heikki-120f8514.jpg",
+ "image": "../images/events-images/face_heikki-120f8514.jpg",
"imageAlt": "man with blonde hair and green eyes. He is in a black suit with red tie and stands in front of a grey background",
"startDate": "2024-10-14"
},
@@ -256,7 +400,7 @@
"url": "events/2024-10-public-lecture-ai-nature-featuring-dr.-tanya-berger-wolf.html",
"date": "Mon, Oct 7 2024",
"description": "Please register to attend a Public Lecture hosted by the AI and Biodiversity...",
- "image": "../events images/berger-wolf-abc-montreal-final9.25.24_reduced-db8c4593.jpg",
+ "image": "../images/events-images/berger-wolf-abc-montreal-final9.25.24_reduced-db8c4593.jpg",
"imageAlt": "Public Lecture: AI for Nature featuring Dr. Tanya Berger Wolf",
"startDate": "2024-10-07"
},
@@ -265,7 +409,7 @@
"url": "events/beetlepalooza-2024.html",
"date": "Mon, Aug 12 - Thu, Aug 15 2024",
"description": "",
- "image": "../events images/beetlepalooza-2024-new-final-edited-1-214d49a3.jpg",
+ "image": "../images/events-images/beetlepalooza-2024-new-final-edited-1-214d49a3.jpg",
"imageAlt": "BeetlePalooza Event Notice",
"startDate": "2024-08-12"
},
@@ -274,7 +418,7 @@
"url": "events/2024-07-tanya-berger-wolf-and-imageomics-aspen-global-change-institute.html",
"date": "Tue, Jul 30 2024",
"description": "Imageomics and ABC Global Climate Center Director Tanya Berger-Wolf speaks at...",
- "image": "../events images/1722021161691-2485d968.jpeg",
+ "image": "../images/events-images/1722021161691-2485d968.jpeg",
"imageAlt": "Aspen Global Change Institute",
"startDate": "2024-07-30"
},
@@ -283,7 +427,7 @@
"url": "events/nsf-distinguished-open-public-lecture-tanya-berger-wolf.html",
"date": "Thu, Jun 6 2024",
"description": "NSF Distinguished Lecture: Tanya Berger-Wolf Date: 11 a.m. June 6, 2024, open to...",
- "image": "../events images/nsf-distinguished-lecture-tanya-berger-wolf_0-06bb803f.jpg",
+ "image": "../images/events-images/nsf-distinguished-lecture-tanya-berger-wolf_0-06bb803f.jpg",
"imageAlt": "Tanya Berger Wolf NSF Distinguished Lecture",
"startDate": "2024-06-06"
},
@@ -292,7 +436,7 @@
"url": "events/imageomics-seminar-predicting-multiple-dimensions-plant-diversity-using-airborne-imagery-and-hierarchical-models.html",
"date": "Mon, May 13 2024",
"description": "On May 13 the Imageomics Institute will welcome several researchers from the NSF...",
- "image": "../events images/rspd-artwork-ascend.sized_-83c107f1.png",
+ "image": "../images/events-images/rspd-artwork-ascend.sized_-83c107f1.png",
"imageAlt": "A circle with DNA in the middle and the outline of trees around the outside",
"startDate": "2024-05-13"
},
@@ -301,7 +445,7 @@
"url": "events/imageomics-seminar-shape-data-and-all-data-have-shape-leaf-morphology-shape-gene-expression-across-flowering-plants.html",
"date": "Mon, May 6 2024",
"description": "Abstract Embedded in plant morphology is genetic, developmental, and...",
- "image": "../events images/danchitwoodsmall-1-428032fa.jpg",
+ "image": "../images/events-images/danchitwoodsmall-1-428032fa.jpg",
"imageAlt": "Dan Chitwood",
"startDate": "2024-05-06"
},
@@ -310,7 +454,7 @@
"url": "events/imageomics-2024-all-hands-meeting.html",
"date": "Mon, Apr 15 - Thu, Apr 18 2024",
"description": "Between April 15-18, 2024, Imageomics Institute will gather for our annual All...",
- "image": "../events images/imageomics-group-photo-all-hands-2023.jpg",
+ "image": "../images/events-images/imageomics-group-photo-all-hands-2023.jpg",
"imageAlt": "Large group stands in room, wearing grey Imageomics logo t-shirts.",
"startDate": "2024-04-15"
},
@@ -319,7 +463,7 @@
"url": "events/2024-02-imageomics-workshop-aaai-2024.html",
"date": "Mon, Feb 26 2024",
"description": "In February 2024, we are pleased to announce our inaugural Imageomics workshop...",
- "image": "../events images/image4-d8469f21.png",
+ "image": "../images/events-images/image4-d8469f21.png",
"imageAlt": "A mechanic tree of life with each branch ending in multiple animals with the text Imageomics workshop AAAI 2024",
"startDate": "2024-02-26"
},
@@ -328,7 +472,7 @@
"url": "events/2024-02-imageomics-all-institute-project-update-monthly-meeting.html",
"date": "Sat, Feb 17 2024, Sun, Mar 17 2024, Sun, Apr 21 2024, Sun, May 19 2024, Sun, Jun 16 2024, Mon, Sep 16 2024, Mon, Oct 21 2024, Mon, Nov 18 2024, Mon, Dec 16 2024",
"description": "We are excited to invite you to the 2024-2025 monthly project updates meeting of...",
- "image": "../events images/img_7217-a709e49c.jpg",
+ "image": "../images/events-images/img_7217-a709e49c.jpg",
"imageAlt": "Members of the imageomics institute stand together for a group photo",
"startDate": "2024-02-17"
},
@@ -337,7 +481,7 @@
"url": "events/2024-02-external-speaker-series-ulrik-pagh-schultz-lundquist-wilddrone-autonomous-drones-nature-conservation-missions.html",
"date": "Mon, Feb 5 2024",
"description": "Abstract: The WildDrone project aims to revolutionize wildlife conservation...",
- "image": "../events images/wynand-uys-fhocjvovj6g-unsplash-f7d1b6cc.jpg",
+ "image": "../images/events-images/wynand-uys-fhocjvovj6g-unsplash-f7d1b6cc.jpg",
"imageAlt": "a heard of animals on the savannah is viewed from above as captured by a drone",
"startDate": "2024-02-05"
},
@@ -346,7 +490,7 @@
"url": "events/2024-01-external-speaker-series-justin-kitzes-automated-acoustics-surveys-understanding-and-predicting-biodiversity-scale.html",
"date": "Mon, Jan 29 2024",
"description": "Abstract: The availability of accurate, large-scale, long-term data on species...",
- "image": "../events images/joshua-j-cotten-ngspfabwico-unsplash-e5dc44bf.jpg",
+ "image": "../images/events-images/joshua-j-cotten-ngspfabwico-unsplash-e5dc44bf.jpg",
"imageAlt": "brown and white bird on brown wooden fence with mouth open",
"startDate": "2024-01-29"
},
@@ -355,7 +499,7 @@
"url": "events/2024-01-imageomics-research-forum-cutting-edge-foundation-models.html",
"date": "Mon, Jan 22 2024",
"description": "Imageomics Institute’s Foundation Model project leaders, Yu Su and Harry Chao...",
- "image": "../events images/_03c84a96-9266-4f1c-90c7-aa5add7e0eb8-322f7f0c.jpg",
+ "image": "../images/events-images/_03c84a96-9266-4f1c-90c7-aa5add7e0eb8-322f7f0c.jpg",
"imageAlt": "an AI generated image of a computer chip with an earth hovering above surrounded by a network of dots and lines",
"startDate": "2024-01-22"
},
@@ -364,7 +508,7 @@
"url": "events/2023-12-introducing-ranges-project.html",
"date": "Mon, Dec 18 2023",
"description": "Attend our 2023 closing event for an exclusive overview led by the lead...",
- "image": "../events images/rangescropped_logo-c64394fc.png",
+ "image": "../images/events-images/rangescropped_logo-c64394fc.png",
"imageAlt": "Logo for the ranges project which features a series of mountains with the outline of a buck and pine trees in the front and a sun in the lefthand corner",
"startDate": "2023-12-18"
},
@@ -373,7 +517,7 @@
"url": "events/2023-12-end-year-celebration.html",
"date": "Mon, Dec 11 2023",
"description": "Come celebrate the end of the year with us! Join in for fun games, engaging...",
- "image": "../events images/_0b8b1f50-6add-467c-8536-8a8a9ac25dc9.jpg",
+ "image": "../images/events-images/_0b8b1f50-6add-467c-8536-8a8a9ac25dc9.jpg",
"imageAlt": "an ai generated image of zebra, giraffe, tiger, and baboon having a new years eve party on the savannah",
"startDate": "2023-12-11"
},
@@ -382,7 +526,7 @@
"url": "events/2023-12-imageomics-spotlight-project-showcase.html",
"date": "Mon, Dec 4 2023",
"description": "Get ready for an exciting showcase at our upcoming event, \"Imageomics in the...",
- "image": "../events images/_e0760008-1e8c-480a-9635-3f48c30bcbf3-a44b088c.jpg",
+ "image": "../images/events-images/_e0760008-1e8c-480a-9635-3f48c30bcbf3-a44b088c.jpg",
"imageAlt": "ai created image of a camera with different forms of life spilling out of the lense onto a wooden table",
"startDate": "2023-12-04"
},
@@ -391,7 +535,7 @@
"url": "events/2023-11-imageomics-speaker-series-janna-hastings-university-zurich.html",
"date": "Mon, Nov 20 2023",
"description": "Ontology pre-training as a strategy to improve data-driven predictions:...",
- "image": "../events images/hastings-janna-a7a6fd31.jpg",
+ "image": "../images/events-images/hastings-janna-a7a6fd31.jpg",
"imageAlt": "smiling woman with blue eyes and light skin. She has her brown hair pulled back into a low braid and is wearing a dark blue shirt.",
"startDate": "2023-11-20"
},
@@ -400,7 +544,7 @@
"url": "events/2023-11-team-science-office-hour-dynamics-collaborative-leadership-team-science.html",
"date": "Mon, Nov 20 2023",
"description": "Join us for a dynamic office hour where participants will share their firsthand...",
- "image": "../events images/_8d7fcdc9-f85f-4e38-86ae-f6bdfe522d36-621eaa88.jpg",
+ "image": "../images/events-images/_8d7fcdc9-f85f-4e38-86ae-f6bdfe522d36-621eaa88.jpg",
"imageAlt": "an image that shows outlines of people in multiple colors and each person has a thought bubble above their head",
"startDate": "2023-11-20"
},
@@ -409,7 +553,7 @@
"url": "events/2023-11-dynamics-collaborative-leadership-team-science-frameworks-and-applications.html",
"date": "Mon, Nov 13 2023",
"description": "The overarching goal of this interactive session is to share three conceptual...",
- "image": "../events images/shane-rounce-dnkonxqti3c-unsplash-1ef95c8f.jpg",
+ "image": "../images/events-images/shane-rounce-dnkonxqti3c-unsplash-1ef95c8f.jpg",
"imageAlt": "a group people's hands placed on top of a tree trunk",
"startDate": "2023-11-13"
},
@@ -418,7 +562,7 @@
"url": "events/2023-11-introducing-ai-and-biodiversity-change-global-climate-center.html",
"date": "Mon, Nov 6 2023",
"description": "This week we'll be welcoming the esteemed researchers from the newly established...",
- "image": "../events images/adobestock_619608604-ccdab280.jpeg",
+ "image": "../images/events-images/adobestock_619608604-ccdab280.jpeg",
"imageAlt": "Sustainable environment concept. The image depicts human thinking towards preserving nature, reducing carbon footprint and building sustainable urban community for green future.",
"startDate": "2023-11-06"
},
@@ -427,7 +571,7 @@
"url": "events/2023-10-hdr-meeting-recap.html",
"date": "Mon, Oct 23 2023",
"description": "At this week's meeting, the Imageomics community members who attended the HDR...",
- "image": "../events images/alina-grubnyak-ziqkhi7417a-unsplash-b72b50ed.jpg",
+ "image": "../images/events-images/alina-grubnyak-ziqkhi7417a-unsplash-b72b50ed.jpg",
"imageAlt": "low angle photography of metal structure",
"startDate": "2023-10-23"
},
@@ -436,7 +580,7 @@
"url": "events/2023-10-quest-teacher-training-program.html",
"date": "Mon, Oct 9 2023",
"description": "At this month's Imageomics Research Forum, Dan Rubenstein and Leanna House will...",
- "image": "../events images/img_6494-eae30fd9.jpg",
+ "image": "../images/events-images/img_6494-eae30fd9.jpg",
"imageAlt": "Teachers doing field research taking a photo of various foliage in nature",
"startDate": "2023-10-09"
},
@@ -445,7 +589,7 @@
"url": "events/2023-10-open-exchange-zone.html",
"date": "Mon, Oct 2 2023",
"description": "The Open Exchange Zone is a crowdsourced topical space with no defined agenda...",
- "image": "../events images/pexels-magda-ehlers-2573946-eb9f8d87.jpg",
+ "image": "../images/events-images/pexels-magda-ehlers-2573946-eb9f8d87.jpg",
"imageAlt": "group of animal figurines (lion, zebra, cheetah, rhino, elephant, giraffe) on a balcony ledge",
"startDate": "2023-10-02"
},
@@ -454,7 +598,7 @@
"url": "events/2023-09-nextgen-space-writing-room.html",
"date": "Thu, Sep 28 2023",
"description": "The writing room is open to all Imageomics NextGens who would benefit from a...",
- "image": "../events images/christin-hume-hcfwew744z4-unsplash-39d6db95.jpg",
+ "image": "../images/events-images/christin-hume-hcfwew744z4-unsplash-39d6db95.jpg",
"imageAlt": "person using laptop computer",
"startDate": "2023-09-28"
},
@@ -463,7 +607,7 @@
"url": "events/burning-questions-exploring-imageomics-together.html",
"date": "Mon, Sep 25 2023",
"description": "Do you have an imageomics question you would love some clarification on? Is...",
- "image": "../events images/pexels-leeloo-thefirst-5428833-295617cd.jpg",
+ "image": "../images/events-images/pexels-leeloo-thefirst-5428833-295617cd.jpg",
"imageAlt": "question marks glued to different colored paper set atop a desk adjacent to a hand holding a pen. All set on top of an open blank notebook",
"startDate": "2023-09-25"
},
@@ -472,7 +616,7 @@
"url": "events/2023-09-git-collaborating-github.html",
"date": "Mon, Sep 18 2023",
"description": "On September 11 and 18, we will host two connected training sessions covering an...",
- "image": "../events images/roman-synkevych-wx2l8l-fgea-unsplash-368fb3c4.jpg",
+ "image": "../images/events-images/roman-synkevych-wx2l8l-fgea-unsplash-368fb3c4.jpg",
"imageAlt": "github cat figurine stands in front of a computer screen.",
"startDate": "2023-09-18"
},
@@ -481,7 +625,7 @@
"url": "events/2023-09-foundation-models-focus-exploring-impact-and-integration-imageomics-research.html",
"date": "Mon, Sep 18 2023",
"description": "At this week's open exchange zone we will discuss how the foundation models have...",
- "image": "../events images/markus-spiske-skf7hxarcoc-unsplash-89d9f633.jpg",
+ "image": "../images/events-images/markus-spiske-skf7hxarcoc-unsplash-89d9f633.jpg",
"imageAlt": "colorful software or web code on a computer monitor",
"startDate": "2023-09-18"
},
@@ -490,7 +634,7 @@
"url": "events/2023-09-git-acquainted-version-control.html",
"date": "Mon, Sep 11 2023",
"description": "On September 11 and 18, Imageomics will host two connected training sessions...",
- "image": "../events images/roman-synkevych-wx2l8l-fgea-unsplash-368fb3c4.jpg",
+ "image": "../images/events-images/roman-synkevych-wx2l8l-fgea-unsplash-368fb3c4.jpg",
"imageAlt": "github cat figurine stands in front of a computer screen.",
"startDate": "2023-09-11"
},
@@ -499,7 +643,7 @@
"url": "events/2023-09-forging-pathways-integrating-new-projects-within-institutes-framework.html",
"date": "Mon, Sep 11 2023",
"description": "At this week's open exchange zone we will discuss the integration of new...",
- "image": "../events images/pexels-mark-arron-smith-2251798-c09d4bb7.jpg",
+ "image": "../images/events-images/pexels-mark-arron-smith-2251798-c09d4bb7.jpg",
"imageAlt": "glass ball sits on yellow divider lines in road and magnifies the cityscape beyond.",
"startDate": "2023-09-11"
},
@@ -508,7 +652,7 @@
"url": "events/2023-08-imageomics-reflection-room.html",
"date": "Mon, Aug 28 2023",
"description": "During this month's reflection room we will focus on discussing and refining our...",
- "image": "../events images/pexels-andre-mouton-1207875-a557c1d0.jpg",
+ "image": "../images/events-images/pexels-andre-mouton-1207875-a557c1d0.jpg",
"imageAlt": "capuchin monkey looks at own reflection in handheld mirror",
"startDate": "2023-08-28"
},
@@ -517,7 +661,7 @@
"url": "events/2023-08-imageomics-autumn-kick.html",
"date": "Mon, Aug 21 2023",
"description": "It's the start to our Autumn Imageomics event series. Join us to hear a recap of...",
- "image": "../events images/pexels-polina-kovaleva-5827880-1321ed04.jpg",
+ "image": "../images/events-images/pexels-polina-kovaleva-5827880-1321ed04.jpg",
"imageAlt": "photo features a bench with a dark brown suede back pack and lap top with yellow fall leaves and the body of a person in black clothing",
"startDate": "2023-08-21"
},
@@ -526,7 +670,7 @@
"url": "events/image-datapalooza-2023.html",
"date": "Mon, Aug 14 - Thu, Aug 17 2023",
"description": "The Imageomics Institute is hosting a 3.5-day workshop to address the scarcity...",
- "image": "../events images/image-datapalooza.jpg",
+ "image": "../images/events-images/image-datapalooza.jpg",
"imageAlt": "collage of images",
"startDate": "2023-08-14"
},
@@ -535,7 +679,7 @@
"url": "events/2023-06-nextgen-interdisciplinary-journal-club.html",
"date": "Mon, Jun 26 2023",
"description": "Join us for this month's NextGen Interdiciplinary Journal Club, led by postdoc...",
- "image": "../events images/eugene-zhyvchik-xjy-7gtc38o-unsplash.jpg",
+ "image": "../images/events-images/eugene-zhyvchik-xjy-7gtc38o-unsplash.jpg",
"imageAlt": "outline of different homo species walking toward one direction ending with a person on a cell phone",
"startDate": "2023-06-26"
},
@@ -553,7 +697,7 @@
"url": "events/2023-06-paving-way-continental-scale-biology-tools-and-approaches-connecting-research-across.html",
"date": "Thu, Jun 15 2023",
"description": "Dr. Tanya Berger-Wolf and Dr. Paula Mabee to Present at NASEM. Join presenters...",
- "image": "../events images/best_csb_linkedin_0-6ce20de3.png",
+ "image": "../images/events-images/best_csb_linkedin_0-6ce20de3.png",
"imageAlt": "Picture of planet earth with the event details inside of a purple box",
"startDate": "2023-06-15"
},
@@ -562,7 +706,7 @@
"url": "events/2023-06-imageomics-research-forum-querying-real-world-data-exploration-augmented-reality.html",
"date": "Mon, Jun 12 2023",
"description": "Arnab Nandi, Associate Professor of Computer Science & Engineering at The Ohio...",
- "image": "../events images/mika-baumeister-swvaxolmizy-unsplash.jpg",
+ "image": "../images/events-images/mika-baumeister-swvaxolmizy-unsplash.jpg",
"imageAlt": "person holding iphone up with an image on the game Minecraft with blurred view of houses behind phone",
"startDate": "2023-06-12"
},
@@ -571,7 +715,7 @@
"url": "events/2023-06-imageomics-speaker-series-ais-forest-towards-computational-field-biology.html",
"date": "Mon, Jun 5 2023",
"description": "Tilo Burghardt, UG Programme Director at the Dept of Computer Science at Bristol...",
- "image": "../events images/roberto-nickson-6pe5ib-i5-o-unsplash.jpg",
+ "image": "../images/events-images/roberto-nickson-6pe5ib-i5-o-unsplash.jpg",
"imageAlt": "short beak red bird on tree",
"startDate": "2023-06-05"
},
@@ -598,7 +742,7 @@
"url": "events/2023-05-external-speaker-series-biodiversity-across-space-and-time-insights-trait-based.html",
"date": "Mon, May 15 2023",
"description": "Marta Jarzyna, Assistant Professor, Evolution, Ecology and Organismal Biology...",
- "image": "../events images/jarzyna_pic_2-72f3d1b6.jpeg",
+ "image": "../images/events-images/jarzyna_pic_2-72f3d1b6.jpeg",
"imageAlt": "smiling woman with blue eyes and brown hair stands in front of a book case",
"startDate": "2023-05-15"
},
@@ -625,7 +769,7 @@
"url": "events/2023-05-experiential-introduction-imageomics-iii.html",
"date": "Tue, May 2 2023",
"description": "The Imageomics \"Kenya\" course will continue through May 2, with the final...",
- "image": "../events images/experiential-imageomics-course-caede3a0.jpg",
+ "image": "../images/events-images/experiential-imageomics-course-caede3a0.jpg",
"imageAlt": "promotional flyer for imageomics course",
"startDate": "2023-05-02"
},
@@ -661,7 +805,7 @@
"url": "events/2022-12-experiential-imageomics-course-preparing-kenya.html",
"date": "Tue, Dec 6 2022",
"description": "Week 14 Topic: Preparing for Kenya - Rules of Conduct and Safety with Field...",
- "image": "../events images/experiential-imageomics-course-caede3a0.jpg",
+ "image": "../images/events-images/experiential-imageomics-course-caede3a0.jpg",
"imageAlt": "promotional flyer for imageomics course",
"startDate": "2022-12-06"
},
@@ -679,7 +823,7 @@
"url": "events/2022-11-experiential-imageomics-course-project-brainstorming.html",
"date": "Tue, Nov 29 2022",
"description": "Week 13 Topic: Project Brainstorming for Kenya Field Research Instructors: Dan...",
- "image": "../events images/experiential-imageomics-course-caede3a0.jpg",
+ "image": "../images/events-images/experiential-imageomics-course-caede3a0.jpg",
"imageAlt": "promotional flyer for imageomics course",
"startDate": "2022-11-29"
},
@@ -688,7 +832,7 @@
"url": "events/2022-11-external-speaker-series-zhe-gan-microsoft-azure-ai.html",
"date": "Mon, Nov 21 2022",
"description": "This month we welcome Dr. Zhe Gan Principal Researcher at Microsoft Azure AI to...",
- "image": "../events images/zhe_new.jpg",
+ "image": "../images/events-images/zhe_new.jpg",
"imageAlt": "Side view of smiling man with short black hair, brown eyes, and glasses. He is wearing a blue suit",
"startDate": "2022-11-21"
},
@@ -697,7 +841,7 @@
"url": "events/2022-11-experiential-imageomics-course-data-management.html",
"date": "Tue, Nov 15 2022",
"description": "Week 12 Topic: Data Management Instructors: Chuck Stewart and Hilmar Lapp...",
- "image": "../events images/experiential-imageomics-course-caede3a0.jpg",
+ "image": "../images/events-images/experiential-imageomics-course-caede3a0.jpg",
"imageAlt": "promotional flyer for imageomics course",
"startDate": "2022-11-15"
},
diff --git a/data/news.json b/data/news.json
new file mode 100644
index 0000000..449274c
--- /dev/null
+++ b/data/news.json
@@ -0,0 +1,955 @@
+[
+ {
+ "title": "FloraPalooza 2026",
+ "date": "August 29, 2026",
+ "year": 2026,
+ "image": "../images/news-images/florapalooza-2026-workshop.jpeg",
+ "imageAlt": "FloraPalooza 2026 workshop participants collaborating around tables",
+ "description": "Researchers from biology, ecology, artificial intelligence, machine learning, data science, and software development came together in Columbus for a collaborative workshop exploring how plant imagery can answer biological and ecological questions at scale.",
+ "url": "news/florapalooza-2026.html"
+ },
+ {
+ "title": "Designing for Discovery Workshop at the Evolution Conference 2026",
+ "date": "July 1, 2026",
+ "year": 2026,
+ "image": "../images/news-images/designing-for-discovery-workshop-evolution-conference-2026.png",
+ "imageAlt": "Participants attending the Designing for Discovery workshop at Evolution 2026",
+ "description": "The Imageomics Institute hosted a hands-on workshop at Evolution 2026 exploring how AI and image-based analysis can support biological discovery.",
+ "url": "news/designing-discovery-workshop-evolution-conference-2026.html"
+ },
+ {
+ "title": "Imageomics Digital Digest, Issue 9",
+ "date": "May 26, 2026",
+ "category": "Digital Digest Newsletter, Issue 9",
+ "year": 2026,
+ "image": "../images/news-images/Imageomics-digital-digest-issue-9.png",
+ "imageAlt": "Imageomics Digital Digest Newsletter Issue 9 cover",
+ "description": "The 9th edition highlights key moments from the Imageomics community, including the Imageomics Conference, recent awards, and community milestones.",
+ "url": "news/imageomics-digital-digest-issue-9.html"
+ },
+ {
+ "title": "Jenna Kline Participates in Global Conference",
+ "date": "May 22, 2026",
+ "year": 2026,
+ "description": "Jenna Kline represented the Imageomics Institute at the Global Conservation Tech and Drone Forum, speaking on how AI and data can scale species protection.",
+ "url": "news/jenna-kline-global-conference.html"
+ },
+ {
+ "title": "Inside the First Imageomics Conference",
+ "date": "May 14, 2026",
+ "year": 2026,
+ "image": "../images/news-images/inside-first-imageomics.jpg",
+ "imageAlt": "Group photo from the first Imageomics Conference",
+ "description": "Researchers, technologists, conservationists, and students gathered for the first-ever Imageomics Conference to explore how images and machine learning can transform biodiversity science.",
+ "url": "news/inside-first-imageomics-conference.html"
+ },
+ {
+ "title": "Imageomics Publication Awarded the Robert May Prize",
+ "date": "April 17, 2026",
+ "year": 2026,
+ "image": "../images/news-images/robert-may-prize-2025.webp",
+ "imageAlt": "Robert May Prize awarded to Jenna Kline",
+ "description": "Imageomics researcher Jenna Kline has been recognized for her work on new methods to study animal behavior using drones, computer vision, and edge AI.",
+ "url": "news/robert-may-prize.html"
+ },
+ {
+ "title": "Jenna Kline Named 2025-2026 Presidential Fellow",
+ "date": "January 21, 2026",
+ "year": 2026,
+ "image": "../images/news-images/O-H-I-O-Kenya.jpg",
+ "imageAlt": "Ohio State students and faculty on the Kenya savannah making the O-H-I-O sign",
+ "description": "Jenna Kline has been named a 2025-2026 Presidential Fellow, becoming the first Imageomics PhD candidate to receive this prestigious award.",
+ "url": "news/jenna-kline-presidential-fellow.html"
+ },
+ {
+ "title": "Imageomics Publication Shortlisted for the Robert May Prize",
+ "date": "March 9, 2026",
+ "year": 2026,
+ "image": "../images/news-images/zebra_drones.jpg",
+ "imageAlt": "Illustration of zebras, drone sensing, and behavior levels",
+ "description": "Imageomics researchers have been shortlisted for a major international ecology award for their work on new methods to study animal behavior using advanced technology.",
+ "url": "news/robert-may-prize-shortlist.html"
+ },
+ {
+ "title": "Imageomics Digital Digest, Issue 8",
+ "date": "March 9, 2026",
+ "category": "Digital Digest Newsletter, Issue 8",
+ "year": 2026,
+ "image": "../images/news-images/imageomics-digital-digest-issue-8.png",
+ "imageAlt": "Imageomics Digital Digest Newsletter Issue 8 cover",
+ "description": "Issue 8 highlights Imageomics milestones across NeurIPS, the First Imageomics Conference, AI-ready ecological data infrastructure, and new computer vision methods.",
+ "url": "news/imageomics-digital-digest-issue-8.html"
+ },
+ {
+ "title": "Imageomics Launches New Catalog Showcasing Open Science Resources for AI and Nature",
+ "date": "December 10, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-launches-new-catalog-showcasing-open-science-resources-ai-and-nature.png",
+ "description": "If last week’s Cyber Specials slipped past you, there’s good news - Imageomics...",
+ "url": "news/imageomics-launches-new-catalog-showcasing-open-science-resources-ai-and-nature.html"
+ },
+ {
+ "title": "Berger-Wolf named AAAI Fellow",
+ "date": "December 9, 2025",
+ "year": 2025,
+ "image": "../images/news-images/berger-wolf-named-aaai-fellow-image-01.jpeg",
+ "imageAlt": "head and shoulder photo of Berger-Wolfe speaking in front of black background with image of computer chip graphic",
+ "description": "Tanya Berger-Wolf, director of Ohio State’s Translational Data Analytics...",
+ "url": "news/berger-wolf-named-aaai-fellow.html"
+ },
+ {
+ "title": "Kline wins first place at ACM/IEEE SEC 2025 student research contest",
+ "date": "December 9, 2025",
+ "year": 2025,
+ "image": "../images/news-images/kline-wins-first-place-acmieee-sec-2025-student-research-contest.jpeg",
+ "imageAlt": "Jenna Kline",
+ "description": "Edge-AI drone work earns top honor at Washington, D.C. symposium",
+ "url": "news/kline-wins-first-place-acmieee-sec-2025-student-research-contest.html"
+ },
+ {
+ "title": "Berger-Wolf Featured on Now Ohio State Podcast",
+ "date": "November 20, 2025",
+ "year": 2025,
+ "image": "../images/news-images/berger-wolf-featured-now-ohio-state-podcast.jpg",
+ "imageAlt": "Tanya Berger-Wolf",
+ "description": "Saving and preserving animal species with AI Artificial intelligence is helping...",
+ "url": "news/berger-wolf-featured-now-ohio-state-podcast.html"
+ },
+ {
+ "title": "Imageomics at NeurIPS: From Pixels to Principles",
+ "date": "November 9, 2025",
+ "year": 2025,
+ "description": "Workshop, talks, and demos highlight interpretable vision, AI-ready data, and...",
+ "url": "news/imageomics-neurips-pixels-principles.html"
+ },
+ {
+ "title": "Smart Win for Smart Wilds",
+ "date": "November 9, 2025",
+ "year": 2025,
+ "image": "../images/news-images/smart-win-smart-wilds.jpg",
+ "imageAlt": "Jenna Kline",
+ "description": "OSU PhD candidate Jenna Kline earns competitive AGGRS award to advance edge AI...",
+ "url": "news/smart-win-smart-wilds.html"
+ },
+ {
+ "title": "NSF HDR launches Year Two ML Challenge to build AI that works in the real world",
+ "date": "September 17, 2025",
+ "year": 2025,
+ "image": "../images/news-images/nsf-hdr-launches-year-two-ml-challenge-build-ai-works-real-world-image-01.png",
+ "imageAlt": "Bannerr",
+ "description": "The National Science Foundation’s Harnessing the Data Revolution (HDR) ecosystem...",
+ "url": "news/nsf-hdr-launches-year-two-ml-challenge-build-ai-works-real-world.html"
+ },
+ {
+ "title": "Imageomics Digital Digest, Issue 7",
+ "date": "September 9, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-digital-digest-issue-7.png",
+ "imageAlt": "Digital 7",
+ "description": "Imageomics Institute's Digital Digest, Issue 7, is out and packed with updates...",
+ "url": "news/imageomics-digital-digest-issue-7.html"
+ },
+ {
+ "title": "Dr. Brittany Fonner Joins Imageomics as Research Programs and Communications Specialist",
+ "date": "September 7, 2025",
+ "year": 2025,
+ "image": "../images/news-images/dr-brittany-fonner-joins-imageomics-research-programs-and-communications-specialist.jpg",
+ "imageAlt": "Brittany Fonner",
+ "description": "The Imageomics Institute is pleased to welcome Dr. Brittany Fonner to the team...",
+ "url": "news/dr.-brittany-fonner-joins-imageomics-research-programs-and-communications-specialist.html"
+ },
+ {
+ "title": "Imageomics Chain Reaction Series: Luke Meyers' Spotlight",
+ "date": "September 7, 2025",
+ "year": 2025,
+ "description": "Luke Meyers, a master’s student in computer science at the University of Puerto...",
+ "url": "news/imageomics-chain-reaction-series-luke-meyers-spotlight.html"
+ },
+ {
+ "title": "FuncaPalooza 2025 Launches New Era of Open, AI-Driven Biodiversity Research",
+ "date": "September 7, 2025",
+ "year": 2025,
+ "image": "../images/news-images/funcapalooza-2025-launches-new-era-open-ai-driven-biodiversity-research.png",
+ "imageAlt": "Group photo",
+ "description": "The inaugural FuncaPalooza workshop wrapped up with a burst of creativity and...",
+ "url": "news/funcapalooza-2025-launches-new-era-open-ai-driven-biodiversity-research.html"
+ },
+ {
+ "title": "Imageomics Joins $600,000 NSF FAIROS Award for AI-ready Ecology Data Infrastructure",
+ "date": "September 7, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-joins-600000-nsf-fairos-award-ai-ready-ecology-data-infrastructure.png",
+ "imageAlt": "AI and Nature image",
+ "description": "This article was updated on March 12, 2026, to reflect a change in Hilmar Lapp’s...",
+ "url": "news/imageomics-joins-600000-nsf-fairos-award-ai-ready-ecology-data-infrastructure.html"
+ },
+ {
+ "title": "Berger-Wolf Champions FAIR, CARE and AI for Nature at ESA Meeting",
+ "date": "August 11, 2025",
+ "year": 2025,
+ "image": "../images/news-images/berger-wolf-champions-fair-care-and-ai-nature-esa-meeting.jpg",
+ "imageAlt": "ESA 2025",
+ "description": "Professor Tanya Berger-Wolf, Imageomics Institute director, made notable...",
+ "url": "news/berger-wolf-champions-fair-care-and-ai-nature-esa-meeting.html"
+ },
+ {
+ "title": "Full Professor, Full Picture: Arnab Nandi Advances Data Frontiers at Ohio State",
+ "date": "August 11, 2025",
+ "year": 2025,
+ "image": "../images/news-images/full-professor-full-picture-arnab-nandi-advances-data-frontiers-ohio-state.jpg",
+ "imageAlt": "Anab Nandi",
+ "description": "Dr. Arnab Nandi, an investigator with the Imageomics Institute and a faculty...",
+ "url": "news/full-professor-full-picture-arnab-nandi-advances-data-frontiers-ohio-state.html"
+ },
+ {
+ "title": "Imageomics Digital Digest: Issue 6",
+ "date": "August 3, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-digital-digest-issue-6.png",
+ "imageAlt": "over image",
+ "description": "BioCLIP 2 is here, and it’s reshaping how we explore our world. The latest...",
+ "url": "news/imageomics-digital-digest-issue-6.html"
+ },
+ {
+ "title": "Chain Reaction Series: Jenna Kline’s Drone Research Takes Conservation to New Heights",
+ "date": "July 30, 2025",
+ "year": 2025,
+ "image": "../images/news-images/chain-reaction-series-jenna-klines-drone-research-takes-conservation-new-heights.jpg",
+ "imageAlt": "Kline research",
+ "description": "From Ohio to Kenya, Kline’s work in adaptive AI-driven sensor systems is...",
+ "url": "news/chain-reaction-series-jenna-klines-drone-research-takes-conservation-new-heights.html"
+ },
+ {
+ "title": "Imageomics Institute Issues Call for Papers for NeurIPS 2025 Workshop",
+ "date": "July 30, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-institute-issues-call-papers-neurips-2025-workshop.jpg",
+ "imageAlt": "NeurIPS and Imageomics",
+ "description": "Workshop explores how machine learning can transform our understanding of...",
+ "url": "news/imageomics-institute-issues-call-papers-neurips-2025-workshop.html"
+ },
+ {
+ "title": "A Grand Time with AI for Nature",
+ "date": "July 28, 2025",
+ "year": 2025,
+ "image": "../images/news-images/grand-time-ai-nature-image-01.jpg",
+ "imageAlt": "Grandparents Day 2025",
+ "description": "Ohio State’s Grandparents Day spotlights Imageomics Institute’s research into AI...",
+ "url": "news/grand-time-ai-nature.html"
+ },
+ {
+ "title": "Branching Out: BioCLIP 2 Pushes the Boundaries of AI for Nature",
+ "date": "July 27, 2025",
+ "year": 2025,
+ "image": "../images/news-images/branching-out-bioclip-2-pushes-boundaries-ai-nature.jpg",
+ "imageAlt": "Images of organisms in their natural habitats can provide scientists with vital information about the natural world.",
+ "description": "Artificial intelligence is becoming a powerful tool for studying life on Earth...",
+ "url": "news/branching-out-bioclip-2-pushes-boundaries-ai-nature.html"
+ },
+ {
+ "title": "AI for Nature: Tomorrow’s science starts with today’s students.",
+ "date": "July 25, 2025",
+ "year": 2025,
+ "image": "../images/news-images/ai-nature-tomorrows-science-starts-todays-students-image-01.jpg",
+ "imageAlt": "1",
+ "description": "At the Imageomics Institute, we’re not just advancing artificial intelligence—we...",
+ "url": "news/ai-nature-tomorrows-science-starts-todays-students..html"
+ },
+ {
+ "title": "Sensor and Sensibility: Imageomics Takes Tech to The Wilds",
+ "date": "July 21, 2025",
+ "year": 2025,
+ "image": "../images/news-images/sensor-and-sensibility-imageomics-takes-tech-wilds.jpeg",
+ "imageAlt": "The Wilds deployment",
+ "description": "In a pioneering field deployment, Jenna Kline and the Imageomics team integrate...",
+ "url": "news/sensor-and-sensibility-imageomics-takes-tech-wilds.html"
+ },
+ {
+ "title": "Imageomics Institute is hiring OSU Students",
+ "date": "July 18, 2025",
+ "year": 2025,
+ "image": "../images/news-images/buzz-image-01.jpg",
+ "description": "We’re looking for motivated Ohio State undergrads with a passion for using AI...",
+ "url": "news/buzz.html"
+ },
+ {
+ "title": "Imageomics Digital Digest, Issue 5",
+ "date": "June 19, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-digital-digest-issue-5.png",
+ "imageAlt": "Issue 5",
+ "description": "Click the image to explore Issue 5 of the Imageomics Institute's Digital Digest...",
+ "url": "news/imageomics-digital-digest-issue-5.html"
+ },
+ {
+ "title": "Bring the Data Funk: FuncaPalooza 2025 Workshop Announced",
+ "date": "June 13, 2025",
+ "year": 2025,
+ "image": "../images/news-images/bring-data-funk-funcapalooza-2025-workshop-announced.jpg",
+ "imageAlt": "Funcapalooza 2025",
+ "description": "We’re turning up the volume on science and innovation with FuncaPalooza 2025, a...",
+ "url": "news/bring-data-funk-funcapalooza-2025-workshop-announced.html"
+ },
+ {
+ "title": "Imageomics Breakthroughs in AI for Biodiversity at CVPR 2025",
+ "date": "June 11, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-breakthroughs-ai-biodiversity-cvpr-2025-image-01.jpg",
+ "imageAlt": "imageomics at CVPR 2025",
+ "description": "The Imageomics Institute is making a strong showing at the 2025 Conference on...",
+ "url": "news/imageomics-breakthroughs-ai-biodiversity-cvpr-2025.html"
+ },
+ {
+ "title": "Carstens Earns Ohio State’s 2025 Distinguished Scholar Award",
+ "date": "June 10, 2025",
+ "year": 2025,
+ "image": "../images/news-images/carstens-earns-ohio-states-2025-distinguished-scholar-award-image.jpg",
+ "imageAlt": "Carstens",
+ "description": "Award highlights Carstens’ leadership in species delimitation, evolutionary...",
+ "url": "news/carstens-earns-ohio-states-2025-distinguished-scholar-award.html"
+ },
+ {
+ "title": "Yu Su Promoted to Associate Professor at Ohio State",
+ "date": "June 2, 2025",
+ "year": 2025,
+ "image": "../images/news-images/yu-su-promoted-associate-professor-ohio-state-image-01.jpeg",
+ "imageAlt": "YuiYu Su",
+ "description": "The Ohio State University Board of Trustees promoted Imageomics Institute's Dr...",
+ "url": "news/yu-su-promoted-associate-professor-ohio-state.html"
+ },
+ {
+ "title": "Imageomics Chain Reaction Series: Otto Brookes Swings into the Heart of Imageomics",
+ "date": "June 1, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-chain-reaction-series-otto-brookes-swings-heart-imageomics-image-01.jpeg",
+ "imageAlt": "Otto Brookes",
+ "description": "Leveraging AI and vast video datasets, Brookes deciphers great ape behaviors to...",
+ "url": "news/imageomics-chain-reaction-series-otto-brookes-swings-heart-imageomics.html"
+ },
+ {
+ "title": "Decker to Defend PhD with a Focus on Bats and Big Data",
+ "date": "May 30, 2025",
+ "year": 2025,
+ "image": "../images/news-images/decker-defend-phd-focus-bats-and-big-data.jpg",
+ "imageAlt": "Sydney Decker",
+ "description": "Ohio State graduate researcher blends biology and data science to illuminate bat...",
+ "url": "news/decker-defend-phd-focus-bats-and-big-data.html"
+ },
+ {
+ "title": "Imageomics Newsletter, Issue 4",
+ "date": "May 1, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-newsletter-issue-4-image-01.png",
+ "imageAlt": "Imageomics Newsletter, Issue 4",
+ "description": "Click the image to read the new Imageomics Newsletter, Issue 4: 2025 All-hands...",
+ "url": "news/imageomics-newsletter-issue-4.html"
+ },
+ {
+ "title": "PyBioClip: A New Toolset for Machine Learning on Biological Images",
+ "date": "April 28, 2025",
+ "year": 2025,
+ "image": "../images/news-images/pybioclip-new-toolset-machine-learning-biological-images.png",
+ "imageAlt": "PyBioClip Image",
+ "description": "New software unlocks structured biological image data for AI models, advancing...",
+ "url": "news/pybioclip-new-toolset-machine-learning-biological-images.html"
+ },
+ {
+ "title": "Imageomics Chain Reaction Series: Dominik Winecki",
+ "date": "April 24, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-chain-reaction-series-dominik-winecki-image-01.jpeg",
+ "imageAlt": "Dominik Winecki, PhD candidate at OSU Computer Science & Engineering.",
+ "description": "Imageomics Chain Reaction: A new spotlight series where one rising researcher...",
+ "url": "news/imageomics-chain-reaction-series-dominik-winecki.html"
+ },
+ {
+ "title": "Imageomics Institute Hosts 2025 All-Hands Meeting to Advance AI-Driven Biodiversity Research",
+ "date": "April 14, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-institute-hosts-2025-all-hands-meeting-advance-ai-driven-biodiversity-research.png",
+ "imageAlt": "2025 All Hands meeting",
+ "description": "The Imageomics Institute at The Ohio State University is convening its 2025 All...",
+ "url": "news/imageomics-institute-hosts-2025-all-hands-meeting-advance-ai-driven-biodiversity-research.html"
+ },
+ {
+ "title": "How a new drone system may transform next-gen ecology research",
+ "date": "April 14, 2025",
+ "year": 2025,
+ "image": "../images/news-images/how-new-drone-system-may-transform-next-gen-ecology-research.jpg",
+ "imageAlt": "Drone research taking ecology to the next level.",
+ "description": "The Ohio State News story on Imageomics' grad student Jenna Kline and her drone...",
+ "url": "news/how-new-drone-system-may-transform-next-gen-ecology-research.html"
+ },
+ {
+ "title": "Jenna Kline, Recipient of 2025 CSE Graduate Student Research Award",
+ "date": "April 7, 2025",
+ "year": 2025,
+ "image": "../images/news-images/jenna-kline-recipient-2025-cse-graduate-student-research-award-image-01.jpg",
+ "imageAlt": "Jenna Kline",
+ "description": "The Imageomics Institute is proud to announce Jenna Kline, a doctoral candidate...",
+ "url": "news/jenna-kline-recipient-2025-cse-graduate-student-research-award.html"
+ },
+ {
+ "title": "BioClip Wins 2025 CSE Graduate Research Poster Award",
+ "date": "April 3, 2025",
+ "year": 2025,
+ "description": "Congratulations to the “BioCLIP: A Vision Foundation Model for the Tree of Life”...",
+ "url": "news/bioclip-wins-2025-cse-graduate-research-poster-award.html"
+ },
+ {
+ "title": "Harry Chao Receives 2025 Early Career Distinguished Scholar Award",
+ "date": "April 2, 2025",
+ "year": 2025,
+ "image": "../images/news-images/harry-chao-receives-2025-early-career-distinguished-scholar-award.jpg",
+ "imageAlt": "Chao earns EC Award",
+ "description": "Wei-Lun (Harry) Chao, PhD, an assistant professor in the Department of Computer...",
+ "url": "news/harry-chao-receives-2025-early-career-distinguished-scholar-award.html"
+ },
+ {
+ "title": "Imageomics Institute Newsletter, Issue 3, 2025",
+ "date": "March 31, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-institute-newsletter-issue-3-2025-image-02.png",
+ "imageAlt": "Issue three newsletter",
+ "description": "Click Image to Read in Browser",
+ "url": "news/imageomics-institute-newsletter-issue-3-2025.html"
+ },
+ {
+ "title": "Wildwing Research Advances AI-driven Aerial Imaging for Conservation",
+ "date": "March 18, 2025",
+ "year": 2025,
+ "image": "../images/news-images/wildwing-research-advances-ai-driven-aerial-imaging-conservation.jpg",
+ "imageAlt": "WildWing research image",
+ "description": "Newly published research led by Jenna Kline and a team from the Imageomics...",
+ "url": "news/wildwing-research-advances-ai-driven-aerial-imaging-conservation.html"
+ },
+ {
+ "title": "Machine Learning Champions: The Brightest Minds Crack the Toughest Scientific Codes",
+ "date": "March 12, 2025",
+ "year": 2025,
+ "description": "NSF HDR Machine Learning Challenge winners tackle gravitational waves...",
+ "url": "news/machine-learning-champions-brightest-minds-crack-toughest-scientific-codes.html"
+ },
+ {
+ "title": "Through the Looking Net: New AI Vision Models Advance Animal Trait Detection",
+ "date": "March 5, 2025",
+ "year": 2025,
+ "image": "../images/news-images/through-looking-net-new-ai-vision-models-advance-animal-trait-detection.jpg",
+ "imageAlt": "SAE Research Released",
+ "description": "A new approach to understanding vision models sheds light on how AI sees the...",
+ "url": "news/through-looking-net-new-ai-vision-models-advance-animal-trait-detection.html"
+ },
+ {
+ "title": "Imageomics Institute Newsletter, Issue 2, 2025",
+ "date": "March 3, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-institute-newsletter-issue-2-2025-image-01.jpg",
+ "imageAlt": "Imageomics Newsletter, March",
+ "description": "Open the image or click the image to read in your browser.",
+ "url": "news/imageomics-institute-newsletter-issue-2-2025.html"
+ },
+ {
+ "title": "Imageomics Research Heads to Top Computer Vision Conference, CVPR 2025",
+ "date": "February 27, 2025",
+ "year": 2025,
+ "image": "../images/news-images/imageomics-research-heads-top-computer-vision-conference-cvpr-2025.jpeg",
+ "imageAlt": "CVPR 2025 and Imageomics Research",
+ "description": "Several Imageomics researchers will present their work at the prestigious IEEE...",
+ "url": "news/imageomics-research-heads-top-computer-vision-conference-cvpr-2025.html"
+ },
+ {
+ "title": "AI to the Rescue: How Artificial Intelligence is Helping Scientists Understand Biodiversity",
+ "date": "February 20, 2025",
+ "year": 2025,
+ "image": "../images/news-images/ai-rescue-how-artificial-intelligence-helping-scientists-understand-biodiversity-image-01.webp",
+ "description": "Research collaboration with The Ohio State University published in Nature shows...",
+ "url": "news/ai-rescue-how-artificial-intelligence-helping-scientists-understand-biodiversity.html"
+ },
+ {
+ "title": "Evolutionary Advancements: Imageomics Research to Shine at ICLR 2025",
+ "date": "January 22, 2025",
+ "year": 2025,
+ "image": "../images/news-images/evolutionary-advancements-imageomics-research-shine-iclr-2025.jpeg",
+ "imageAlt": "ICLR 2025",
+ "description": "Team’s cutting-edge AI method for discovering evolutionary traits earns a spot...",
+ "url": "news/evolutionary-advancements-imageomics-research-shine-iclr-2025.html"
+ },
+ {
+ "title": "Tweet Success: AI Tunes Into Hawaiian Birdsong for Conservation",
+ "date": "January 22, 2025",
+ "year": 2025,
+ "image": "../images/news-images/tweet-success-ai-tunes-hawaiian-birdsong-conservation.jpeg",
+ "imageAlt": "Amakihi birds",
+ "description": "Researchers use bioacoustics and AI to analyze ‘Amakihi bird dialects and...",
+ "url": "news/tweet-success-ai-tunes-hawaiian-birdsong-conservation.html"
+ },
+ {
+ "title": "Beetles, Birds, and Biodiversity: Researchers Travel to Dive into Hawaiian Ecosystems",
+ "date": "January 7, 2025",
+ "year": 2025,
+ "image": "../images/news-images/beetles-birds-and-biodiversity-researchers-travel-dive-hawaiian-ecosystems.jpg",
+ "imageAlt": "Hawaii Field Research",
+ "description": "Scientists aim to blend AI and ecology to reveal new discoveries in Hawaii.",
+ "url": "news/beetles-birds-and-biodiversity-researchers-travel-dive-hawaiian-ecosystems.html"
+ },
+ {
+ "title": "Tanya Berger-Wolf Honored with AI for Good Award for Biodiversity Conservation at H2O World New York",
+ "date": "January 3, 2025",
+ "year": 2025,
+ "image": "../images/news-images/tanya-berger-wolf-honored-ai-good-award-biodiversity-conservation-h2o-world-new-york-image-01.png",
+ "imageAlt": "Award winners",
+ "description": "Ohio State professor highlights how artificial intelligence is reshaping...",
+ "url": "news/tanya-berger-wolf-honored-ai-good-award-biodiversity-conservation-h2o-world-new-york.html"
+ },
+ {
+ "title": "Imageomics Director Talks AI Conservation Efforts on Scientific American Podcast",
+ "date": "December 16, 2024",
+ "year": 2024,
+ "image": "../images/news-images/imageomics-director-talks-ai-conservation-efforts-scientific-american-podcast-image-01.webp",
+ "imageAlt": "podcast episode",
+ "description": "Tanya Berger-Wolf featured discussing AI's role in ecology.",
+ "url": "news/imageomics-director-talks-ai-conservation-efforts-scientific-american-podcast.html"
+ },
+ {
+ "title": "Call for Papers AAAI 2025 Workshop (Deadline Extended!)",
+ "date": "December 16, 2024",
+ "year": 2024,
+ "image": "../images/news-images/call-papers-aaai-2025-workshop-deadline-extended.jpg",
+ "imageAlt": "Submission",
+ "description": "Calling all researchers! Submit to the Anomaly Detection in Scientific Domains...",
+ "url": "news/call-papers-aaai-2025-workshop-deadline-extended.html"
+ },
+ {
+ "title": "Jenna Kline Achieves Milestone as First Imageomics Institute PhD Candidate",
+ "date": "November 26, 2024",
+ "year": 2024,
+ "image": "../images/news-images/jenna-kline-achieves-milestone-first-imageomics-institute-phd-candidate-image-01.jpg",
+ "imageAlt": "Jenna Kline",
+ "description": "NextGen Jenna Kline officially passed her PhD candidacy exam, becoming the first...",
+ "url": "news/jenna-kline-achieves-milestone-first-imageomics-institute-phd-candidate.html"
+ },
+ {
+ "title": "AI Meets Biodiversity: Imageomics Research Goes Big at NeurIPS 2024",
+ "date": "November 18, 2024",
+ "year": 2024,
+ "image": "../images/news-images/ai-meets-biodiversity-imageomics-research-goes-big-neurips-2024-image-01.jpg",
+ "imageAlt": "NeurIPS and Imageomics",
+ "description": "Papers highlight new approaches to using AI for biological image analysis",
+ "url": "news/ai-meets-biodiversity-imageomics-research-goes-big-neurips-2024.html"
+ },
+ {
+ "title": "Seeing Is Believing: Imageomics Workshop to Showcase AI-Biology Innovations at AAAI 2025",
+ "date": "November 13, 2024",
+ "year": 2024,
+ "image": "../images/news-images/seeing-believing-imageomics-workshop-showcase-ai-biology-innovations-aaai-2025.jpg",
+ "imageAlt": "AAAi25",
+ "description": "Ohio State-led event invites AI and biology researchers to submit papers by Nov...",
+ "url": "news/seeing-believing-imageomics-workshop-showcase-ai-biology-innovations-aaai-2025.html"
+ },
+ {
+ "title": "Byte-ing into Biodiversity: AI Powers Conservation Conversations at COP16",
+ "date": "November 1, 2024",
+ "year": 2024,
+ "image": "../images/news-images/byte-ing-biodiversity-ai-powers-conservation-conversations-cop16-image-01.jpg",
+ "imageAlt": "Ohio State Professor Tanya Berger-Wolfe, seated third from left, speaks at a COP16 panel.",
+ "description": "Tanya Berger-Wolf and team showcase cutting-edge tech to tackle global...",
+ "url": "news/byte-ing-biodiversity-ai-powers-conservation-conversations-cop16.html"
+ },
+ {
+ "title": "Researcher Shares Cutting-Edge Insights on Animal Re-Identification in Visit to Ohio State",
+ "date": "October 16, 2024",
+ "year": 2024,
+ "description": "Dr. Ekaterina Nepovinnykh, a rising expert in digital image processing and...",
+ "url": "news/researcher-shares-cutting-edge-insights-animal-re-identification-visit-ohio-state.html"
+ },
+ {
+ "title": "Video: Announcing the NSF Harnessing the Data Revolution Machine Learning Challenge",
+ "date": "September 27, 2024",
+ "year": 2024,
+ "description": "NSF HDR ML Challenge The National Science Foundation (NSF) Harnessing the Data...",
+ "url": "news/video-announcing-nsf-harnessing-data-revolution-machine-learning-challenge.html"
+ },
+ {
+ "title": "Big Data, Big Impact: NSF HDR Conference Wrap Up",
+ "date": "September 16, 2024",
+ "year": 2024,
+ "image": "../images/news-images/big-data-big-impact-nsf-hdr-conference-wrap.jpg",
+ "imageAlt": "HDR Ecosystem Annual Meeting",
+ "description": "Experts discuss AI, data science, and biodiversity breakthroughs at national...",
+ "url": "news/big-data-big-impact-nsf-hdr-conference-wrap.html"
+ },
+ {
+ "title": "Wildlife's Digital Passport: A New Way to Track Animal Histories",
+ "date": "September 16, 2024",
+ "year": 2024,
+ "image": "../images/news-images/wildlifes-digital-passport-new-way-track-animal-histories-image-01.jpg",
+ "imageAlt": "Anuj Karpatne",
+ "description": "Global initiative to create unique animal IDs and a life history museum for...",
+ "url": "news/wildlifes-digital-passport-new-way-track-animal-histories.html"
+ },
+ {
+ "title": "A 'Swarm' of Solutions: Drone Research Takes Wildlife Conservation to New Heights",
+ "date": "September 6, 2024",
+ "year": 2024,
+ "image": "../images/news-images/swarm-solutions-drone-research-takes-wildlife-conservation-new-heights.jpg",
+ "imageAlt": "Jenna Kline, drone research",
+ "description": "Imageomics and WildDrone students are collaborating on designing the best way to...",
+ "url": "news/swarm-solutions-drone-research-takes-wildlife-conservation-new-heights.html"
+ },
+ {
+ "title": "BeetlePalooza 2024: Revolutionizing Biodiversity Research with AI and Machine Learning",
+ "date": "September 6, 2024",
+ "year": 2024,
+ "image": "../images/news-images/beetlepalooza-2024-revolutionizing-biodiversity-research-ai-and-machine-learning-image-01.jpg",
+ "imageAlt": "BeetlePalooza 2024 Recap",
+ "description": "BeetlePalooza 2024, hosted by the Imageomics Institute from August 12-15...",
+ "url": "news/beetlepalooza-2024-revolutionizing-biodiversity-research-ai-and-machine-learning.html"
+ },
+ {
+ "title": "Branching Out: Uyeda's Research Puts the 'Tree' in Phylogeny",
+ "date": "August 8, 2024",
+ "year": 2024,
+ "image": "../images/news-images/branching-out-uyedas-research-puts-tree-phylogeny-image-01.jpg",
+ "imageAlt": "Josef Uyeda",
+ "description": "Dr. Josef Uyeda of Virginia Tech is pioneering methods that map the history of...",
+ "url": "news/branching-out-uyedas-research-puts-tree-phylogeny.html"
+ },
+ {
+ "title": "Imageomics Highlights Key Role in Upcoming KGML Workshop",
+ "date": "August 5, 2024",
+ "year": 2024,
+ "image": "../images/news-images/imageomics-highlights-key-role-upcoming-kgml-workshop-image-01.jpeg",
+ "imageAlt": "KGML 2024",
+ "description": "Imageomics showcases its contributions to the KGML2024 workshop, with key...",
+ "url": "news/imageomics-highlights-key-role-upcoming-kgml-workshop.html"
+ },
+ {
+ "title": "Grand Ideas: Graduate Student Michelle Ramirez Bridging Generations with AI Vision",
+ "date": "August 1, 2024",
+ "year": 2024,
+ "image": "../images/news-images/grand-ideas-graduate-student-michelle-ramirez-bridging-generations-ai-vision.jpeg",
+ "imageAlt": "Michelle Ramirez teaching a class to middle school students this summer.",
+ "description": "Graduate student Michelle Ramirez blends machine learning and ecology, helping...",
+ "url": "news/grand-ideas-graduate-student-michelle-ramirez-bridging-generations-ai-vision.html"
+ },
+ {
+ "title": "Ph.D. Student Jenna Kline's Drone Research Accepted at Top Autonomous Systems Conference",
+ "date": "July 21, 2024",
+ "year": 2024,
+ "image": "../images/news-images/phd-student-jenna-klines-drone-research-accepted-top-autonomous-systems-conference.jpeg",
+ "imageAlt": "Jenna Kline",
+ "description": "Research Advancing Multi-Drone Coordination for Wildlife Studies Accepted at...",
+ "url": "news/ph.d.-student-jenna-klines-drone-research-accepted-top-autonomous-systems-conference.html"
+ },
+ {
+ "title": "Imageomics Institute Launches New AI-Ecology Course",
+ "date": "June 25, 2024",
+ "year": 2024,
+ "description": "A new course developed by the Imageomics Institute is set to bridge the fields...",
+ "url": "news/imageomics-institute-launches-new-ai-ecology-course.html"
+ },
+ {
+ "title": "BioCLIP Team Earns Best Student Paper Award at CVPR 2024",
+ "date": "June 21, 2024",
+ "year": 2024,
+ "image": "../images/news-images/bioclip-team-earns-best-student-paper-award-cvpr-2024.jpg",
+ "imageAlt": "CVPR 2024 Best Student Paper team.",
+ "description": "Imageomics Institute's BioCLIP won Best Student Paper at the CVPR 2024...",
+ "url": "news/bioclip-team-earns-best-student-paper-award-cvpr-2024.html"
+ },
+ {
+ "title": "New Science Behind Imageomics Highlighted in NSF Lecture by Tanya Berger-Wolf",
+ "date": "June 17, 2024",
+ "year": 2024,
+ "image": "../images/news-images/new-science-behind-imageomics-highlighted-nsf-lecture-tanya-berger-wolf.jpg",
+ "imageAlt": "NSF Lecture",
+ "description": "The National Science Foundation (NSF) recently hosted a distinguished lecture by...",
+ "url": "news/new-science-behind-imageomics-highlighted-nsf-lecture-tanya-berger-wolf.html"
+ },
+ {
+ "title": "May-June Imageomics Newsletter",
+ "date": "June 4, 2024",
+ "year": 2024,
+ "description": "Read the newsletter online.",
+ "url": "news/may-june-imageomics-newsletter.html"
+ },
+ {
+ "title": "BeetlePalooza 2024 Announced",
+ "date": "May 31, 2024",
+ "year": 2024,
+ "image": "../images/news-images/beetlepalooza-2024-announced.jpg",
+ "imageAlt": "BeetlePalooza Event Notice",
+ "description": "Apply to Attend Before June 10.",
+ "url": "news/beetlepalooza-2024-announced.html"
+ },
+ {
+ "title": "Karpatne's LakeGPT Research Earns NAIRR Pilot Award",
+ "date": "May 29, 2024",
+ "year": 2024,
+ "image": "../images/news-images/karpatnes-lakegpt-research-earns-nairr-pilot-award-image-01.jpg",
+ "imageAlt": "Lake Michigan sunset",
+ "description": "Advancing Lake Water Quality Monitoring Through KGML.",
+ "url": "news/karpatnes-lakegpt-research-earns-nairr-pilot-award.html"
+ },
+ {
+ "title": "Imageomics Hosts Dynamic Week of Events at Annual All-Hands Meeting 2024",
+ "date": "May 21, 2024",
+ "year": 2024,
+ "image": "../images/news-images/imageomics-hosts-dynamic-week-events-annual-all-hands-meeting-2024-image-01.jpg",
+ "imageAlt": "A group of men and women talking on an open tour bus.",
+ "description": "Conference Hosted at The Ohio State University Drew Global Researchers to...",
+ "url": "news/imageomics-hosts-dynamic-week-events-annual-all-hands-meeting-2024.html"
+ },
+ {
+ "title": "A New Era in Biology Unfolds with Imageomics Workflow Research",
+ "date": "May 2, 2024",
+ "year": 2024,
+ "image": "../images/news-images/new-era-biology-unfolds-imageomics-workflow-research-image-01.jpg",
+ "imageAlt": "Workflow",
+ "description": "New study introduces a FAIR and modular workflow, advancing the extraction of...",
+ "url": "news/new-era-biology-unfolds-imageomics-workflow-research.html"
+ },
+ {
+ "title": "Prof. Wei-Lun Chao discussed the role of machine learning and computer vision in imageomics",
+ "date": "March 8, 2024",
+ "year": 2024,
+ "image": "../images/news-images/prof-wei-lun-chao-discussed-role-machine-learning-and-computer-vision-imageomics-image-01.png",
+ "imageAlt": "Harry Chao",
+ "description": "By Tatyana Woodall, Ohio State News A new field promises to usher in a new era...",
+ "url": "news/prof.-wei-lun-chao-discussed-role-machine-learning-and-computer-vision-imageomics.html"
+ },
+ {
+ "title": "Imageomics poised to enable new understanding of life",
+ "date": "February 17, 2024",
+ "year": 2024,
+ "image": "../images/news-images/imageomics-poised-enable-new-understanding-life.jpg",
+ "imageAlt": "A researcher takes a photo of elephants and other wild life at a watering hold",
+ "description": "Research on mimicry in butterflies provides one example By Jeff Grabmeier...",
+ "url": "news/imageomics-poised-enable-new-understanding-life.html"
+ },
+ {
+ "title": "Imageomics team releases BioCLIP",
+ "date": "February 15, 2024",
+ "year": 2024,
+ "image": "../images/news-images/branching-out-bioclip-2-pushes-boundaries-ai-nature.jpg",
+ "imageAlt": "Images of organisms in their natural habitats can provide scientists with vital information about the natural world.",
+ "description": "By Tatyana Woodall Researchers have developed the largest-ever dataset of...",
+ "url": "news/imageomics-team-releases-bioclip.html"
+ },
+ {
+ "title": "Imageomics is Hiring for a Communications & Engagement Manager",
+ "date": "January 11, 2024",
+ "year": 2024,
+ "description": "We are searching for a dynamic Communications and Engagement Manager to join our...",
+ "url": "news/imageomics-hiring-communications-engagement-manager.html"
+ },
+ {
+ "title": "How technology and economics can help save endangered species: Experts look at future of Endangered Species Act",
+ "date": "December 21, 2023",
+ "year": 2023,
+ "description": "Article by Jeff Grabmeier, Ohio State News A lot has changed in the world...",
+ "url": "news/how-technology-and-economics-can-help-save-endangered-species-experts-look-future-endangered-species-act.html"
+ },
+ {
+ "title": "Imageomics is Hiring for a Postdoc at The Ohio State University",
+ "date": "December 15, 2023",
+ "year": 2023,
+ "description": "We are working on exciting problems in AI for Biology! Come join our team of...",
+ "url": "news/imageomics-hiring-postdoc-ohio-state-university.html"
+ },
+ {
+ "title": "Imageomics Institute's Daniel Rubenstein Elected President of Sigma Xi",
+ "date": "December 8, 2023",
+ "year": 2023,
+ "description": "In a recent election, members of Sigma Xi, The Scientific Research Honor Society...",
+ "url": "news/imageomics-institutes-daniel-rubenstein-elected-president-sigma-xi.html"
+ },
+ {
+ "title": "Imageomics Debut's with Inaugural Workshop at 2024 AAAI Conference",
+ "date": "November 3, 2023",
+ "year": 2023,
+ "description": "We are excited to announce that we have been invited to host a workshop this...",
+ "url": "news/imageomics-debuts-inaugural-workshop-2024-aaai-conference.html"
+ },
+ {
+ "title": "Berger-Wolf Leads new AI for Biodiversity Change Global Center",
+ "date": "September 18, 2023",
+ "year": 2023,
+ "image": "../images/news-images/berger-wolf-leads-new-ai-biodiversity-change-global-center.jpg",
+ "imageAlt": "A gray wolf in a snowy field",
+ "description": "Imageomics Institute Director, Prof. Tanya Berger-Wolf will led the AI and...",
+ "url": "news/berger-wolf-leads-new-ai-biodiversity-change-global-center.html"
+ },
+ {
+ "title": "New i2insights Publication on the Art of Organizing an All-hands Meeting",
+ "date": "September 14, 2023",
+ "year": 2023,
+ "description": "What makes a good all-hands meeting? What is an all-hands meeting? Find the...",
+ "url": "news/new-i2insights-publication-art-organizing-all-hands-meeting.html"
+ },
+ {
+ "title": "Image Datapalooza Brings Together Researchers from Around the World",
+ "date": "August 28, 2023",
+ "year": 2023,
+ "description": "Between August 14-17, 2023, Imageomics Institute hosted Image Datapalooza 2023...",
+ "url": "news/image-datapalooza-recap.html"
+ },
+ {
+ "title": "The National Academies on Science, Engineering, and Medicine Appoints Dr. Tanya Berger-Wolf.",
+ "date": "July 17, 2023",
+ "year": 2023,
+ "image": "../images/news-images/national-academies-science-engineering-and-medicine-appoints-dr-tanya-berger-wolf-image-01.jpeg",
+ "imageAlt": "Front of a government building with a US flag",
+ "description": "Dr. Tanya Berger-Wolf to serve on the National Academies Board on Life Science...",
+ "url": "news/national-academies-science-engineering-and-medicine-appoints-dr.-tanya-berger-wolf..html"
+ },
+ {
+ "title": "Dr. Berger-Wolf and Dr. Mabee Serve as Panelists for The National Academies.",
+ "date": "July 10, 2023",
+ "year": 2023,
+ "image": "../images/news-images/dr-berger-wolf-and-dr-mabee-serve-panelists-national-academies.jpg",
+ "imageAlt": "Earth from space.",
+ "description": "Dr. Berger-Wolf and Dr. Mabee discuss applications of data integration and AI...",
+ "url": "news/dr.-berger-wolf-and-dr.-mabee-serve-panelists-national-academies..html"
+ },
+ {
+ "title": "Wildlife Conservation Leverages AI: Dr. Berger-Wolf Discusses Imageomics During OSU Engineering Podcast",
+ "date": "June 14, 2023",
+ "year": 2023,
+ "image": "../images/news-images/wildlife-conservation-leverages-ai-dr-berger-wolf-discusses-imageomics-during-osu-image-01.png",
+ "imageAlt": "Two women sitting across the table from one another speaking into microphones",
+ "description": "Dr. Tanya Berger-Wolf appears on The Ohio State University's Enginuity Podcast...",
+ "url": "news/wildlife-conservation-leverages-ai-dr.-berger-wolf-discusses-imageomics-during-osu.html"
+ },
+ {
+ "title": "NextGens Showcase Imageomics Research at Midwest Machine Learning Symposium 2023",
+ "date": "May 18, 2023",
+ "year": 2023,
+ "description": "Jenna Kline and Michelle Ramirez recently presented posters on imageomics...",
+ "url": "news/nextgens-showcase-imageomics-research-midwest-machine-learning-symposium-2023.html"
+ },
+ {
+ "title": "Imageomics NextGen Mohannad Elhamod Named Graduate Student of the Year by Virginia Tech",
+ "date": "May 15, 2023",
+ "year": 2023,
+ "image": "../images/news-images/imageomics-nextgen-mohannad-elhamod-named-graduate-student-year-virginia-tech-image-01.jpg",
+ "imageAlt": "smiling man with salt and pepper beard and brown eyes. He is wearing a black hat, red button up shirt covered by a jean jacket He is standing in front a pink cherry tree.",
+ "description": "Mohannad Elhamod, Ph.D. candidate in the Department of Computer Science at...",
+ "url": "news/imageomics-nextgen-mohannad-elhamod-named-graduate-student-year-virginia-tech.html"
+ },
+ {
+ "title": "Blog Post Published by Imageomics Social Science Team",
+ "date": "March 27, 2023",
+ "year": 2023,
+ "image": "../images/news-images/blog-post-published-imageomics-social-science-team-image-01.jpg",
+ "imageAlt": "mosaic of headshots of three authors with Jiang at top, Boghrat on bottom left, and Grabmeier on bottom right",
+ "description": "Imageomics team scientist, Gemma Jiang (top image), program manager, Diane...",
+ "url": "news/blog-post-published-imageomics-social-science-team.html"
+ },
+ {
+ "title": "Wei-Lun Chao and Yu Su awarded 2023 College of Engineering Faculty Award",
+ "date": "March 27, 2023",
+ "year": 2023,
+ "image": "../images/news-images/wei-lun-chao-and-yu-su-awarded-2023-college-engineering-faculty-award.png",
+ "imageAlt": "Two men with dark hair brown eyes and black rimmed glasses smile for the photo in two headshot style photographs",
+ "description": "Imageomics researchers Yu Su (left) and Wei-Lun (Harry) Chao (right) were...",
+ "url": "news/wei-lun-chao-and-yu-su-awarded-2023-college-engineering-faculty-award.html"
+ },
+ {
+ "title": "Wei-Lun Chao Represents Imageomics at ADSA Workshop",
+ "date": "March 23, 2023",
+ "year": 2023,
+ "description": "Imageomics research, Wei-Lun Chao was a featured speaker at ImageXD 2023, co...",
+ "url": "news/wei-lun-chao-represents-imageomics-adsa-workshop.html"
+ },
+ {
+ "title": "Imageomics is Hiring for a Research Data Manager and Technology Coordinator",
+ "date": "January 11, 2023",
+ "year": 2023,
+ "description": "The Imageomics Institute is hiring for a full-time Research Data Manager and...",
+ "url": "news/imageomics-hiring-research-data-manager-and-technology-coordinator.html"
+ },
+ {
+ "title": "Imageomics Embarks on Kenya Research Experience",
+ "date": "January 11, 2023",
+ "year": 2023,
+ "description": "On January 5, a group of imageomics students and faculty arrived at Mpala...",
+ "url": "news/imageomics-embarks-kenya-research-experience.html"
+ },
+ {
+ "title": "Buckeyes participate in inaugural U.S.-Africa science, engineering and medicine symposium",
+ "date": "November 1, 2022",
+ "year": 2022,
+ "image": "../images/news-images/buckeyes-participate-inaugural-us-africa-science-engineering-and-medicine-symposium.jpg",
+ "imageAlt": "Group photo of participants from U.S.-Africa Frontiers of Science Symposium",
+ "description": "Materials Science and Engineering Assistant Professor Aeriel Leonard was invited...",
+ "url": "news/buckeyes-participate-inaugural-u.s.-africa-science-engineering-and-medicine-symposium.html"
+ },
+ {
+ "title": "A new field of science for global biodiversity",
+ "date": "August 26, 2022",
+ "year": 2022,
+ "image": "../images/news-images/new-field-science-global-biodiversity.jpg",
+ "imageAlt": "smiling woman in black suit with red button up shirt stands in front of monitor displaying different images of butterflies",
+ "description": "Tanya Berger-Wolf is weaving biology and machine learning into a new field of...",
+ "url": "news/new-field-science-global-biodiversity.html"
+ },
+ {
+ "title": "Experiential Introduction to Imageomics Course Begins August 23",
+ "date": "August 18, 2022",
+ "year": 2022,
+ "description": "A three-part year-long series of experiential courses in the new field of...",
+ "url": "news/experiential-introduction-imageomics-course-begins-august-23.html"
+ },
+ {
+ "title": "Imageomics team is hiring two new positions",
+ "date": "July 21, 2022",
+ "year": 2022,
+ "description": "The Imageomics Institute is hiring two new full-time positions to provide...",
+ "url": "news/imageomics-team-hiring-two-new-positions.html"
+ },
+ {
+ "title": "Work of Imageomics Researchers Featured at 2022 CVPR Conference",
+ "date": "June 27, 2022",
+ "year": 2022,
+ "image": "../images/news-images/work-imageomics-researchers-featured-2022-cvpr-conference.png",
+ "imageAlt": "CVPR 2022 Logo with backdrop of new orleans",
+ "description": "The work of researchers from the Imageomics Institute were featured during the...",
+ "url": "news/work-imageomics-researchers-featured-2022-cvpr-conference.html"
+ },
+ {
+ "title": "Diamond, Rolfe, Kwon and Maga paper in Biology Open",
+ "date": "May 13, 2022",
+ "year": 2022,
+ "description": "Kelly Diamond, Sara M. Rolfe, and Ronald Y. Kwon, A. Murat Maga are authors of a...",
+ "url": "news/diamond-rolfe-kwon-and-maga-paper-biology-open.html"
+ },
+ {
+ "title": "Imageomics-related work accepted into CVPR 2022",
+ "date": "March 3, 2022",
+ "year": 2022,
+ "description": "A new paper on vision-and-language ML led by Imageomics NextGens Luke Song and...",
+ "url": "news/imageomics-related-work-accepted-cvpr-2022.html"
+ },
+ {
+ "title": "New Imageomics paper in Nature Communications",
+ "date": "February 15, 2022",
+ "year": 2022,
+ "description": "Members of the Imageomics Institute team have a new paper in Nature...",
+ "url": "news/new-imageomics-paper-nature-communications.html"
+ },
+ {
+ "title": "Imageomics team is hiring a program manager",
+ "date": "February 1, 2022",
+ "year": 2022,
+ "description": "The Imageomics Institute is hiring a full-time program manager to oversee key...",
+ "url": "news/imageomics-team-hiring-program-manager.html"
+ },
+ {
+ "title": "New NSF Institute To Establish Field Of Imageomics",
+ "date": "January 25, 2022",
+ "year": 2022,
+ "description": "Picture this: Computerized image analysis to help understand evolution. The...",
+ "url": "news/new-nsf-institute-establish-field-imageomics.html"
+ }
+]
diff --git a/html/about.html b/html/about.html
index 1e809c9..1b29698 100644
--- a/html/about.html
+++ b/html/about.html
@@ -11,9 +11,9 @@
-
+
About Imageomics
- Learn about our vision, community, team, and the people working across the Imageomics Institute.
+ Imageomics is a new scientific field in which computational (machine learning) tools built around biological knowledge bases are used by biologists to analyze image data. The Imageomics Institute is supported by the National Science Foundation grant.
This temporary About landing page will be removed when the full site is ready.
diff --git a/html/about/faculty-staff.html b/html/about/faculty-staff.html
index f072786..338ce6a 100644
--- a/html/about/faculty-staff.html
+++ b/html/about/faculty-staff.html
@@ -6,6 +6,7 @@
Institute Faculty & Staff | Imageomics Institute
+
diff --git a/html/about/imageomics-in-the-news.html b/html/about/imageomics-in-the-news.html
index 4fa6f0c..a3ba632 100644
--- a/html/about/imageomics-in-the-news.html
+++ b/html/about/imageomics-in-the-news.html
@@ -29,6 +29,8 @@ Imageomics In the News
2026
+ June 5, 2026 Computational ecology: How Tanya Berger-Wolf built a new kind of conservation science. AAAS Blog
+ May 14, 2026 Drone Use in Ecology with Jenna Kline | 2025 Robert May Prize Winner. British Ecological Society Podcast
March 18, 2026 Winner! Jenna Kline: Studying collective animal behaviour with drones and computer vision. Methods Blog
February 18, 2026 DeMattei wins ESA's Katherine S. McCarter Policy Award. Ecological Society of America
January 7, 2026 'I rarely get outside': scientists ditch fieldwork in the age of AI. Nature
diff --git a/html/about/nextgens.html b/html/about/nextgens.html
index e8fc290..d947c16 100644
--- a/html/about/nextgens.html
+++ b/html/about/nextgens.html
@@ -10,7 +10,7 @@
-
+
NextGens
Our NextGen community consists of graduate students and postdoctoral researchers who lead our research endeavors in the emerging interdisciplinary field of imageomics. Coming from leading universities nationwide, this next generation of imageomics researchers represent diverse disciplines within the fields of Biological Sciences and Computer Science.
diff --git a/html/components/footer.html b/html/components/footer.html
index 2927ad5..1868b0d 100644
--- a/html/components/footer.html
+++ b/html/components/footer.html
@@ -1,15 +1,13 @@