/* V28: restore the single-card timeline positioning that V27 glass overrode. */
body main#main #experience .journey-track > .journey-card.v27-glass {
 position:absolute!important;
 inset:0!important;
 width:100%!important;
 height:100%!important;
 min-height:0!important;
}
/* Keep text readable above droplets without disrupting any positioned card. */
body main#main #experience .journey-card.v27-glass > .journey-card-top,
body main#main #experience .journey-card.v27-glass > .journey-card-main,
body main#main #experience .journey-card.v27-glass > .journey-tags {
 z-index:2;
}
/* Raindrops visibly run down the pane rather than drifting a few pixels. */
body main#main .v27-glass .v27-rain .v27-drop {
 animation-name:v28-rain-fall;
 animation-duration:var(--rd);
 animation-timing-function:linear;
 animation-iteration-count:infinite;
 animation-direction:normal;
 animation-fill-mode:both;
 will-change:transform;
}
@keyframes v28-rain-fall {
 0% { transform:translate3d(0,-24vh,0) scaleY(.94);opacity:0; }
 9% { opacity:var(--ro); }
 78% {opacity:var(--ro);}
 100% {transform:translate3d(1px,68vh,0) scaleY(1.12);opacity:0;}
}
body main#main .v27-glass .v27-rain .v27-drop::after{
 top:-17px;
 left:42%;
 height:clamp(11px,2.5vh,24px);
 opacity:.55;
 width:2px;
 background:linear-gradient(0deg,rgba(226,252,255,.75),rgba(180,229,243,.18) 45%,transparent 100%);
 border-radius:100%;
}
/* Do not animate cards that are not on screen. */
#experience .journey-card:not(.is-current) .v27-drop{ animation-play-state:paused!important; }
@media (prefers-reduced-motion: reduce){
 body main#main .v27-glass .v27-rain .v27-drop{animation:none!important;will-change:auto!important;}
}
