.profile-kicker {font-size:.75rem;letter-spacing:.12em;font-weight:700;color:var(--global-link-color);margin-top:0}
.profile-actions {display:flex;flex-wrap:wrap;gap:.7rem;margin:1.7rem 0}
.profile-actions .btn {margin:0}
.page__content {line-height:1.75}
.page__content h2 {margin-top:2.2rem}
.page__content img {height:auto;max-width:100%;border-radius:8px}
.page__content video {display:block;width:100%;max-width:900px;height:auto;margin:1rem 0;border-radius:8px}
.page__content a:focus-visible,.masthead a:focus-visible {outline:3px solid currentColor;outline-offset:4px}
@media(max-width:600px){.page__title{font-size:1.65rem}.profile-actions .btn{width:100%}}

/* Match visible channel heights, compensating for transparent GIF padding. */
.phase-comparison {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.5rem,2vw,1.5rem);margin:1.5rem 0}
.phase-comparison__frame {position:relative;aspect-ratio:1.15;overflow:hidden}
.page__content .phase-comparison__frame img {position:absolute;left:50%;top:50%;height:var(--canvas-height);width:auto;max-width:none;margin:0;border-radius:0;transform:translate(var(--channel-x),var(--channel-y))}

/* Hide only the unused transparent rows; keep the original GIF and its scale. */
.zeolite-animation-crop {position:relative;overflow:hidden;width:100%;max-width:1600px;aspect-ratio:1600 / 101;margin:1.5rem 0}
.page__content .zeolite-animation-crop img {position:absolute;top:0;left:0;display:block;width:100%;height:auto;max-width:none;margin:0;border-radius:0;transform:translateY(-47.0833333333%)}
