/* Compact notebook layout; all typography uses the theme tokens. */
.azibom-research-page, .azibom-research-index { width: min(calc(100% - 2rem), 68rem); min-height: 60vh; margin-inline: auto; padding-block: 5.5rem 2.5rem; color: var(--az-color-text); font-size: var(--az-text-sm); }
.azibom-research__header { max-width: 40rem; margin-inline: auto; text-align: center; }
.azibom-research__header h1, .azibom-research-index__header h1 { margin: .25rem 0 .5rem; font-size: var(--az-text-2xl) !important; line-height: var(--az-leading-heading) !important; }
.azibom-research__header p, .azibom-research-index__header p { margin: .35rem 0; }
.azibom-research__eyebrow, .azibom-research-index__eyebrow, .azibom-research-modal__kind { color: var(--az-color-primary); font-size: var(--az-text-xs); }
.azibom-research__parent, .azibom-research__summary, .azibom-research__hint { color: var(--az-color-muted); }
.azibom-research__hint { font-size: var(--az-text-xs); }
.azibom-research__paper {
    margin-block-start: 1.25rem; border: 1px solid var(--az-color-border); border-radius: var(--az-radius-md); overflow-x: auto;
    background-color: var(--az-color-surface);
    background-image: linear-gradient(var(--az-color-border) 1px, transparent 1px), linear-gradient(90deg, var(--az-color-border) 1px, transparent 1px);
    background-size: 20px 20px;
}
.azibom-research__canvas { position: relative; isolation: isolate; min-width: calc(var(--research-source-count, 1) * 17rem + 2rem); padding: 1.5rem 1rem 2rem; }
.azibom-research__connections { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: visible; color: var(--az-color-muted); pointer-events: none; }
.azibom-research__connections > path { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.azibom-research__root, .azibom-research__source, .azibom-research__node { position: relative; z-index: 1; box-sizing: border-box; color: var(--az-color-ink); font-family: inherit; font-size: var(--az-text-sm); line-height: 1.65; cursor: pointer; overflow-wrap: anywhere; }
.azibom-research__root { display: flex; width: 13rem; margin-inline: auto; padding: .25rem .5rem; align-items: center; flex-direction: column; gap: .15rem; border: 0; background: var(--az-color-surface); }
.azibom-research__root strong, .azibom-research__source strong { font-weight: 500; }
.azibom-research__root small, .azibom-research__source small { font-size: var(--az-text-xs); color: var(--az-color-muted); }
.azibom-research__actor { display: block; width: 36px; height: 48px; flex: none; }
.azibom-research__actor path { stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.azibom-research__sources { display: grid; grid-template-columns: repeat(var(--research-source-count, 1), minmax(0, 1fr)); gap: 1.5rem; padding-block-start: 2.5rem; align-items: start; }
.azibom-research__branch { min-width: 0; width: 100%; max-width: 19rem; justify-self: center; }
.azibom-research__source { display: flex; width: calc(100% - 1.75rem); min-height: 8rem; margin-inline-start: 1.75rem; padding: .85rem; align-items: center; flex-direction: column; justify-content: center; gap: .2rem; border: 1px solid var(--az-color-border-strong); border-radius: .6rem .45rem .7rem .5rem; background: var(--az-color-surface); box-shadow: 2px 2px 0 var(--az-color-border); text-align: center; }
.azibom-research__source img { max-width: 100%; width: auto; height: 5.5rem; margin-block-end: .4rem; object-fit: contain; }
.azibom-research__source-placeholder { display: grid; width: 2rem; height: 2rem; place-items: center; color: var(--az-color-primary); font-size: var(--az-text-xl); }
.azibom-research__source-type { color: var(--az-color-primary); font-size: var(--az-text-xs); }
.azibom-research__nodes { display: flex; margin-block-start: 1.25rem; flex-direction: column; gap: .75rem; }
.azibom-research__node { width: calc(100% - 1.75rem); min-height: 2.75rem; margin-inline-start: 1.75rem; padding: .55rem .75rem; border: 1px solid var(--az-color-muted); border-radius: .5rem .7rem .45rem .6rem; background: var(--az-color-surface); box-shadow: 1px 2px 0 var(--az-color-border); text-align: start; }
.azibom-research__source:hover, .azibom-research__node:hover { border-color: var(--az-color-primary); background: var(--az-color-primary-soft); }
.azibom-research-modal[hidden] { display: none; }
.azibom-research-modal { position: fixed; inset: 0; z-index: 10020; display: grid; padding: 1rem; place-items: center; font-size: var(--az-text-sm); }
.azibom-research-modal__backdrop { position: absolute; inset: 0; background: rgba(25,25,35,.32); }
.azibom-research-modal__dialog { position: relative; width: min(100%, 36rem); max-height: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain; padding: 1.25rem; border: 1px solid var(--az-color-border-strong); border-radius: .8rem .6rem .9rem .65rem; background: var(--az-color-surface); box-shadow: var(--az-shadow-raised); overflow-wrap: anywhere; }
.azibom-research-modal__dialog h2 { padding-inline-end: 2rem; font-size: var(--az-text-xl) !important; }
.azibom-research-modal__dialog h3, .azibom-research-modal__dialog h4 { font-size: var(--az-text-base) !important; }
.azibom-research-modal__dialog p { margin-block: .5rem; }
.azibom-research-modal__dialog ul, .azibom-research-modal__dialog ol { padding-inline-start: 1.25rem; }
.azibom-research-modal__dialog ul { list-style: disc; }
.azibom-research-modal__dialog ol { list-style: decimal; }
.azibom-research-modal__close { position: absolute; inset-block-start: .5rem; inset-inline-end: .5rem; display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 0; background: transparent; color: var(--az-color-muted); font-size: var(--az-text-xl); cursor: pointer; }
.azibom-research-modal__media { margin: .75rem 0; }
.azibom-research-modal__media img, .azibom-research-modal__video iframe { display: block; width: 100%; border: 0; border-radius: var(--az-radius-sm); }
.azibom-research-modal__video iframe { aspect-ratio: 16 / 9; height: auto; margin-block: .75rem; }
.azibom-research-modal__reference { margin-block-start: 1rem; padding: .65rem .85rem; border-inline-start: 2px solid var(--az-color-primary); background: var(--az-color-surface-soft); }
.azibom-research-modal__reference small { display: block; font-size: var(--az-text-xs); color: var(--az-color-muted); }
body.azibom-research-modal-open { overflow: hidden; }
.azibom-research-index__header { max-width: 40rem; }
.azibom-research-index__header > p:last-child { color: var(--az-color-muted); }
.azibom-research-index__grid { display: grid; margin-block-start: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.azibom-research-index__card { border: 1px solid var(--az-color-border-strong); border-radius: .65rem .5rem .75rem .55rem; background: var(--az-color-surface); }
.azibom-research-index__card:hover { border-color: var(--az-color-primary); }
.azibom-research-index__card > a { display: flex; height: 100%; padding: 1rem; flex-direction: column; color: var(--az-color-text); text-decoration: none; }
.azibom-research-index__card h2 { margin-block: .5rem; font-size: var(--az-text-lg) !important; }
.azibom-research-index__card p { margin: 0; }
.azibom-research-index__kind { color: var(--az-color-primary); font-size: var(--az-text-xs); }
.azibom-research-index__counts { margin-block-start: auto; padding-block-start: .75rem; color: var(--az-color-muted); font-size: var(--az-text-xs); }
.azibom-research-index__card small { color: var(--az-color-muted); font-size: var(--az-text-xs); }
.azibom-research-error, .azibom-research-index__empty { margin-block-start: 1.5rem; padding: 1rem; border: 1px dashed var(--az-color-border-strong); border-radius: var(--az-radius-md); background: var(--az-color-surface); }
.azibom-research-index__empty h2 { margin-block: 0 .4rem; font-size: var(--az-text-base) !important; }
.azibom-research-index__empty p { margin: 0; color: var(--az-color-muted); }
@media (max-width: 640px) {
    .azibom-research-page, .azibom-research-index { padding-block-start: 4.5rem; }
    .azibom-research__canvas { min-width: 0; padding-inline: .75rem; }
    .azibom-research__root { max-width: 100%; }
    .azibom-research__sources { grid-template-columns: 1fr; gap: 2rem; padding-inline-start: 1.25rem; }
    .azibom-research__branch { max-width: 24rem; }
    .azibom-research-modal { padding: .5rem; }
    .azibom-research-modal__dialog { max-height: calc(100dvh - 1rem); padding: 1rem; }
}

/* A quiet preview of the research notebook between landing sections. */
.home-research {
    padding: 1.5rem 1rem;
    border-block: 1px solid var(--az-color-border);
    background: var(--az-color-surface-soft);
}
.home-research__inner {
    display: grid;
    width: min(100%, 68rem);
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
    gap: 1.5rem;
    align-items: center;
}
.home-research__eyebrow,
.home-research__label {
    color: var(--az-color-primary);
    font-size: var(--az-text-xs);
}
.home-research__intro h2 {
    margin: .2rem 0;
    font-size: var(--az-text-xl) !important;
    line-height: var(--az-leading-heading) !important;
}
.home-research__intro p {
    margin: .1rem 0 .5rem;
    color: var(--az-color-muted);
    font-size: var(--az-text-sm);
}
.home-research__archive {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: var(--az-text-sm);
    text-decoration: none;
}
.home-research__path {
    display: flex;
    min-width: 0;
    min-height: 7rem;
    padding: .85rem 1rem;
    align-items: center;
    gap: 1rem;
    border: 1px solid var(--az-color-border-strong);
    border-radius: var(--az-radius-md);
    background-color: var(--az-color-surface);
    background-image: linear-gradient(var(--az-color-border) 1px, transparent 1px),
        linear-gradient(90deg, var(--az-color-border) 1px, transparent 1px);
    background-size: 20px 20px;
    color: var(--az-color-ink) !important;
    text-decoration: none;
}
.home-research__path:hover,
.home-research__path:focus-visible {
    border-color: var(--az-color-primary);
    box-shadow: var(--az-shadow-card);
}
.home-research__branch {
    position: relative;
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    flex: none;
    place-items: start center;
    font-family: Georgia, serif;
    font-size: 1.6rem;
    line-height: 1;
}
.home-research__branch::after {
    position: absolute;
    inset-block-start: 1.55rem;
    width: 1px;
    height: 1.2rem;
    background: var(--az-color-muted);
    content: "";
}
.home-research__branch span {
    position: absolute;
    inset-block-end: .75rem;
    width: 1rem;
    border-block-end: 1px solid var(--az-color-muted);
}
.home-research__branch span:first-child { inset-inline-start: .65rem; transform: rotate(-25deg); }
.home-research__branch span:last-child { inset-inline-end: .65rem; transform: rotate(25deg); }
.home-research__path-content {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: .1rem;
}
.home-research__path-content strong {
    font-size: var(--az-text-base);
    font-weight: 500;
}
.home-research__summary,
.home-research__path-content small {
    color: var(--az-color-muted);
    font-size: var(--az-text-xs);
}
.home-research__path-arrow {
    align-self: flex-end;
    color: var(--az-color-primary);
    font-size: var(--az-text-lg);
}
@media (max-width: 640px) {
    .home-research { padding-block: 1.25rem; }
    .home-research__inner { grid-template-columns: 1fr; gap: .9rem; }
    .home-research__path { min-height: 6rem; }
}
