/* Page-specific compositions, extending the original NexaPress theme. */
.ab-page {
  --ab-surface: var(--c-white);
  --ab-soft: var(--c-surface-alt);
  --ab-border: var(--c-border-soft);
  --ab-text: var(--c-text-soft);
  --ab-heading: var(--c-black);
  --ab-muted: var(--c-muted);
}
.dark-mode .ab-page {
  --ab-surface: var(--c-dark-surface);
  --ab-soft: var(--c-dark-surface-2);
  --ab-border: var(--c-dark-border-strong);
  --ab-text: var(--c-dark-text);
  --ab-heading: var(--c-white);
  --ab-muted: var(--c-dark-text-muted);
}
.ab-page .ab-content { padding-block: 3.75rem 1rem; view-transition-name: ab-content; }
.ab-page .ab-content *, .ab-page .ab-aside * { min-width: 0; }
.ab-page .ab-content h2, .ab-page .ab-content h3, .ab-page .ab-aside h2 { color: var(--ab-heading); margin: 0; line-height: 1.55; }
.ab-page .ab-content h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); }
.ab-page .ab-content h3 { font-size: clamp(1.25rem, 1.9vw, 1.55rem); }
.ab-page .ab-content p, .ab-page .ab-aside p { color: var(--ab-text); line-height: 1.95; font-size: 1.05rem; margin: 0; }
.ab-page .ab-section { margin-block-end: 4rem; }
.ab-page .ab-eyebrow { display: block; color: var(--c-primary); font-weight: 600; font-size: .9rem; margin-block-end: .8rem; }
.ab-page .ab-number { display: block; color: var(--c-primary); font-size: 1.1rem; font-weight: 600; margin-block-end: 1.5rem; font-variant-numeric: tabular-nums; }
.ab-page .ab-link { display: inline-block; font-size: 1rem; font-weight: 600; text-decoration: none; padding-block: .3rem; border-block-end: 1px solid currentColor; transition: color .25s ease, border-color .25s ease; }
.ab-page .ab-link:hover { color: var(--ab-heading); border-color: transparent; }
.ab-page .ab-chip { display: inline-flex; align-items: center; width: fit-content; border-radius: var(--r-pill); padding: .4rem .85rem; font-size: .9rem; background: rgba(54,127,247,.09); color: var(--c-primary); line-height: 1.6; }
.ab-page .ab-note { padding: 1.3rem 1.5rem; border-inline-start: 3px solid var(--c-primary); background: var(--ab-soft); border-radius: var(--r-sm); font-size: 1rem; }
.ab-page .ab-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-block-end: 1.6rem; }
.ab-page .ab-heading-copy { max-width: 25rem; }
.ab-page .ab-aside { padding: 2rem; min-height: 510px; display: flex; flex-direction: column; border-radius: var(--r-lg); border: 1px solid var(--ab-border); background: linear-gradient(145deg,rgba(54,127,247,.075),transparent 75%),var(--ab-surface); }
.ab-page .ab-aside h2 { font-size: 1.6rem; margin-block-end: .85rem; }
.ab-page .ab-aside p { font-size: 1rem; }
.ab-page .ab-aside-list { list-style: none; padding: 0; margin: 1.5rem 0; }
.ab-page .ab-aside-list li { display: flex; gap: .8rem; padding-block: .9rem; border-block-end: 1px solid var(--ab-border); color: var(--ab-heading); font-size: 1rem; line-height: 1.7; }
.ab-page .ab-aside-list a { text-decoration: none; color: inherit; }
.ab-page .ab-aside-list a:hover { color: var(--c-primary); }
.ab-page .ab-aside-index { color: var(--c-primary); font-size: .9rem; font-variant-numeric: tabular-nums; padding-block-start: .15rem; }
.ab-page .ab-aside-foot { color: var(--ab-muted); font-size: .9rem; line-height: 1.8; margin-block-start: auto; padding-block-start: .8rem; }
.ab-page .ab-research-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 4rem; align-items: start; }
.ab-page .ab-lead { border-inline-start: 1px solid var(--ab-border); padding-inline-start: 2rem; }
.ab-page .ab-research-axes { display: grid; grid-template-columns: repeat(3,1fr); border-block: 1px solid var(--ab-border); }
.ab-page .ab-axis { position: relative; padding: 2rem; transition: background-color .3s ease; }
.ab-page .ab-axis + .ab-axis { border-inline-start: 1px solid var(--ab-border); }
.ab-page .ab-axis h3 { margin-block-end: .8rem; }
.ab-page .ab-axis:hover { background: var(--ab-soft); }
.ab-page .ab-publication { display: grid; grid-template-columns: 13rem 1fr; border: 1px solid var(--ab-border); border-radius: var(--r-lg); overflow: hidden; background: var(--ab-surface); margin-block-end: 1.5rem; transition: box-shadow .35s ease, border-color .35s ease; }
.ab-page .ab-publication:hover { border-color: var(--c-primary); box-shadow: var(--shadow-md); }
.ab-page .ab-publication-index { background: var(--c-primary); color: var(--c-white); display: flex; flex-direction: column; justify-content: center; padding: 2rem; }
.ab-page .ab-publication-index strong { font-size: 5rem; line-height: 1.2; font-weight: 500; }
.ab-page .ab-publication-copy { padding: 2rem; }
.ab-page .ab-publication-copy h3 a { color: var(--ab-heading); text-decoration: none; }
.ab-page .ab-publication-copy h3 a:hover { color: var(--c-primary); }
.ab-page .ab-publication-copy p { margin-block: 1rem; }
.ab-page .ab-project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.ab-page .ab-project { padding: 2.5rem; border: 1px solid var(--ab-border); border-radius: var(--r-lg); background: var(--ab-surface); scroll-margin-top: 8rem; transition: transform .35s var(--ease-standard), box-shadow .35s ease, border-color .35s ease; }
.ab-page .ab-project-feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; background: linear-gradient(135deg,rgba(54,127,247,.09),transparent 65%),var(--ab-surface); }
.ab-page .ab-project h2 { font-size: clamp(2rem,4vw,3.5rem); margin-block: 1.2rem; }
.ab-page .ab-project-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ab-page .ab-project-number { font-size: 1.3rem; font-weight: 500; color: var(--c-primary); font-variant-numeric: tabular-nums; }
.ab-page .ab-project-identity > .ab-project-number { display: block; margin-block-end: 1rem; }
.ab-page .ab-project-subtitle { display: block; color: var(--ab-muted); }
.ab-page .ab-project-copy { align-self: center; }
.ab-page .ab-tags { list-style: none; padding: 0; margin: 1.5rem 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ab-page .ab-tags li { padding: .4rem .8rem; border: 1px solid var(--ab-border); border-radius: var(--r-pill); color: var(--ab-text); font-size: .9rem; }
.ab-page .ab-project-property { border-block-start: 3px solid var(--c-primary); }
.ab-page .ab-project-ethics { background: linear-gradient(180deg,rgba(54,127,247,.045),transparent),var(--ab-surface); }
.ab-page .ab-work-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 3rem; }
.ab-page .ab-work-list { border-block-start: 1px solid var(--ab-border); }
.ab-page .ab-work-row { display: grid; grid-template-columns: 4rem minmax(0,.8fr) minmax(0,1.2fr); gap: 2rem; padding: 2.5rem 1rem; border-block-end: 1px solid var(--ab-border); transition: background-color .3s ease; }
.ab-page .ab-work-index { font-size: 2.2rem; color: var(--c-primary); line-height: 1.4; font-weight: 500; font-variant-numeric: tabular-nums; }
.ab-page .ab-work-title .ab-eyebrow { margin-block-end: .4rem; }
.ab-page .ab-work-row .ab-link { margin-block-start: 1rem; }
.ab-page .ab-work-row:hover { background: var(--ab-soft); }
.ab-page .ab-work-close { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 2.5rem; background: var(--ab-soft); border-radius: var(--r-lg); }
.ab-page .ab-work-close p { margin-block-start: .8rem; }
.ab-page .ab-work-close .btn { flex-shrink: 0; }
.ab-page .ab-contact-intro { text-align: center; max-width: 43rem; margin-inline: auto; }
.ab-page .ab-contact-intro h2 { font-size: clamp(2rem,3.6vw,3rem); margin-block-end: 1rem; }
.ab-page .ab-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.ab-page .ab-contact-professional, .ab-page .ab-contact-property { padding: 3rem; border-radius: var(--r-lg); display: flex; flex-direction: column; align-items: start; gap: 1rem; min-height: 360px; transition: transform .35s var(--ease-standard), box-shadow .35s ease; }
.ab-page .ab-contact-professional { background: linear-gradient(145deg,var(--c-primary),var(--c-primary-deep)); color: var(--c-white); }
.ab-page .ab-contact-professional h3, .ab-page .ab-contact-professional p { color: var(--c-white); }
.ab-page .ab-contact-label { font-size: .9rem; color: rgba(255,255,255,.85); }
.ab-page .ab-contact-topics { display: flex; gap: .6rem; flex-wrap: wrap; margin-block: .5rem; }
.ab-page .ab-contact-topics span { font-size: .9rem; padding: .4rem .8rem; border: 1px solid rgba(255,255,255,.4); border-radius: var(--r-pill); }
.ab-page .ab-contact-professional .btn, .ab-page .ab-contact-property .btn { margin-block-start: auto; }
.ab-page .ab-contact-property { border: 1px solid var(--ab-border); background: var(--ab-surface); }
.ab-page .ab-contact-property .ab-eyebrow { margin: 0; }
.ab-page .ab-contact-brand { display: flex; flex-direction: column; gap: .25rem; margin-block: .5rem; }
.ab-page .ab-contact-brand bdi { font-size: 1.7rem; font-weight: 600; color: var(--ab-heading); }
.ab-page .ab-contact-brand span { color: var(--ab-muted); font-size: .9rem; }
.ab-page .ab-contact-context { border-block-start: 1px solid var(--ab-border); padding-block-start: 2.5rem; }
.ab-page .ab-contact-context > h2 { font-size: 1.5rem; margin-block-end: 1.5rem; }
.ab-page .ab-contact-context ol { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }
.ab-page .ab-contact-context li { display: flex; gap: 1rem; }
.ab-page .ab-contact-context li > span { color: var(--c-primary); font-size: 1.1rem; padding-block-start: .2rem; }
.ab-page .ab-contact-context h3 { font-size: 1.15rem; margin-block-end: .5rem; }
.ab-page .ab-content .btn { white-space: normal; line-height: 1.6; }
.ab-page .ab-reveal { opacity: 1; }
.ab-page .ab-reveal.ab-reveal-pending { opacity: 0; transform: translateY(20px); }
.ab-page .ab-reveal.ab-reveal-enter { animation: ab-reveal-in .7s var(--ease-standard) both; }
@keyframes ab-reveal-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .ab-page .ab-project:hover, .ab-page .ab-contact-professional:hover, .ab-page .ab-contact-property:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
  .ab-page .ab-project:hover { border-color: var(--c-primary); }
}
@media (max-width: 991px) {
  .ab-page .ab-aside { min-height: auto; }
  .ab-page .ab-research-intro, .ab-page .ab-work-intro { gap: 2rem; }
  .ab-page .ab-axis { padding: 1.5rem 1rem; }
  .ab-page .ab-work-row { gap: 1rem; grid-template-columns: 3rem minmax(0,.8fr) minmax(0,1.2fr); }
  .ab-page .ab-contact-professional, .ab-page .ab-contact-property { padding: 2rem; }
}
@media (max-width: 767px) {
  .ab-page .ab-content { padding-block-start: 2.5rem; }
  .ab-page .ab-section { margin-block-end: 2.5rem; }
  .ab-page .ab-aside { padding: 1.5rem; }
  .ab-page .ab-research-intro, .ab-page .ab-work-intro, .ab-page .ab-project-grid, .ab-page .ab-contact-grid { grid-template-columns: 1fr; }
  .ab-page .ab-lead { padding-inline-start: 1.2rem; }
  .ab-page .ab-research-axes { grid-template-columns: 1fr; }
  .ab-page .ab-axis { padding: 1.5rem; }
  .ab-page .ab-axis + .ab-axis { border-inline-start: 0; border-block-start: 1px solid var(--ab-border); }
  .ab-page .ab-number { margin-block-end: .8rem; }
  .ab-page .ab-section-heading { align-items: start; flex-direction: column; gap: 1rem; }
  .ab-page .ab-publication { grid-template-columns: 1fr; }
  .ab-page .ab-publication-index { flex-direction: row; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; }
  .ab-page .ab-publication-index strong { font-size: 3rem; }
  .ab-page .ab-publication-copy, .ab-page .ab-project { padding: 1.5rem; }
  .ab-page .ab-project-feature { grid-template-columns: 1fr; gap: 1.5rem; }
  .ab-page .ab-project-top { flex-wrap: wrap; }
  .ab-page .ab-work-row { grid-template-columns: 2.5rem 1fr; gap: .8rem; padding: 1.5rem .5rem; }
  .ab-page .ab-work-row > div:last-child { grid-column: 2; }
  .ab-page .ab-work-index { font-size: 1.7rem; }
  .ab-page .ab-work-close { flex-direction: column; align-items: start; padding: 1.5rem; }
  .ab-page .ab-contact-professional, .ab-page .ab-contact-property { min-height: 0; padding: 1.7rem; }
  .ab-page .ab-contact-professional .btn, .ab-page .ab-contact-property .btn { margin-block-start: 1rem; }
  .ab-page .ab-contact-context ol { grid-template-columns: 1fr; gap: 1.5rem; }
}
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; }
::view-transition-old(ab-content) { animation: ab-content-out .2s ease both; }
::view-transition-new(ab-content) { animation: ab-content-in .35s ease both; }
@keyframes ab-content-out { to { opacity: 0; } }
@keyframes ab-content-in { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) {
  .ab-page .ab-reveal.ab-reveal-pending { opacity: 1; transform: none; }
  .ab-page .ab-reveal.ab-reveal-enter { animation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
