/* Final Visual 02 — restrained reading rhythm for research, archive and team pages. */
:root{
  --inner-rhythm-ink:rgba(24,24,22,.62);
  --inner-rhythm-line:rgba(24,24,22,.15);
  --inner-rhythm-red:#f04423;
}

.inner-rhythm-ready .field-list,
.inner-rhythm-ready .archive-cards,
.inner-rhythm-ready .people-grid{
  position:relative;
  isolation:isolate;
}

/* Decorative ink scenes stay visible but never sit above reading or filter controls. */
.archive-list .archive-toolbar,
.archive-list .archive-cards,
.people .people-head,
.people .people-grid,
.research-index .research-index-head,
.research-index .field-list{
  position:relative;
  z-index:4;
}

.inner-rhythm-signal{
  --rhythm-y:20px;
  position:absolute;
  left:clamp(-54px,-3.5vw,-30px);
  top:0;
  bottom:0;
  width:32px;
  z-index:4;
  pointer-events:none;
  color:var(--inner-rhythm-ink);
}

.inner-rhythm-signal::before{
  content:"";
  position:absolute;
  left:14px;
  top:0;
  bottom:0;
  width:1px;
  background:linear-gradient(to bottom,transparent,var(--inner-rhythm-line) 7%,var(--inner-rhythm-line) 93%,transparent);
}

.inner-rhythm-knot{
  position:absolute;
  left:10px;
  top:0;
  width:9px;
  height:9px;
  border:1px solid currentColor;
  border-radius:50%;
  transform:translate3d(0,var(--rhythm-y),0);
  transition:transform .68s cubic-bezier(.2,.72,.2,1),border-color .35s ease;
  background:var(--paper,#efeee9);
  box-shadow:0 0 0 4px rgba(239,238,233,.82);
}

.inner-rhythm-knot::before{
  content:"";
  position:absolute;
  inset:-18px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(24,24,22,.12),rgba(24,24,22,.045) 38%,transparent 72%);
  opacity:.38;
  transform:scale(.72);
  transition:opacity .4s ease,transform .52s cubic-bezier(.2,.72,.2,1);
}

.inner-rhythm-signal.is-awake .inner-rhythm-knot{
  border-color:var(--inner-rhythm-red);
}

.inner-rhythm-signal.is-awake .inner-rhythm-knot::before{
  opacity:.78;
  transform:scale(1);
}

.research-page .field-list .inner-rhythm-signal{
  color:rgba(239,238,233,.58);
}

.research-page .field-list .inner-rhythm-signal::before{
  background:linear-gradient(to bottom,transparent,rgba(239,238,233,.14) 7%,rgba(239,238,233,.14) 93%,transparent);
}

.research-page .field-list .inner-rhythm-knot{
  background:#151514;
  box-shadow:0 0 0 4px rgba(21,21,20,.88);
}

.research-page .field-list .inner-rhythm-caption{
  color:rgba(239,238,233,.48);
}

.inner-rhythm-caption{
  position:absolute;
  left:-4px;
  top:calc(var(--rhythm-y) + 20px);
  writing-mode:vertical-rl;
  font-size:8px;
  letter-spacing:.18em;
  color:rgba(24,24,22,.45);
  white-space:nowrap;
  transition:top .68s cubic-bezier(.2,.72,.2,1),color .35s ease;
}

.rhythm-item{
  position:relative;
  --rhythm-rule-opacity:0;
}

.rhythm-rule{
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  z-index:6;
  pointer-events:none;
  background:linear-gradient(90deg,var(--inner-rhythm-red),rgba(24,24,22,.36) 16%,rgba(24,24,22,.08) 72%,transparent);
  transform:scaleX(0);
  transform-origin:left center;
  opacity:var(--rhythm-rule-opacity);
  transition:transform .62s cubic-bezier(.2,.72,.2,1),opacity .32s ease;
}

.rhythm-item.is-rhythm-active{
  --rhythm-rule-opacity:.72;
}

.rhythm-item.is-rhythm-active>.rhythm-rule{
  transform:scaleX(1);
}

.research-page .field>.rhythm-rule{
  background:linear-gradient(90deg,var(--inner-rhythm-red),rgba(239,238,233,.34) 16%,rgba(239,238,233,.07) 72%,transparent);
}

.projects-page .archive-card.is-rhythm-active .archive-card-info>div>span,
.team-page .person.is-rhythm-active .person-info>span{
  color:#575752;
}

.research-page .field.is-rhythm-active .field-number{
  color:#aaa9a3;
}

.research-page .field.is-rhythm-active .field-color{
  transform:scale(1.38);
  box-shadow:0 0 0 6px rgba(239,238,233,.035),0 0 25px currentColor;
}

.projects-page .archive-card.is-rhythm-active .archive-card-info,
.team-page .person.is-rhythm-active .person-info{
  border-top-color:rgba(24,24,22,.72);
}

.projects-page .archive-card.is-rhythm-active h2,
.team-page .person.is-rhythm-active h2,
.research-page .field.is-rhythm-active h2{
  text-shadow:0 12px 30px rgba(24,24,22,.09);
}

.inner-rhythm-echo{
  position:absolute;
  right:9vw;
  top:32%;
  width:clamp(180px,28vw,460px);
  aspect-ratio:1;
  z-index:1;
  border-radius:48% 52% 45% 55%;
  pointer-events:none;
  opacity:0;
  border:1px solid rgba(239,238,233,.18);
  box-shadow:inset 0 0 70px rgba(239,238,233,.045),0 0 45px rgba(239,238,233,.04);
  transform:scale(.58) rotate(-8deg);
}

.research-page .inner-rhythm-echo{
  border-color:rgba(24,24,22,.15);
  box-shadow:inset 0 0 70px rgba(24,24,22,.035),0 0 45px rgba(24,24,22,.035);
  mix-blend-mode:multiply;
}

.inner-hero.is-rhythm-answer .inner-rhythm-echo{
  animation:innerRhythmEcho .82s cubic-bezier(.18,.72,.2,1) both;
}

.inner-hero.is-rhythm-answer .inner-title h1{
  text-shadow:0 18px 52px rgba(0,0,0,.18);
}

.research-page .inner-hero.is-rhythm-answer .research-rings i:nth-child(4){
  border-color:rgba(240,68,35,.82);
}

.inner-rhythm-signal.is-pulsing .inner-rhythm-knot::before{
  animation:innerRhythmKnot .72s ease-out both;
}

@keyframes innerRhythmEcho{
  0%{opacity:0;transform:scale(.58) rotate(-8deg)}
  34%{opacity:.42}
  100%{opacity:0;transform:scale(1.32) rotate(5deg)}
}

@keyframes innerRhythmKnot{
  0%{opacity:.8;transform:scale(.65)}
  100%{opacity:0;transform:scale(1.7)}
}

@media(max-width:1100px){
  .inner-rhythm-signal{left:-30px}
  .inner-rhythm-caption{display:none}
}

@media(max-width:900px){
  .inner-rhythm-signal{display:none}
  .rhythm-rule{height:1px}
  .rhythm-item.is-rhythm-active{--rhythm-rule-opacity:.5}
  .inner-rhythm-echo{right:-18vw;width:62vw}
}

@media(prefers-reduced-motion:reduce){
  .inner-rhythm-knot,
  .inner-rhythm-caption,
  .rhythm-rule{transition:none!important}
  .inner-hero.is-rhythm-answer .inner-rhythm-echo,
  .inner-rhythm-signal.is-pulsing .inner-rhythm-knot::before{animation:none!important}
  .inner-hero.is-rhythm-answer .inner-rhythm-echo{opacity:.12;transform:scale(.9)}
}
