/* A small number of composited cards orbit in 3D; no scrolling render loop. */
.publication-carousel{--orbit-card-width:148px;--orbit-card-height:104px;max-width:90rem;margin:2.5rem auto 0;padding-top:1.8rem;border-top:1px solid #95b1c647;color:#294b65}
.publication-carousel__heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.publication-carousel__heading h3{font-family:var(--font-text);font-size:1.125rem;font-weight:500;letter-spacing:-.015em;line-height:1.3;color:#294b65}
.publication-carousel__heading p{font-size:.8125rem;color:#435f75;margin-top:.45rem}
.publication-carousel__viewport{position:relative;overflow-x:auto;overflow-y:hidden;padding:1rem .2rem 1.4rem;scrollbar-width:thin;scrollbar-color:#6385a14d transparent;overscroll-behavior-x:contain;border-radius:1rem;-webkit-overflow-scrolling:touch}
.publication-carousel__viewport:focus-visible{outline:2px solid #2c6b98;outline-offset:5px}
.publication-carousel__track{width:max-content}
.publication-carousel__group{display:flex;align-items:stretch;gap:1rem;list-style:none;margin:0;padding:0}
.publication-carousel__card,.publication-orbit__card{--brand-accent:#111;flex:0 0 auto;width:var(--orbit-card-width);padding:.7rem .8rem .6rem;border:1px solid #fff;border-radius:1.2rem;background:linear-gradient(145deg,#fff,#eff5fa);box-shadow:inset 0 1px 0 #fff,0 3px 0 #bacddbd9,0 14px 22px -14px #244d7659}
.publication-carousel__logo{display:flex;align-items:center;justify-content:center;height:3.5rem;padding:.3rem .15rem}
.publication-carousel__logo img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.publication-carousel__name{display:flex;align-items:center;justify-content:center;gap:.4rem;color:#425f75;font-size:.7rem;line-height:1.3;text-align:center;padding:.55rem 0 0;white-space:normal}
.publication-carousel__name::before{content:"";height:5px;width:5px;flex:0 0 5px;background:var(--brand-accent);border-radius:50%}
/* The clipping viewport is outside the perspective scene. Keep the scene free
   of filters, masks, opacity, and paint containment to preserve depth sorting. */
.publication-carousel[data-orbit] .publication-carousel__viewport{height:330px;padding:0;overflow:clip;touch-action:pan-y;cursor:grab;user-select:none}
.publication-carousel[data-orbit] .publication-carousel__viewport:active{cursor:grabbing}
.publication-carousel[data-orbit] .publication-carousel__track{width:100%;height:100%;position:relative}
.publication-carousel[data-orbit] .publication-carousel__group{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.publication-carousel[data-orbit] .publication-carousel__viewport::before{content:"";position:absolute;left:50%;top:55%;width:calc(var(--orbit-radius) * 2 + 40px);height:calc(var(--orbit-rise) * 2.25);border-radius:50%;border:1px solid #93adc024;background:radial-gradient(ellipse,#6c8da318,transparent 68%);transform:translate(-50%,-50%);pointer-events:none}
.publication-orbit{position:relative;height:100%;width:100%;perspective:1100px;perspective-origin:50% 50%;transform-style:preserve-3d}
.publication-orbit__card{position:absolute;left:50%;top:46%;height:var(--orbit-card-height);margin-left:calc(var(--orbit-card-width) / -2);margin-top:calc(var(--orbit-card-height) / -2);animation:publication-orbit var(--orbit-duration,42s) linear infinite;animation-delay:var(--orbit-delay,0ms);animation-play-state:paused;pointer-events:none}
.publication-carousel[data-moving] .publication-orbit__card{animation-play-state:running;will-change:transform,opacity}
.publication-carousel[data-compact]{--orbit-card-width:104px;--orbit-card-height:86px}
.publication-carousel:not([data-orbit]){--orbit-card-width:176px}
.publication-carousel[data-compact] .publication-carousel__viewport{height:248px}
.publication-carousel[data-compact] .publication-orbit__card{padding:.5rem .6rem;border-radius:.9rem}
.publication-carousel[data-compact] .publication-orbit__card .publication-carousel__logo{height:2.55rem;padding:.15rem 0}
.publication-carousel[data-compact] .publication-orbit__card .publication-carousel__name{font-size:.58rem;gap:.25rem;padding-top:.4rem;letter-spacing:-.015em}
.publication-carousel[data-compact] .publication-orbit__card .publication-carousel__name::before{height:4px;width:4px;flex-basis:4px}
@media(max-width:600px){.publication-carousel{margin-top:2rem;padding-top:1.5rem}.publication-carousel__heading{align-items:start;gap:.5rem}.publication-carousel__heading h3{font-size:1rem}.publication-carousel__heading p{font-size:.75rem;max-width:24ch}}
@media(prefers-reduced-motion:reduce){.publication-orbit__card{animation-play-state:paused!important;will-change:auto!important}}

@keyframes publication-orbit{
 0.00000%{transform:translate3d(calc(var(--orbit-radius) * 0.0000000),calc(var(--orbit-rise) * -1.0000000),calc(var(--orbit-depth) * -1.0000000)) rotate(0.0000deg);opacity:0.0000}
 1.38889%{transform:translate3d(calc(var(--orbit-radius) * 0.0871557),calc(var(--orbit-rise) * -0.9961947),calc(var(--orbit-depth) * -0.9961947)) rotate(-0.2615deg);opacity:0.3472}
 2.77778%{transform:translate3d(calc(var(--orbit-radius) * 0.1736482),calc(var(--orbit-rise) * -0.9848078),calc(var(--orbit-depth) * -0.9848078)) rotate(-0.5209deg);opacity:0.6944}
 4.16667%{transform:translate3d(calc(var(--orbit-radius) * 0.2588190),calc(var(--orbit-rise) * -0.9659258),calc(var(--orbit-depth) * -0.9659258)) rotate(-0.7765deg);opacity:1.0000}
 5.55556%{transform:translate3d(calc(var(--orbit-radius) * 0.3420201),calc(var(--orbit-rise) * -0.9396926),calc(var(--orbit-depth) * -0.9396926)) rotate(-1.0261deg);opacity:1.0000}
 6.94444%{transform:translate3d(calc(var(--orbit-radius) * 0.4226183),calc(var(--orbit-rise) * -0.9063078),calc(var(--orbit-depth) * -0.9063078)) rotate(-1.2679deg);opacity:1.0000}
 8.33333%{transform:translate3d(calc(var(--orbit-radius) * 0.5000000),calc(var(--orbit-rise) * -0.8660254),calc(var(--orbit-depth) * -0.8660254)) rotate(-1.5000deg);opacity:1.0000}
 9.72222%{transform:translate3d(calc(var(--orbit-radius) * 0.5735764),calc(var(--orbit-rise) * -0.8191520),calc(var(--orbit-depth) * -0.8191520)) rotate(-1.7207deg);opacity:1.0000}
 11.11111%{transform:translate3d(calc(var(--orbit-radius) * 0.6427876),calc(var(--orbit-rise) * -0.7660444),calc(var(--orbit-depth) * -0.7660444)) rotate(-1.9284deg);opacity:1.0000}
 12.50000%{transform:translate3d(calc(var(--orbit-radius) * 0.7071068),calc(var(--orbit-rise) * -0.7071068),calc(var(--orbit-depth) * -0.7071068)) rotate(-2.1213deg);opacity:1.0000}
 13.88889%{transform:translate3d(calc(var(--orbit-radius) * 0.7660444),calc(var(--orbit-rise) * -0.6427876),calc(var(--orbit-depth) * -0.6427876)) rotate(-2.2981deg);opacity:1.0000}
 15.27778%{transform:translate3d(calc(var(--orbit-radius) * 0.8191520),calc(var(--orbit-rise) * -0.5735764),calc(var(--orbit-depth) * -0.5735764)) rotate(-2.4575deg);opacity:1.0000}
 16.66667%{transform:translate3d(calc(var(--orbit-radius) * 0.8660254),calc(var(--orbit-rise) * -0.5000000),calc(var(--orbit-depth) * -0.5000000)) rotate(-2.5981deg);opacity:1.0000}
 18.05556%{transform:translate3d(calc(var(--orbit-radius) * 0.9063078),calc(var(--orbit-rise) * -0.4226183),calc(var(--orbit-depth) * -0.4226183)) rotate(-2.7189deg);opacity:1.0000}
 19.44444%{transform:translate3d(calc(var(--orbit-radius) * 0.9396926),calc(var(--orbit-rise) * -0.3420201),calc(var(--orbit-depth) * -0.3420201)) rotate(-2.8191deg);opacity:1.0000}
 20.83333%{transform:translate3d(calc(var(--orbit-radius) * 0.9659258),calc(var(--orbit-rise) * -0.2588190),calc(var(--orbit-depth) * -0.2588190)) rotate(-2.8978deg);opacity:1.0000}
 22.22222%{transform:translate3d(calc(var(--orbit-radius) * 0.9848078),calc(var(--orbit-rise) * -0.1736482),calc(var(--orbit-depth) * -0.1736482)) rotate(-2.9544deg);opacity:1.0000}
 23.61111%{transform:translate3d(calc(var(--orbit-radius) * 0.9961947),calc(var(--orbit-rise) * -0.0871557),calc(var(--orbit-depth) * -0.0871557)) rotate(-2.9886deg);opacity:1.0000}
 25.00000%{transform:translate3d(calc(var(--orbit-radius) * 1.0000000),calc(var(--orbit-rise) * -0.0000000),calc(var(--orbit-depth) * -0.0000000)) rotate(-3.0000deg);opacity:1.0000}
 26.38889%{transform:translate3d(calc(var(--orbit-radius) * 0.9961947),calc(var(--orbit-rise) * 0.0871557),calc(var(--orbit-depth) * 0.0871557)) rotate(-2.9886deg);opacity:1.0000}
 27.77778%{transform:translate3d(calc(var(--orbit-radius) * 0.9848078),calc(var(--orbit-rise) * 0.1736482),calc(var(--orbit-depth) * 0.1736482)) rotate(-2.9544deg);opacity:1.0000}
 29.16667%{transform:translate3d(calc(var(--orbit-radius) * 0.9659258),calc(var(--orbit-rise) * 0.2588190),calc(var(--orbit-depth) * 0.2588190)) rotate(-2.8978deg);opacity:1.0000}
 30.55556%{transform:translate3d(calc(var(--orbit-radius) * 0.9396926),calc(var(--orbit-rise) * 0.3420201),calc(var(--orbit-depth) * 0.3420201)) rotate(-2.8191deg);opacity:1.0000}
 31.94444%{transform:translate3d(calc(var(--orbit-radius) * 0.9063078),calc(var(--orbit-rise) * 0.4226183),calc(var(--orbit-depth) * 0.4226183)) rotate(-2.7189deg);opacity:1.0000}
 33.33333%{transform:translate3d(calc(var(--orbit-radius) * 0.8660254),calc(var(--orbit-rise) * 0.5000000),calc(var(--orbit-depth) * 0.5000000)) rotate(-2.5981deg);opacity:1.0000}
 34.72222%{transform:translate3d(calc(var(--orbit-radius) * 0.8191520),calc(var(--orbit-rise) * 0.5735764),calc(var(--orbit-depth) * 0.5735764)) rotate(-2.4575deg);opacity:1.0000}
 36.11111%{transform:translate3d(calc(var(--orbit-radius) * 0.7660444),calc(var(--orbit-rise) * 0.6427876),calc(var(--orbit-depth) * 0.6427876)) rotate(-2.2981deg);opacity:1.0000}
 37.50000%{transform:translate3d(calc(var(--orbit-radius) * 0.7071068),calc(var(--orbit-rise) * 0.7071068),calc(var(--orbit-depth) * 0.7071068)) rotate(-2.1213deg);opacity:1.0000}
 38.88889%{transform:translate3d(calc(var(--orbit-radius) * 0.6427876),calc(var(--orbit-rise) * 0.7660444),calc(var(--orbit-depth) * 0.7660444)) rotate(-1.9284deg);opacity:1.0000}
 40.27778%{transform:translate3d(calc(var(--orbit-radius) * 0.5735764),calc(var(--orbit-rise) * 0.8191520),calc(var(--orbit-depth) * 0.8191520)) rotate(-1.7207deg);opacity:1.0000}
 41.66667%{transform:translate3d(calc(var(--orbit-radius) * 0.5000000),calc(var(--orbit-rise) * 0.8660254),calc(var(--orbit-depth) * 0.8660254)) rotate(-1.5000deg);opacity:1.0000}
 43.05556%{transform:translate3d(calc(var(--orbit-radius) * 0.4226183),calc(var(--orbit-rise) * 0.9063078),calc(var(--orbit-depth) * 0.9063078)) rotate(-1.2679deg);opacity:1.0000}
 44.44444%{transform:translate3d(calc(var(--orbit-radius) * 0.3420201),calc(var(--orbit-rise) * 0.9396926),calc(var(--orbit-depth) * 0.9396926)) rotate(-1.0261deg);opacity:1.0000}
 45.83333%{transform:translate3d(calc(var(--orbit-radius) * 0.2588190),calc(var(--orbit-rise) * 0.9659258),calc(var(--orbit-depth) * 0.9659258)) rotate(-0.7765deg);opacity:1.0000}
 47.22222%{transform:translate3d(calc(var(--orbit-radius) * 0.1736482),calc(var(--orbit-rise) * 0.9848078),calc(var(--orbit-depth) * 0.9848078)) rotate(-0.5209deg);opacity:1.0000}
 48.61111%{transform:translate3d(calc(var(--orbit-radius) * 0.0871557),calc(var(--orbit-rise) * 0.9961947),calc(var(--orbit-depth) * 0.9961947)) rotate(-0.2615deg);opacity:1.0000}
 50.00000%{transform:translate3d(calc(var(--orbit-radius) * 0.0000000),calc(var(--orbit-rise) * 1.0000000),calc(var(--orbit-depth) * 1.0000000)) rotate(0.0000deg);opacity:1.0000}
 51.38889%{transform:translate3d(calc(var(--orbit-radius) * -0.0871557),calc(var(--orbit-rise) * 0.9961947),calc(var(--orbit-depth) * 0.9961947)) rotate(0.2615deg);opacity:1.0000}
 52.77778%{transform:translate3d(calc(var(--orbit-radius) * -0.1736482),calc(var(--orbit-rise) * 0.9848078),calc(var(--orbit-depth) * 0.9848078)) rotate(0.5209deg);opacity:1.0000}
 54.16667%{transform:translate3d(calc(var(--orbit-radius) * -0.2588190),calc(var(--orbit-rise) * 0.9659258),calc(var(--orbit-depth) * 0.9659258)) rotate(0.7765deg);opacity:1.0000}
 55.55556%{transform:translate3d(calc(var(--orbit-radius) * -0.3420201),calc(var(--orbit-rise) * 0.9396926),calc(var(--orbit-depth) * 0.9396926)) rotate(1.0261deg);opacity:1.0000}
 56.94444%{transform:translate3d(calc(var(--orbit-radius) * -0.4226183),calc(var(--orbit-rise) * 0.9063078),calc(var(--orbit-depth) * 0.9063078)) rotate(1.2679deg);opacity:1.0000}
 58.33333%{transform:translate3d(calc(var(--orbit-radius) * -0.5000000),calc(var(--orbit-rise) * 0.8660254),calc(var(--orbit-depth) * 0.8660254)) rotate(1.5000deg);opacity:1.0000}
 59.72222%{transform:translate3d(calc(var(--orbit-radius) * -0.5735764),calc(var(--orbit-rise) * 0.8191520),calc(var(--orbit-depth) * 0.8191520)) rotate(1.7207deg);opacity:1.0000}
 61.11111%{transform:translate3d(calc(var(--orbit-radius) * -0.6427876),calc(var(--orbit-rise) * 0.7660444),calc(var(--orbit-depth) * 0.7660444)) rotate(1.9284deg);opacity:1.0000}
 62.50000%{transform:translate3d(calc(var(--orbit-radius) * -0.7071068),calc(var(--orbit-rise) * 0.7071068),calc(var(--orbit-depth) * 0.7071068)) rotate(2.1213deg);opacity:1.0000}
 63.88889%{transform:translate3d(calc(var(--orbit-radius) * -0.7660444),calc(var(--orbit-rise) * 0.6427876),calc(var(--orbit-depth) * 0.6427876)) rotate(2.2981deg);opacity:1.0000}
 65.27778%{transform:translate3d(calc(var(--orbit-radius) * -0.8191520),calc(var(--orbit-rise) * 0.5735764),calc(var(--orbit-depth) * 0.5735764)) rotate(2.4575deg);opacity:1.0000}
 66.66667%{transform:translate3d(calc(var(--orbit-radius) * -0.8660254),calc(var(--orbit-rise) * 0.5000000),calc(var(--orbit-depth) * 0.5000000)) rotate(2.5981deg);opacity:1.0000}
 68.05556%{transform:translate3d(calc(var(--orbit-radius) * -0.9063078),calc(var(--orbit-rise) * 0.4226183),calc(var(--orbit-depth) * 0.4226183)) rotate(2.7189deg);opacity:1.0000}
 69.44444%{transform:translate3d(calc(var(--orbit-radius) * -0.9396926),calc(var(--orbit-rise) * 0.3420201),calc(var(--orbit-depth) * 0.3420201)) rotate(2.8191deg);opacity:1.0000}
 70.83333%{transform:translate3d(calc(var(--orbit-radius) * -0.9659258),calc(var(--orbit-rise) * 0.2588190),calc(var(--orbit-depth) * 0.2588190)) rotate(2.8978deg);opacity:1.0000}
 72.22222%{transform:translate3d(calc(var(--orbit-radius) * -0.9848078),calc(var(--orbit-rise) * 0.1736482),calc(var(--orbit-depth) * 0.1736482)) rotate(2.9544deg);opacity:1.0000}
 73.61111%{transform:translate3d(calc(var(--orbit-radius) * -0.9961947),calc(var(--orbit-rise) * 0.0871557),calc(var(--orbit-depth) * 0.0871557)) rotate(2.9886deg);opacity:1.0000}
 75.00000%{transform:translate3d(calc(var(--orbit-radius) * -1.0000000),calc(var(--orbit-rise) * 0.0000000),calc(var(--orbit-depth) * 0.0000000)) rotate(3.0000deg);opacity:1.0000}
 76.38889%{transform:translate3d(calc(var(--orbit-radius) * -0.9961947),calc(var(--orbit-rise) * -0.0871557),calc(var(--orbit-depth) * -0.0871557)) rotate(2.9886deg);opacity:1.0000}
 77.77778%{transform:translate3d(calc(var(--orbit-radius) * -0.9848078),calc(var(--orbit-rise) * -0.1736482),calc(var(--orbit-depth) * -0.1736482)) rotate(2.9544deg);opacity:1.0000}
 79.16667%{transform:translate3d(calc(var(--orbit-radius) * -0.9659258),calc(var(--orbit-rise) * -0.2588190),calc(var(--orbit-depth) * -0.2588190)) rotate(2.8978deg);opacity:1.0000}
 80.55556%{transform:translate3d(calc(var(--orbit-radius) * -0.9396926),calc(var(--orbit-rise) * -0.3420201),calc(var(--orbit-depth) * -0.3420201)) rotate(2.8191deg);opacity:1.0000}
 81.94444%{transform:translate3d(calc(var(--orbit-radius) * -0.9063078),calc(var(--orbit-rise) * -0.4226183),calc(var(--orbit-depth) * -0.4226183)) rotate(2.7189deg);opacity:1.0000}
 83.33333%{transform:translate3d(calc(var(--orbit-radius) * -0.8660254),calc(var(--orbit-rise) * -0.5000000),calc(var(--orbit-depth) * -0.5000000)) rotate(2.5981deg);opacity:1.0000}
 84.72222%{transform:translate3d(calc(var(--orbit-radius) * -0.8191520),calc(var(--orbit-rise) * -0.5735764),calc(var(--orbit-depth) * -0.5735764)) rotate(2.4575deg);opacity:1.0000}
 86.11111%{transform:translate3d(calc(var(--orbit-radius) * -0.7660444),calc(var(--orbit-rise) * -0.6427876),calc(var(--orbit-depth) * -0.6427876)) rotate(2.2981deg);opacity:1.0000}
 87.50000%{transform:translate3d(calc(var(--orbit-radius) * -0.7071068),calc(var(--orbit-rise) * -0.7071068),calc(var(--orbit-depth) * -0.7071068)) rotate(2.1213deg);opacity:1.0000}
 88.88889%{transform:translate3d(calc(var(--orbit-radius) * -0.6427876),calc(var(--orbit-rise) * -0.7660444),calc(var(--orbit-depth) * -0.7660444)) rotate(1.9284deg);opacity:1.0000}
 90.27778%{transform:translate3d(calc(var(--orbit-radius) * -0.5735764),calc(var(--orbit-rise) * -0.8191520),calc(var(--orbit-depth) * -0.8191520)) rotate(1.7207deg);opacity:1.0000}
 91.66667%{transform:translate3d(calc(var(--orbit-radius) * -0.5000000),calc(var(--orbit-rise) * -0.8660254),calc(var(--orbit-depth) * -0.8660254)) rotate(1.5000deg);opacity:1.0000}
 93.05556%{transform:translate3d(calc(var(--orbit-radius) * -0.4226183),calc(var(--orbit-rise) * -0.9063078),calc(var(--orbit-depth) * -0.9063078)) rotate(1.2679deg);opacity:1.0000}
 94.44444%{transform:translate3d(calc(var(--orbit-radius) * -0.3420201),calc(var(--orbit-rise) * -0.9396926),calc(var(--orbit-depth) * -0.9396926)) rotate(1.0261deg);opacity:1.0000}
 95.83333%{transform:translate3d(calc(var(--orbit-radius) * -0.2588190),calc(var(--orbit-rise) * -0.9659258),calc(var(--orbit-depth) * -0.9659258)) rotate(0.7765deg);opacity:1.0000}
 97.22222%{transform:translate3d(calc(var(--orbit-radius) * -0.1736482),calc(var(--orbit-rise) * -0.9848078),calc(var(--orbit-depth) * -0.9848078)) rotate(0.5209deg);opacity:0.6944}
 98.61111%{transform:translate3d(calc(var(--orbit-radius) * -0.0871557),calc(var(--orbit-rise) * -0.9961947),calc(var(--orbit-depth) * -0.9961947)) rotate(0.2615deg);opacity:0.3472}
 100.00000%{transform:translate3d(calc(var(--orbit-radius) * 0.0000000),calc(var(--orbit-rise) * -1.0000000),calc(var(--orbit-depth) * -1.0000000)) rotate(0.0000deg);opacity:0.0000}
}
